OpenShift 4.8集群Ingress流量路由机制及负载均衡配置疑问
OpenShift 4.8集群Ingress流量与负载均衡相关疑问解答
1. 流量如何抵达正确的Ingress控制器Pod?
OpenShift集群里的Ingress控制器(默认是router组件)对应的Service会通过kube-proxy在所有节点(包括master和worker)上维护iptables/IPVS规则。当负载均衡器把流量分发到任意节点的80/443端口后,节点上的kube-proxy会根据预设规则,将目标端口的流量转发到集群中运行的Ingress控制器Pod——不管这个Pod在哪个节点上。
所有节点都相当于Ingress流量的“入口转发点”,kube-proxy负责把流量从当前节点路由到正确的Ingress控制器Pod,不需要流量直接打到Pod所在的节点。
2. 流量到达节点后,如何识别正确的Ingress主机以完成转发?
当流量通过kube-proxy转发到Ingress控制器Pod后,控制器会根据请求中的Host头(HTTP协议)或SNI扩展字段(HTTPS协议),匹配集群中已定义的Ingress资源里的host字段。
Ingress控制器会持续监听Kubernetes API的Ingress、Service、Endpoint资源变化,实时更新自身的路由配置(比如OpenShift默认用HAProxy作为router,会动态生成HAProxy配置文件),确保能准确识别每个请求对应的目标主机,并将流量转发到对应的后端Service。
3. 为何master节点与worker节点要接入同一负载均衡器?
这么做主要有几个实际意义:
- 提升高可用性:如果worker节点出现大规模故障,负载均衡器可以将流量临时分发到master节点,master上的kube-proxy依然能把流量转发到存活的Ingress控制器Pod,避免服务中断。
- 简化架构运维:不需要单独维护两套负载均衡器(一套给worker、一套给master),减少基础设施的管理复杂度和运维成本。
- 资源高效利用:master节点通常有闲置的网络处理能力,接入同一LB后可以分担部分Ingress流量,避免worker节点过载时出现流量瓶颈。
内容的提问来源于stack exchange,提问作者Hound
相关产品推荐
相关产品推荐

