我有一个使用 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