k8s ingress
service 的弊端 一个服务一个端口映射,要管理端口避免冲突 nodeport 实现的是四层转发 没有统一的入口 Igress 简单理解为在service 基础上加入了一个负载代理。 实现原理 ingress是一个负载代理规则,它是通过ingress-controller 实现的。它通过统一的端口(80/443)可实现4/7层负载,为每个服务创建一个域名,每个node 节点部署一个ingress代理,实际与pod 通讯还是会经过service。 它的底层实际就是nginx或者其他的负载软件,每一个服务做代理的过程即使为这个服务的pod 创建一个upstream和proxy. Igress 的创建 先创建ingress 控制器,再创建ingress 规则 创建ingress 控制器 通过编写yaml 文件或者命令方式,在yaml 中可以定义对外提供的统一端口。 kubectl apply -f ingress.yaml kubectl get pods -n ingress-nginx #查看创建的ingress,必须在它自己的命名空间ingress-nginx 中查看 创建Ingress 规则 vi ingress.yaml dns解析 把任意一个 ingress controler所在的pod 的ip 地址解析为定义的应用程序域名,访问域名后请求到底controller