Я настраиваю свое пространство имен по умолчанию в кластере kubernetes, чтобы разрешить входящий трафик с внешних узлов / хостов, но запретить любую возможную связь между модулями. У меня есть 2 модуля nginx, которые я хочу полностью изолировать внутри кластера. Оба модуля представлены службой типа nodePort и доступны извне.
Сначала я применяю следующую политику запрета сети по умолчанию:
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: default-deny
spec:
podSelector: {}
policyTypes:
- Ingress
Затем я пытаюсь разрешить внешний трафик с помощью следующей сетевой политики:
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: allow-external
spec:
podSelector: {}
ingress:
- from:
- ipBlock:
cidr: 192.168.0.0/16
Но, к сожалению, я не могу получить доступ к сервису ни извне, ни внутри своего кластера.
Пример выполнения в: - macOS High Sierra v10.13.6 - minikube v1.5.2 -> с сетевым плагином = cilium - kubectl v1.16.2
Как я мог столкнуться с этой проблемой?
kubectl cluster-info dump | grep -i cidr
, и результат был следующим: clusterCIDR не указан, невозможно различить внутренний и внешний трафик. Затем я взглянул на свой файл, расположенный по адресу: ~ / .minikube / profiles / minikube / config.json, и это был результат: MachineConfig: {...}, KubernetesConfig: {... NetworkPlugin: cni, FeatureGates: , ServiceCIDR: 10.96.0.0/12, ExtraOptions: null - person Javier Errea   schedule 06.11.2019