NetworkPolicies
Тема дорожной карты · Kubernetes
Сетевые политики Kubernetes (NetworkPolicy) — ресурсы уровня пространства имён, определяющие разрешённые способы взаимодействия Pod'ов между собой и с внешними конечными точками; действуют как межсетевой экран на уровнях 3/4, применяемый CNI-плагином кластера. Манифест NetworkPolicy использует spec.podSelector для выбора Pod'ов по метке, а блоки spec.ingress / spec.egress — для разрешения источников и назначений трафика по podSelector, namespaceSelector или диапазонам CIDR в ipBlock. Без применения каких-либо NetworkPolicy всё взаимодействие Pod-to-Pod внутри кластера разрешено по умолчанию; добавление политики с пустым блоком ingress создаёт правило запрета по умолчанию для выбранных Pod'ов. Для реального применения NetworkPolicy требуются CNI-плагины Calico, Cilium или Weave Net — сам kube-proxy и встроенная сеть не реализуют их самостоятельно. Cilium расширяет NetworkPolicy Kubernetes правилами уровня L7 для HTTP-путей и DNS и интегрируется с Hubble для наблюдаемости сети с учётом политик по всему кластеру.
Как это работает
NetworkPolicies в Kubernetes работает через CNI (Container Network Interface) на каждой ноде плюс API-ресурсы (Service, Ingress, NetworkPolicy и т.д.), которые декларирует пользователь. CNI выдаёт pod IPs из cluster-wide CIDR, kube-proxy программирует правила iptables/IPVS для Service ClusterIP, ingress-controller (NGINX, Traefik и др.) обрабатывает внешний HTTP-трафик с TLS termination.
Когда применять
Конфигурируйте NetworkPolicies рано в setup кластера — сетевые решения имеют широкие последствия и сложно меняются позже. Выбирайте CNI (Calico, Cilium, Flannel) по нуждам policy и масштаба; выбирайте ingress controller под мешок нагрузок; проектируйте Service и DNS-разметку до деплоя реальных нагрузок. Network observability (kube-state-metrics + Prometheus + Cilium Hubble) экономит часы во время incident response.
Типичные ошибки
Сетевые ловушки: дефолт на NodePort (открывает порты на каждом worker — обычно не то, что вам нужно), когда имели в виду ClusterIP + Ingress; забыли NetworkPolicies (всё общается со всем по умолчанию в K8s — опасно в shared-кластерах); ingress controllers без TLS-стратегии; неправильная конфигурация CoreDNS, вызывающая cluster-wide DNS-failures. Тестируйте network policies на staging до production.
Связанные понятия
Полезные ресурсы
Проверить знания (1)
Загрузка вопросов…