CNI: Calico, Cilium, Flannel

Тема дорожной карты · Kubernetes

CNI-плагины — сетевой уровень Kubernetes, отвечающий за назначение IP-адресов Pod'ам, настройку виртуальных сетевых интерфейсов и применение правил NetworkPolicy на узлах K8s-кластера. Calico реализует CNI с помощью BGP-маршрутизации или VXLAN-инкапсуляции и предоставляет богатый API NetworkPolicy и GlobalNetworkPolicy для микросегментации, что делает его популярным в корпоративных K8s-развёртываниях. Cilium использует Linux eBPF для реализации сетевого взаимодействия CNI и применения NetworkPolicy Kubernetes на уровне ядра без iptables, обеспечивая высокую производительность и глубокую наблюдаемость через Hubble. Flannel — лёгкий CNI-плагин, использующий бэкенды VXLAN или host-gw для создания плоской оверлейной сети, подходящей для простых K8s-кластеров, а Weave Net поддерживает автоматическое шифрование mesh-сети и обнаружение сервисов между Pod'ами на основе DNS.

Как это работает

CNI: Calico, Cilium, Flannel в 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.

Когда применять

Конфигурируйте CNI: Calico, Cilium, Flannel рано в 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.

Связанные понятия

Полезные ресурсы

Проверить знания (2)

Загрузка вопросов…