我在 Kubenetes 集群中运行了一堆 Pod 和相应的集群 IP 服务。我使用入口控制器将传入流量路由到这些工作负载。
现在,当我从工作负载中发出外部请求时,我希望这些请求从静态 IP 发出。
-
传入和传出流量是否通过同一网络接口处理?
-
如何为来自 Pod 的传出请求设置静态 IP
提前谢谢。
如果您使用的是 AWS 或 GKE,则从(自动扩展(节点池获取静态出站的唯一方法是通过 NAT 网关。在 GKE 上,您还需要拥有私有节点(没有公共 IP(。
Kubernetes 入口,至少在 GKE 中,与出口分开处理,是一个不同的负载均衡器。
https://cloud.google.com/nat/docs/gke-example
一些研究向我展示了以下方法,它奏效了:
-
创建一个具有特定标签的新节点池(假设
ip=static
( -
使用以下选择器部署工作负载
nodeSelector: ip: static
-
通过专有网络,预留外部静态IP
-
将此 IP 分配给新节点池使用的 VM
但是,正如@user578582所提到的,扩展完成后,我将不得不使用 NAT 网关使所有出站流量在此配置下从静态 IP 流出。