从Kubernetes吊舱连接到VM
我们目前正在GCP上运行Kubernetes群集。集群有几个POD,默认网络为10.154.0.0/16。我们现在在同一网络中创建了一个新的VM,并分配了一个静态内部IP 10.154.0.4 我们现在正试图从Pod连接到新创建的VM,但我们只能ping它。我们在上面安装了一个基本的Web服务器,只允许内部网络访问,但它不工作 在不创建任何其他防火墙规则的情况下,是否可以访问内部网络上的所有端口 日志: 从Pod Ping VM(工作)从Kubernetes吊舱连接到VM,kubernetes,Kubernetes,我们目前正在GCP上运行Kubernetes群集。集群有几个POD,默认网络为10.154.0.0/16。我们现在在同一网络中创建了一个新的VM,并分配了一个静态内部IP 10.154.0.4 我们现在正试图从Pod连接到新创建的VM,但我们只能ping它。我们在上面安装了一个基本的Web服务器,只允许内部网络访问,但它不工作 在不创建任何其他防火墙规则的情况下,是否可以访问内部网络上的所有端口 日志: 从Pod Ping VM(工作) root@censored-6d9f888f75-pncs
root@censored-6d9f888f75-pncs4:/var/www#ping 10.154.0.4
PING 10.154.0.4(10.154.0.4):56个数据字节
10.154.0.4中的64字节:icmp_seq=0 ttl=63时间=1.636毫秒
访问虚拟机的Web服务器(不工作)
root@censored-6d9f888f75-pncs4:/var/www#curl 10.154.0.4
^C
不确定这是否发生在您身上,但如果您使用ssh连接到一个节点并运行sudo 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
…也就是说,对于10.0.0.0/8范围内的目标IP地址,不要伪装。如果您的POD运行在172.或192.中,这就是他们发出请求的IP地址,如果防火墙规则和路由未正确配置,则可以删除该地址。IPTables为空这是极不可能的。你怎么检查?