虚拟侵入

K8s之Ingress-nginx原理及配置

走远了吗. 提交于 2019-11-26 01:08:16
前言 在Kubernetes中,服务和Pod的IP地址仅可以在集群网络内部使用,对于集群外的应用是不可见的。为了使外部的应用能够访问集群内的服务,在Kubernetes中目前提供了以下几种方案: NodePort LoadBalancer Ingress 在之前的博文中介绍过NodePort,简单来说,就是通过service这种资源对象,为后端pod提供一个统一的访问接口,然后将service的统一访问接口映射到群集节点上,最终实现client通过映射到群集节点上的端口访问到后端pod提供的服务。 但是,这种方式有一个弊端,就是当新生成一个pod服务就需要创建对应的service将其映射到节点端口,当运行的pod过多时,我们节点暴露给client端的端口也会随之增加,这样我们整个k8s群集的危险系数就会增加,因为我们在搭建群集之处,官方明确指出,必须关闭firewalld防火墙及清空iptables规则,现在我们又暴露了那么多端口给client,安全系数可想而知。 有没有更安全又简便的一种方法呢?答案是肯定的,就是来利用Ingress这种资源对象来实现。 博文大纲: 一、Ingress-nginx介绍 二、Ingress-nginx配置示例 三、配置HTTPS 一、Ingress-nginx介绍 1、Ingress-nginx组成 ingress-nginx-controller