Сетевая подсистема
Стартовая информация
Сетевой плагин выбирается во время установки кластера.
Документация, сетевая модель K8s Выдержки:
- Сетевая подсистема используется только подами (не нодами).
- У каждой node свой пул ip адресов для запущенных у них pod.
- Каждый Pod в кластере имеет собственный уникальный в пределах кластера IP адрес.
- У каждого Pod свое частное сетевое пространство, общее для всех контейнеров внутри Pod. Контейнеры внутри Pod взаимодействуют через localhost.
- Pod'ы взаимодействуют с Pod на других нодах при помощи сетевого плагина (CNI).
- Служба - это метод предоставления доступа к Pod в кластере (внутренний и внешний)
Вот вроде просто, но нихера не понятно. Поэтому дальше начинается самое веселое)
Следствия пункта 1. Связность между нодами и контроллером не зависит от сетевого взаимодействия подов. Поэтому вопрос сети при управлении - один вопрос, вопрос сети подов - второй вопрос.
Первый вопрос относительно простой: сетевая видимость точка - точка между IP адресами. Необходимые порты при настройке port-forwarding:
На мастер нодах:
TCP 6443* Kubernetes API Server
TCP 2379-2380 etcd server client API
TCP 10250 Kubelet API
TCP 10251 kube-scheduler
TCP 10252 kube-controller-manager
TCP 10255 Read-Only Kubelet API
На воркерах:
TCP 10250 Kubelet API
TCP 10255 Read-Only Kubelet API
TCP 30000-32767 NodePort Services
Открываем порты и управление начнет работать. Теперь нужна сетевая связность между подами.

Для использования службы типа LoadBalancer необходимо установить балансировщик, например MetalLB