如何配置 Kubernetes 以从静态 IP 发出外部请求
How to configure Kubenetes to make external requests going from a static IP
我在一个 Kubenetes 集群中有一堆 pods 和相应的集群 IP 服务 运行。我使用 Ingress 控制器将传入流量路由到这些工作负载。
现在,当我从工作负载中发出外部请求时,我希望这些请求从静态 IP 发出。
是否通过同一网络接口处理传入和传出流量?
如何为来自 pod 的传出请求设置静态 IP
提前致谢。
如果您在 AWS 或 GKE 上,从(自动缩放)节点池获取静态出站的唯一方法是通过 NAT 网关。在 GKE 上,您还需要拥有私有节点(没有 public ips)。
Kubernetes 入口,至少在 GKE 中,与出口分开处理,是不同的负载均衡器。
一些研究向我展示了以下方法并且有效:
创建一个带有特定标签的新节点池(比方说ip=static
)
使用以下选择器部署工作负载
nodeSelector:
ip: static
通过VPC网络,预留一个外部静态IP
将此IP分配给新节点池使用的VM
但是,正如 @user578582 所提到的,当缩放完成后,我将不得不使用 NAT 网关使所有出站流量从此配置下的静态 IP 发出。
我在一个 Kubenetes 集群中有一堆 pods 和相应的集群 IP 服务 运行。我使用 Ingress 控制器将传入流量路由到这些工作负载。
现在,当我从工作负载中发出外部请求时,我希望这些请求从静态 IP 发出。
是否通过同一网络接口处理传入和传出流量?
如何为来自 pod 的传出请求设置静态 IP
提前致谢。
如果您在 AWS 或 GKE 上,从(自动缩放)节点池获取静态出站的唯一方法是通过 NAT 网关。在 GKE 上,您还需要拥有私有节点(没有 public ips)。
Kubernetes 入口,至少在 GKE 中,与出口分开处理,是不同的负载均衡器。
一些研究向我展示了以下方法并且有效:
创建一个带有特定标签的新节点池(比方说
ip=static
)使用以下选择器部署工作负载
nodeSelector: ip: static
通过VPC网络,预留一个外部静态IP
将此IP分配给新节点池使用的VM
但是,正如 @user578582 所提到的,当缩放完成后,我将不得不使用 NAT 网关使所有出站流量从此配置下的静态 IP 发出。