为什么网络策略入口不适用于我的情况

时间:2020-10-11 14:30:25

标签: kubernetes kubernetes-networkpolicy

我用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页面。

我想知道为什么吗?

任何帮助都会非常有用。谢谢:)

1 个答案:

答案 0 :(得分:1)

如果您的k8s集群是使用不支持网络策略的Container Network Interface (CNI)插件部署的,则不会对其产生影响。来自k8s docs

网络策略由网络插件实施。要使用网络策略,您必须使用支持NetworkPolicy 的网络解决方案。在没有实现该控制器的控制器的情况下创建NetworkPolicy资源将无效。