Kubernetes Ingress 是否会创建Pod?其工作原理相关疑问
Kubernetes Ingress 工作原理澄清
你的理解有部分偏差,先明确几个核心点:
Ingress 不是 LoadBalancer Service
Ingress 只是 Kubernetes 中的一种路由规则资源,它本身不提供流量转发能力,也不会直接关联任何 Pod。你可以把它看成是一份"流量转发说明书",定义了外部请求的路径、域名应该对应到集群内哪个 Service。真正处理流量的是 Ingress Controller
你提到的反向代理(Nginx/HAProxy 这类)是由 Ingress Controller 实现的,它才是会运行 Pod 的组件。Ingress Controller 会持续监听集群中 Ingress 资源的变化,根据规则自动更新自身的反向代理配置,然后把外部流量转发到对应的 Service。为什么你看不到相关 Pod?
大概率是这几种情况:
- Controller 部署在其他命名空间:很多集群会把 Ingress Controller 部署在
kube-system这类系统命名空间里,默认用kubectl get pods看不到,试试加-n kube-system参数查看。 - 用了云厂商托管的 Ingress Controller:比如 AWS ALB、GKE Ingress 这类,它们不需要在集群内运行 Pod,而是直接对接云服务商的负载均衡器服务,流量由云厂商的基础设施处理。
- 集群根本没部署 Ingress Controller:如果只创建了 Ingress 资源但没部署对应的 Controller,那这个 Ingress 其实是无效的,自然看不到任何相关 Pod。
简单来说:Ingress 是规则,Ingress Controller 是执行规则的"流量网关"(带 Pod 或云托管服务)。如果你的集群里看不到 Pod,先排查命名空间,再确认是否用了托管式方案,或者有没有漏部署 Controller。
内容的提问来源于stack exchange,提问作者Brian K
相关产品推荐
相关产品推荐

