Введение
Как Kubernetes понимает, куда направлять трафик на сервисы? За это отвечает kube-proxy.
Когда вы используете ClusterIP, NodePort или LoadBalancer — kube-proxy работает за кулисами, чтобы трафик дошёл до нужного пода.
Разберемся, как он устроен.
Что такое kube-proxy?
kube-proxy — это сетевой компонент, запускающийся на каждом узле кластера.
Он:
- Обрабатывает трафик к сервисам
- Управляет IP-маршрутизацией
- Направляет запросы к подам
kube-proxy — это маршрутизатор внутри Kubernetes.
Как работает kube-proxy?
Основные режимы работы:
- iptables (по умолчанию)
- IPVS (быстрее и эффективнее)
Когда создаётся сервис:
- kube-proxy замечает его через API
- Создаёт iptables или IPVS правила
- Перенаправляет трафик на поды
kubectl get services
kubectl get endpoints
Показывает, чем управляет kube-proxy.
Пример
При создании сервиса:
apiVersion: v1
kind: Service
metadata:
  name: my-app
spec:
  selector:
    app: my-app
  ports:
    - port: 80
      targetPort: 8080
kube-proxy:
- Обнаруживает сервис
- Находит поды по селектору
- Маршрутизирует трафик к ним через iptables/IPVS
Режимы: iptables vs IPVS
| Параметр | iptables | IPVS | 
|---|---|---|
| Производительность | Хорошая | Отличная | 
| Масштабируемость | Для малых/средних кластеров | Для больших | 
| Возможности | Базовая балансировка | Расширенные функции | 
| Установка | По умолчанию | Требует настройки | 
kubectl get configmap kube-proxy -n kube-system -o yaml
Показывает текущий режим.
Почему kube-proxy важен?
Без kube-proxy:
- Сервисный трафик не маршрутизируется
- ClusterIP недоступен
- Балансировка между подами невозможна
Это основа сетевого взаимодействия в Kubernetes.
Заключение
kube-proxy может быть незаметным, но он — ключевой компонент.
Он следит, чтобы сервисы работали, трафик доходил, а ваши приложения масштабировались без лишней боли.
→ Узнать больше: