Kubernetes出站数据包网络

问题描述:

我已经创建了一个k8s服务(type = loadbalancer),后面带有一些数据包。据我了解,从pod引发的所有数据包将具有作为PodIP的源IP,因此响应入站流量的那些源将具有作为LoadBalancer IP的源IP。所以我的问题是:Kubernetes出站数据包网络

  1. 我的声明是真的,还是有时间源IP将是节点IP而不是?
  2. k8s中是否有任何技巧,我可以将第一种情况下的源IP从PodIP更改为LB IP?
  3. 任何方式来指定一个指定的pod IP?

正如user315902所说,Azure ACS k8s使用Azure负载平衡器向互联网提供服务。

Kubernetes的

架构图通过Azure的集装箱服务部署: enter image description here

是我的要求真的,或者有时间的源IP将是节点IP 呢?

如果我们将服务暴露给互联网,我认为源IP将是负载均衡器公共IP地址。在ACS中,如果我们将多个服务暴露给互联网,Azure LB将添加多个公共IP地址。

是否有K8S什么花招,我可以从PodIP到LB IP的 第一个场景改变源IP?

你的意思是你想使用节点公共IP地址将服务公开给互联网吗?如果是的话,我认为我们不能使用节点IP向互联网公开服务。在Azure中,我们不得不使用LB向互联网公开服务。

+0

谢谢@Jason。它有很多帮助。只是为了确认一点,今天有没有方法来指定pod IP? (我的理解是否定,对吧?) – diamondwong

+0

@diamondwong你的意思是你想把服务暴露给互联网,并且想要指定这个pod的公共IP地址?答案不是,我们将动态获取公共IP地址。如果您删除此窗格并创建新窗口,则IP地址将丢失,并且我们将获得新的IP地址。 –

豆荚在内部网络中运行时负载均衡是在互联网上曝光,所以数据包的地址看起来或多或少是这样的:

[pod1] <----->  [load balancer]   <-----> [browser] 
10.1.0.123   10.1.0.234 201.123.41.53    217.123.41.53 

用于指定荚IP看看SessionAffinity