如何配置Kubenetes以从静态IP发出外部请求

时间:2019-06-10 15:54:06

标签: kubernetes routing load-balancing kubernetes-ingress static-ip-address

我在Kubenetes群集中运行了一堆Pod和相应的群集IP服务。我使用Ingress控制器将传入流量路由到这些工作负载。

现在,当我从工作负载中发出外部请求时,我希望这些请求从静态IP发出。

  1. 传入和传出流量是否都通过同一网络接口处理?

  2. 如何为来自Pod的传出请求设置静态IP

谢谢。

2 个答案:

答案 0 :(得分:2)

如果您使用的是AWS或GKE,则从(自动扩展)节点池中获取静态出站的唯一方法是通过NAT网关。在GKE上,还需要具有专用节点(无公共ip)。

至少在GKE中,Kubernetes入口与出口分开对待,并且是不同的负载平衡器。

https://cloud.google.com/nat/docs/gke-example

答案 1 :(得分:0)

一些研究向我展示了以下方法,并且有效:

  1. 创建一个带有特定标签的新节点池(让我们说ip=static

  2. 使用以下选择器部署工作负载

     nodeSelector:
       ip: static
    
  3. 通过VPC网络保留一个外部静态IP

  4. 将此IP分配给新节点池使用的VM

但是,正如@ user578582所提到的,在完成扩展后,在这种配置下,我将不得不使用NAT网关使所有出站流量都来自静态IP。