Ingress
Ingress 是 Kubernetes 中负责管理外部流量进入集群的资源对象。它本身只是一个规则集合,定义了外部请求如何进入集群、如何路由到内部的 Service。真正执行这些规则的是 Ingress Controller。
🧩 Ingress 的职责
- 统一入口:为集群提供一个外部可访问的域名或 IP。
- 路由规则:根据域名或路径,把请求转发到不同的 Service。
- 负载均衡:在多个 Pod 副本之间分配流量。
- TLS/HTTPS 支持:可配置证书,实现安全通信。
📌 类比理解
- Ingress = 大门保安的规则手册
- 它写明了哪些人(请求)能进门,走哪条路(路径/域名)。
- Ingress Controller = 保安团队
- 它每天按照手册在门口执勤,真正检查来访者并引导他们进入正确的部门(Service)。
📝 示例配置
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: example-ingress
spec:
rules:
- host: myapp.example.com
http:
paths:
- path: /api
pathType: Prefix
backend:
service:
name: api-service
port:
number: 80
- path: /web
pathType: Prefix
backend:
service:
name: web-service
port:
number: 80
👉 这个 Ingress 会根据路径把请求分别转发到 api-service 和 web-service。
⚠️ 注意事项
- Ingress 本身不处理流量,必须依赖 Ingress Controller(如 Nginx、Traefik、HAProxy)。
- 与 Service 配合:Ingress 控制入口,Service 控制内部流量分发。
- 建议启用 TLS,保证安全性。
💡 总结
- Ingress = 规则对象,定义外部流量如何进入集群。
- Ingress Controller = 执行者,真正实现路由和负载均衡。
- 两者结合,才能让外部用户通过域名或路径访问集群中的应用。
🧩 Ingress Controller
Ingress Controller 是 Kubernetes 中真正执行 Ingress 规则的组件。Ingress 本身只是一个“规则对象”,而 Ingress Controller 才是那个在集群入口处工作的“保安团队”,负责把规则落实到负载均衡器或代理服务器上。
🧩 Ingress Controller 的职责
- 监听 Ingress 资源
👉 持续监听 API Server 中的 Ingress 对象,解析其中的域名、路径、后端 Service 信息。 - 配置负载均衡
👉 在集群入口处建立负载均衡器,把外部请求分配到合适的 Pod。 - 流量路由
👉 根据 Ingress 规则,把不同路径或域名的请求转发到对应的 Service。 - TLS/HTTPS 支持
👉 管理证书,实现安全的 HTTPS 通信。
📌 类比理解
- Ingress = 保安手册:写明了哪些人(请求)能进门,走哪条路。
- Ingress Controller = 保安团队:每天按照手册在门口执勤,真正检查来访者并引导他们进入正确的部门(Service)。
⚙️ 常见 Ingress Controller
- Nginx Ingress Controller:最常用,功能丰富,社区支持强。
- HAProxy Ingress:高性能,适合大规模流量场景。
- Traefik:轻量级,支持动态配置和微服务架构。
- 云厂商专用 Controller:如 AWS ALB Ingress Controller、GCP Ingress Controller,直接集成云负载均衡。
📝 部署示例(Nginx Ingress Controller)
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/main/deploy/static/provider/cloud/deploy.yaml
👉 部署后,Ingress Controller 会自动监听 Ingress 资源,并配置路由。
💡 总结
- Ingress = 规则对象,定义外部流量如何进入集群。
- Ingress Controller = 执行者,真正实现路由和负载均衡。
- 两者结合,才能让外部用户通过域名或路径访问集群中的应用。

浙公网安备 33010602011771号