У меня есть настройка кластера Kubernetes с использованием kubeadm
Я пытаюсь определить сетевую политику, которая ограничивает доступ извне пространства имен, но не блокирует доступ извне (внешний IP-адрес)
чтобы уточнить, я хочу, чтобы модули были доступны из других модулей в пространстве имен и через внешний IP-адрес, но не из других пространств имен
Любые идеи?
Я использовал следующую сетевую политику, и у меня она сработала
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. эта сетевая политика разрешит все модули из пространства имен policy-test и любого пространства имен с меткой access = true
применение этой сетевой политики и добавление метки access = true в пространство имен kube-system решит проблему.
добавление метки:
kubectl label namespace/kube-system access=true