在 Minikube 多个命名空间中,为什么 NetworkPolicy 不起作用

In Minkube mulitple namespaces why NetworkPolicy is not working

我正在使用 minikube 并创建了以下资源

  1. 两个命名空间 qa 和 prod
  2. 在 qa 命名空间中创建了 curlpod,还在 prod 命名空间中创建了 curlpod 和 web pod。 Curl pods 可用于 CURL 任何 URL 而 web pod 具有 nginx 服务默认网页。
  3. 根据 NetworkPolicy 创建并将其应用于 prod 命名空间。
    apiVersion: networking.k8s.io/v1
    kind: NetworkPolicy
    metadata:
      namespace: prod                         #A
      name: block-other-namespace
    spec:
      podSelector: {}                              #B
      ingress:
      - from:
        - podSelector: {}                 #C

我可以看到应用如下图所示

当我从 qa 命名空间的 curlpod 到 prod 命名空间的 web pod CURL 时,为了测试 prod 命名空间与 qa 命名空间隔离,它 returns 默认的 nginx 网页不应该到期网络政策。请帮我找出为什么网络策略没有阻止来自 qa 命名空间的请求。

prod命名空间的web pod获取IP和qa命名空间的curlpod向prod命名空间的web pod的CURL请求截图如下:

Netowrk Policy 在 minikube 上不起作用的原因如前所述 here:

“普通的 minikube 安装 ( minikube start ) 不支持任何 NetworkPolicies,因为默认的 CNI Kindnet 在设计上不支持网络策略。但是,如果受支持的 CNI,例如 Calico,minikube 可以支持 NetworkPolicies , 已安装。