Kubernetes出站数据包网络
问题描述:
我已经创建了一个k8s服务(type = loadbalancer),后面带有一些数据包。据我了解,从pod引发的所有数据包将具有作为PodIP的源IP,因此响应入站流量的那些源将具有作为LoadBalancer IP的源IP。所以我的问题是:Kubernetes出站数据包网络
- 我的声明是真的,还是有时间源IP将是节点IP而不是?
- k8s中是否有任何技巧,我可以将第一种情况下的源IP从PodIP更改为LB IP?
- 任何方式来指定一个指定的pod IP?
答
正如user315902所说,Azure ACS k8s使用Azure负载平衡器向互联网提供服务。
Kubernetes的是我的要求真的,或者有时间的源IP将是节点IP 呢?
如果我们将服务暴露给互联网,我认为源IP将是负载均衡器公共IP地址。在ACS中,如果我们将多个服务暴露给互联网,Azure LB将添加多个公共IP地址。
是否有K8S什么花招,我可以从PodIP到LB IP的 第一个场景改变源IP?
你的意思是你想使用节点公共IP地址将服务公开给互联网吗?如果是的话,我认为我们不能使用节点IP向互联网公开服务。在Azure中,我们不得不使用LB向互联网公开服务。
答
豆荚在内部网络中运行时负载均衡是在互联网上曝光,所以数据包的地址看起来或多或少是这样的:
[pod1] <-----> [load balancer] <-----> [browser]
10.1.0.123 10.1.0.234 201.123.41.53 217.123.41.53
用于指定荚IP看看SessionAffinity。
谢谢@Jason。它有很多帮助。只是为了确认一点,今天有没有方法来指定pod IP? (我的理解是否定,对吧?) – diamondwong
@diamondwong你的意思是你想把服务暴露给互联网,并且想要指定这个pod的公共IP地址?答案不是,我们将动态获取公共IP地址。如果您删除此窗格并创建新窗口,则IP地址将丢失,并且我们将获得新的IP地址。 –