我用2个吊舱进行了部署:
apiVersion: apps/v1
kind: Deployment
metadata:
creationTimestamp: null
labels:
app: nginx
name: nginx
spec:
replicas: 2
selector:
matchLabels:
app: nginx1
strategy: {}
template:
metadata:
creationTimestamp: null
labels:
app: nginx1
spec:
containers:
- image: nginx
name: nginx
resources: {}
ports:
- containerPort: 80
status: {}
然后使用clusterip公开它,然后创建如下的网络策略:
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: test-network-policy
namespace: default
spec:
podSelector:
matchLabels:
app: nginx1
policyTypes:
- Ingress
ingress:
- from:
- podSelector:
matchLabels:
role: frontend
但是当我使用不包含标签(role = frontend)的busybox pod通过wget请求它时,我仍然得到nginx的html页面。
我想知道为什么吗?
任何帮助都会非常有用。谢谢:)
答案 0 :(得分:1)
如果您的k8s集群是使用不支持网络策略的Container Network Interface (CNI)
插件部署的,则不会对其产生影响。来自k8s docs:
网络策略由网络插件实施。要使用网络策略,您必须使用支持NetworkPolicy 的网络解决方案。在没有实现该控制器的控制器的情况下创建NetworkPolicy资源将无效。