k8s Ingress

Ingress 访问方案

nginx 解决方案为例
在这里插入图片描述

ingress 必须保证域名,一个或对个域名
访问域名都会访问到我们的 nginx
nginx再通过反向代理或者负载均衡访问到后端服务
nginx 配置文件中会有反向代理得区域
可以理解成 ingress 帮我们部署了一个 nginx,但是我们访问nginx 的时候并不需要在其内部添加配置文件,修改的时候也是这样

nginx的部署方案仍是我们常见的 nodeport 部署方案,暴露给外部服务供其访问

nginx 内部工作方案
在这里插入图片描述

并不是默认的nginx模式,已经被 ingress做了一些修改
api server 会和 store 进行一个监听,如果发生了事件会写入到一个循环队列中去(updateChannel)
NginxController 主进程会监听循环队列中得事件,写入到同步队列(syncQueue)
协程会定期 从 同步队列中获取任务
如果有一些任务是需要直接修改,而不需要进入循环队列进行等待,可以直接通过 store 发送到 SyncQueue。
SyncQueue收到任务后会进行判断,是否立即去刷新配置,如果是的话会去更新 nginx配置文件,并重新载入nginx 数据。如果不需要的话就等待,发送post数据,就是一些不需要重载的数据。最后以nginx模块运行

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐