我在netwrok内有两台机器,我想通过Pod进行通信。
Ips如下:
10.0.1.23 - Lets call it X
13.0.1.12 - Lets call it Y
当我SSH到主节点或代理节点,然后对X或Y执行ping操作时,ping操作成功。
因此,机器是可及的。
现在创建部署,我使用(
kubectl exec -it POD_NAME — /bin/sh
)登录到Pod的 shell 。向Y ping成功。但是对X的ping操作失败。
CIDR详细信息:
Master Node : 14.1.255.0/24
Agent Node: 14.2.0.0/16
Pod CIDR:
Agent : 10.244.1.0/24
Master: 10.244.0.0/24
我对可能的问题的理解:
附加信息:
我正在使用acs-engine进行群集部署。
ip route
的输出default via 10.244.1.1 dev eth010.244.1.0/24 dev eth0 src 10.244.1.13
另一个嫌疑人:在运行
iptables-save
时,我看到了-A POSTROUTING ! -d 10.0.0.0/8 -m comment --comment "kubenet: SNAT for outbound traffic from cluster" -m addrtype ! --dst-type LOCAL -j MASQUERADE
最佳答案
根据您的问题,听起来好像您已将另一个子网添加到随ACS Kubernetes集群一起部署的k8虚拟网络中。
事实证明,我在我们的项目中遇到了同样的问题。 Azure容器服务对代理节点使用非常特定的路由规则。部署k8集群后,它们将在与所有集群实体相同的资源组中创建路由表资源。所以,如果你...
...这将创建k8代理在路由出站Pod容器流量时要寻找的路由。
关于azure - 无法从Pod内以cidr 10.0.x.0/24与网络中的计算机(k8s群集外部)通信,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43471377/