k8s pod只能访问其所在的主机

时间:2019-09-19 04:29:40

标签: kubernetes

简而言之,窗格只能访问其所在的主机。

我有一个带有3个节点和Calico插件的k8s-1.15集群:

  • master.test.local(192.168.1.137)
  • node1.test.local(192.168.1.138)
  • node2.test.local(192.168.1.139)

有2个Pod,其中pod-1运行在master(1.137)上,pod-2运行在node1(1.138)上,当我从pod-1(运行1.137)ping 192.168.1.138时,我得到了: >

[~pod-1] # ping 192.168.1.138
PING 192.168.1.138 (192.168.1.138): 56 data bytes

但是如果我从pod-1(在1.137上运行)ping 1.137,它将成功:

[~pod-1] # ping 192.168.1.137
PING 192.168.1.137 (192.168.1.137): 56 data bytes
64 bytes from 192.168.1.137: seq=0 ttl=64 time=0.089 ms
64 bytes from 192.168.1.137: seq=1 ttl=64 time=0.094 ms

我应该如何解决?

1 个答案:

答案 0 :(得分:1)

您的问题将在Issue #2543

中回答
  

这似乎可以正常工作,因为您的网络策略没有任何出口规则。

     

如果要拒绝从Pod A出站,可以将以下部分添加到NetworkPolicy中:

     
types:
- Ingress
- Egress
     

这将告诉该策略同时应用于入口和出口流量,除非您指定出口规则,否则来自Pod A的所有出口将被拒绝。

     

或者,您可以创建一个选择Pod B的入口策略,以防止Pod A访问它。

您可以使用calicoctl profile编辑禁止入站流量的默认策略

calico profile {{ profile_name }} rule add inbound allow from <ip>