Контекст: я использую EKS с плагином calico для сетевых политик и группы управляемых узлов.
У меня есть пространство имен, называемое simon-test, в котором я хочу запретить любой выход из пространства имен другим (поэтому модули в simon-test не смогут видеть другие модули в других пространствах имен). Я попытался сделать это, используя следующую сетевую политику (которая, похоже, работает должным образом):
kind: NetworkPolicy
apiVersion: networking.k8s.io/v1
metadata:
name: default-deny-all-egress
namespace: simon-test
spec:
policyTypes:
- Egress
podSelector: {}
egress: []
но это также заблокировало всю внутреннюю сеть в пространстве имен. Поэтому, чтобы исправить это, я создал другую сетевую политику, которая должна разрешать весь трафик в пространстве имен:
kind: NetworkPolicy
apiVersion: networking.k8s.io/v1
metadata:
name: allow-internal
namespace: simon-test
spec:
podSelector:
matchLabels: {}
ingress:
- from:
- namespaceSelector:
matchLabels:
name: simon-test
Но это не решает проблему, поскольку в пространстве имен по-прежнему нет сети. Мне любопытно, почему я все еще могу получить доступ к simon-test из другого модуля в другом пространстве имен (я запускаю nc -nlvp 9999
в модуле в simon-test и nc -z ip-of-pod-in-simon-test-ns 9999
из модуля из другого пространства имен, и он может достичь его, но при пинге модуля из в рамках simon-test это невозможно.)