Ответ
В архитектуре узла (Node) Kubernetes за эти задачи отвечают две ключевые системные компоненты (агенты):
-
kubelet— запускает и управляет подами на узле.- Это основной агент узла, который работает на каждой ноде кластера.
- Его задачи:
- Получение спецификации Pod (манифеста) от API-сервера.
- Управление жизненным циклом контейнеров Pod (запуск, остановка, перезапуск) через Container Runtime Interface (CRI), например, containerd или CRI-O.
- Отчет о состоянии Pod и узла обратно в API-сервер.
- Выполнение probes (liveness, readiness).
-
kube-proxy— отвечает за сетевое взаимодействие Pod'ов и Service'ов.- Это сетевой прокси, работающий на каждом узле.
- Его задачи:
- Поддержка абстракции Service: когда создается Service,
kube-proxyнастраивает правила (через iptables, ipvs или nftables) для маршрутизации трафика с виртуального IP-адреса Service на IP-адреса реальных Pod'ов. - Обеспечение балансировки нагрузки между Pod'ами одного Service.
- Поддержка абстракции Service: когда создается Service,
Практическая проверка:
# Посмотреть статус этих системных Pod'ов в пространстве имен kube-system
kubectl get pods -n kube-system -l component=kubelet
kubectl get pods -n kube-system -l component=kube-proxy
# Проверить логи kubelet на конкретном узле (если есть доступ по SSH)
sudo journalctl -u kubelet -f