AKS中无公网IP的Pod如何接收公网请求的返回流量
AKS Pod公网访问回程路由逻辑及出口IP查询方法
未暴露公网的Pod访问公网的回程流量路由逻辑
该场景依托AKS默认的**出站SNAT(源网络地址转换)**机制实现,无需Pod本身配置公网IP,完整流程如下:
- Pod发起公网请求时,集群网络组件(kube-proxy或Azure CNI底层模块)会先把Pod的私有源IP、端口,转换为集群预设的出口公网IP、对应随机端口,同时在Azure网络层记录SNAT会话映射表,保存转换前后的地址、端口对应关系
- 公网服务返回响应时,报文的目标地址为集群出口公网IP,Azure网络层匹配之前记录的SNAT会话表,将目标地址反向转换为对应Pod的私有IP,再经过集群网络路由转发到对应节点、最终送达Pod
- 你推断的网关类组件,实际是AKS默认自动创建的出站公网负载均衡,所有集群出站流量默认都经过该组件转发
集群出口公网IP查询方法
分两种场景操作:
- 若集群使用默认出站配置
可直接在任意集群内部Pod中执行如下命令,返回的结果就是集群出口公网IP:curl ifconfig.me
也可登录Azure门户,进入AKS对应的节点资源组(命名格式为MC_{集群所在资源组名}_{集群名}_{集群部署区域}),查找关联到出站负载均衡的公共IP资源,直接查看对应IP地址 - 若集群自定义了出站规则
- 若配置了子网关联NAT网关:直接查看对应NAT网关绑定的公网IP即可
- 若配置了用户自定义路由(UDR)转发到自建出口网关:直接查看对应自建网关的公网IP即可
内容的提问来源于stack exchange,提问作者The Fool
相关产品推荐
相关产品推荐

