我在我的NetWrok中有两台机器,我希望从吊舱中进行通信。
IP如下:
10.0.1.23 - Lets call it X
13.0.1.12 - Lets call it Y
当我进入主节点或代理节点,然后对x或y进行ping时,ping是成功的。因此,机器是可触及的。
现在,我创建了一个部署,我使用(kubectl exec -it POD_NAME — /bin/sh
(登录POD的外壳。
ping是成功的。但是p对于x失败。
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-Ingine具有Kube-Proxy设置,使用10.0.0.0.0/16 如果这是问题,我该如何更改kube-proxy cidr?
附加信息:
我正在使用 acs-engine 用于部署集群。
ip route
default via 10.244.1.1 dev eth0
10.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
基于您的问题,听起来您已经在K8虚拟网络中添加了另一个子网,该子网将通过ACS Kubernetes群集部署。
事实证明,我在我们的项目中遇到了同样的问题。Azure容器服务使用代理节点的非常具体的路由规则。部署K8群集时,它们与所有群集实体在同一资源组中创建一个路由表资源。所以,如果您...
- 在Azure Portal中打开K8路由表
- 转到"子网"部分
- 与您的其他VMS/PAAS服务在 中的子网相关联
...这将创建K8代理在路由外站容器流量时正在寻找的路线。
我有一个完全相同的问题,在谷歌搜索太多之后,我找到了一个适当的解决方案:
使用IP-MASQ代理到MASQ目标CIDR,以伪装该目的地
https://kubernetes.io/docs/tasks/administise-cluster/ip-masq-agent/
一些类似的例子:
http://madorn.com/kubernetes-non-masquerade-cidr.html#.xmdgi-h0nb0
您无法ping kubernetes服务。更多信息在这里:https://github.com/kubernetes/kubernetes/issues/7996#issuecomment-100413276。要测试连接性,您可以在端口上公开一个简单的Web服务器,并使用容器内部或外部的卷曲确认。