我已使用 Rancher 2.2.8 将全新 Kubernetes 集群 (v1.15.3) 部署到单个全新 VM。我尝试向 Nginx 入口添加默认“拒绝所有”网络策略,以阻止任何连接。
我将以下内容应用于ingress-nginx
命名空间:
kind: NetworkPolicy
apiVersion: networking.k8s.io/v1
metadata:
name: http-deny-all
namespace: ingress-nginx
spec:
podSelector: {}
ingress: []
但该网站仍然可以访问。
然后,我在命名空间中创建一个“nginx”守护进程集default
,监听主机端口 81。如果我将相同的 NetworkPolicy 应用于default
命名空间,它会成功阻止流量。
为什么 NetworkPolicy 不适用于nginx-ingress
命名空间?这个命名空间或守护进程集是否有特殊之处,nginx-ingress-controller
导致 NetworkPolicy 无法在此处工作?
答案1
最后,问题出hostNetwork: true
在nginx-ingress-controller
daemonset 配置中。我删除了此行,重新启动了控制器 pod,现在 NetworkPolicy 已按预期应用。