如何隔离 kubernetes 命名空间但允许从外部访问

如何隔离 kubernetes 命名空间但允许从外部访问

我有一个使用 kubeadm 设置的 Kubernetes 集群,
我正在尝试定义一个网络策略,该策略限制从命名空间外部的访问,但不会阻止从外部(外部 IP)的访问,
详细说明我希望可以从命名空间中的其他 pod 和通过外部 IP 地址访问 pod,但不能从其他命名空间访问,
有什么想法吗?

答案1

我使用了以下网络策略,它对我有用

kind: NetworkPolicy
apiVersion: networking.k8s.io/v1
metadata:
  namespace: policy-test
  name: deny-from-other-namespaces
spec:
  podSelector:
    matchLabels:
  ingress:
  - from:
    - podSelector: {}
    - namespaceSelector:
        matchLabels:
          access: "true"  

据我所知,外部访问是通过 kube-proxy 授予的,它是 kube-system 命名空间中的一个 pod。此网络策略将允许来自 policy-test 命名空间的所有 pod 以及任何带有 access=true 标签的命名空间,
应用此网络策略并将 access=true 标签添加到 kube-system 命名空间将解决该问题

添加标签:

kubectl label namespace/kube-system access=true

相关内容