Nginx-ingress
Nginx-ingress 是 Kubernetes 中最常用的 Ingress Controller 之一,基于 Nginx 实现,支持多种负载均衡算法、SSL 终端、基于名称的虚拟主机等功能。Nginx-ingress 通过监听 Kubernetes API Server 中 Ingress 资源的变化,动态地配置 Nginx,实现对外提供 HTTP 和 HTTPS 服务的路由和负载均衡。
链接:https://kubernetes.github.io/ingress-nginx/
运行原理
Nginx-ingress 作为 Kubernetes 集群中的一个 Pod 运行,通常以 Deployment 的形式部署。它通过以下几个步骤实现对外提供服务:
监听 Ingress 资源的变化:Nginx-ingress 通过与 Kubernetes API Server 通信,监听集群中 Ingress 资源的创建、更新和删除事件。
动态生成 Nginx 配置:当 Ingress 资源发生变化时,Nginx-ingress 根据 Ingress 资源的定义,动态生成 Nginx 的配置文件。
重新加载 Nginx:生成新的配置文件后,Nginx-ingress 会重新加载 Nginx,使其应用新的配置。
处理客户端请求:Nginx-ingress 接收来自客户端的 HTTP 和 HTTPS 请求,根据配置的路由规则,将请求转发到相应的后端服务(Service)。