💻 Kube-proxy — компонент kubernetes, работающий на каждой ноде кластера.
Он отвечает за реализацию сервисов (Service) и обеспечивает перенаправление трафика на поды.
➡️ Основные задачи
— Обеспечивает работу сервисов типов ClusterIP, NodePort, LoadBalancer
— Преобразует виртуальный IP сервиса в IP-адреса целевых подов
— Выполняет балансировку нагрузки на уровне L4 (TCP/UDP/SCTP)
— Отслеживает изменения сервисов и эндпоинтов через Kubernetes API
➡️ Принцип работы
Kube-proxy следит за API-сервером. При создании, удалении или изменении сервиса он обновляет правила маршрутизации на ноде. Трафик, приходящий на IP сервиса, перенаправляется на один из подов согласно настроенному режиму.
➡️ Режимы работы
🔵 iptables (режим по умолчанию)
— Генерирует цепочки правил в iptables
— Пакеты перенаправляются напрямую на поды без дополнительных переходов
— Балансировка реализована через случайный выбор правила
— Подходит для большинства кластеров среднего размера
🔵 ipvs (рекомендуется для крупных кластеров)
— Использует встроенный балансировщик ядра Linux IPVS
— Выдерживает десятки тысяч сервисов без деградации
— Обеспечивает session affinity (persistence) на уровне ядра
🔵 userspace (устаревший)
— Прокси работает в пространстве пользователя
— Каждое соединение проходит через kube-proxy
— Используется только в legacy-кластерах
🔵 Ключевые особенности
— Работает независимо от container runtime (containerd, CRI-O)
— Запускается на каждой ноде как DaemonSet (или системный сервис)
— Взаимодействует только с сетевым стеком ноды, не влияет на сами поды
— Обновления правил применяются атомарно, без прерывания существующих соединений
Kube-proxy обеспечивает базовую сетевую связность в кластере, превращая динамические IP подов в стабильные точки доступа и равномерно распределяя нагрузку.
#заметкиИнженера
Post #2712
1.01K

- ❤ 6
- 👍 4
- 🔥 3