问题描述
我一直在尝试在群集(k8s裸机)上实施网络策略,并且似乎没有在群集节点上运行的Pod上实施任何策略,仅在直接在主节点上运行的Pod上实施。
我尝试过的事情:
- 具有主节点+节点和带有calicoctl且带有k8s数据存储的calicoctl的calico CNI的单个名称空间(我可以看到两个节点上都运行了calico / calicoctl容器)
- 两种networkPolicy类型(networking.k8s.io/v1和projectcalico.org/v3)
- 应用简单的拒绝任何入口/出口策略并测试ping到8.8.8.8(主节点上的Pod被阻塞,其他节点上的Pod仍然可以ping)
感谢您的帮助
解决方法
发现问题出在我使用'hostNetwork'的部署中,该主机使用的子网不是Pod网络的一部分(因此Calico不知道)。
删除'hostNetwork:true'参数使容器获得适用的IP和网络策略。