我们正在使用 Rancher 以 Canal 作为 CNI 来设置集群。我们决定使用 Traefik 作为 Ingress Controller,并希望创建一个 NetworkPolicy。我们禁用了 ProjectIsolation,并且 Traefik 正在 kube-system 命名空间的 System 项目中运行。
我创建了这个政策:
# deny all ingress traffic
kind: NetworkPolicy
apiVersion: networking.k8s.io/v1
metadata:
name: default-deny-all
spec:
podSelector: {}
ingress:
- from:
- podSelector: {}
---
# allow traefik
kind: NetworkPolicy
apiVersion: networking.k8s.io/v1
metadata:
name: ingress-allow-traefik
spec:
podSelector: {}
ingress:
- from:
- namespaceSelector:
matchLabels:
namespace: kube-system
podSelector:
matchLabels:
app: traefik
---
# allow backnet
kind: NetworkPolicy
apiVersion: networking.k8s.io/v1
metadata:
name: ingress-allow-backnet
spec:
podSelector: {}
ingress:
- from:
- ipBlock:
cidr: 10.0.0.0/24
- ipBlock:
cidr: 10.1.0.0/24
- ipBlock:
cidr: 10.2.0.0/24
- ipBlock:
cidr: 192.168.0.0/24
但不知何故,我们无法让它发挥作用。连接超时,仅此而已。这个政策有什么大问题吗?我对 NetworkPolicies 有什么不明白的地方?
提前致谢