k8s ingress

久未见 提交于 2019-12-06 00:27:27

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,控制器通过规则和域名找到应用程序实现负载转发。

 

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!