4

我正在尝试添加一个印花布网络策略,以允许我的命名空间与 kube-system 命名空间通信。但是在我的 k8s 集群中,kube-system 没有附加标签,所以我无法在其中选择 pod。以下是我尝试过的,但它不起作用。

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: allow-kube-system
  namespace: advanced-policy-demo
spec:
  podSelector: {}       # select all pods in current namespace.
  policyTypes:
  - Ingress
  - Egress
  ingress:
  - from:
    - namespaceSelector:
        matchLabels: {}
      podSelector:
        matchLabels:
          tier: control-plane
  egress:
  - to:
    - namespaceSelector:
        matchLabels: {}
      podSelector:
        matchLabels:
          tier: control-plane
$ kubectl describe ns kube-system
Name:         kube-system
Labels:       <none>
Annotations:  <none>
Status:       Active

No resource quota.

No resource limits.

我有一种方法可以仅按名称选择名称空间吗?

4

2 回答 2

4

是什么阻止您为此命名空间创建新标签?,如下所示:

kubectl label ns/kube-system calico=enabled
于 2019-07-01T12:34:02.127 回答
1

他们特别指出这是一个限制,@Nepomucen 有正确的解决方案。

“按名称定位命名空间或服务(但是,您可以通过标签定位 pod 或命名空间,这通常是一种可行的解决方法)。”

参考:https ://kubernetes.io/docs/concepts/services-networking/network-policies/#what-you-can-t-do-with-network-policy-s-at-least-not-yet

于 2020-09-20T20:42:23.360 回答