Ответ
kubelet — это основной агент узла (Node Agent), который работает на каждом worker-узле. Его ключевые обязанности:
- Управление жизненным циклом подов: получение спецификации PodSpec (обычно от API-сервера) и обеспечение работы описанных в ней контейнеров через Container Runtime Interface (CRI).
- Отчетность: постоянная отправка статуса узла и состояния подов в control plane (kube-apiserver).
- Выполнение probes (liveness, readiness, startup) для контейнеров.
- Монтирование томов (Volumes) и секретов (Secrets) для подов.
kube-proxy — сетевой прокси, работающий на каждом узле, отвечает за сетевую коммуникацию с сервисами (Service):
- Реализует абстракцию Service, поддерживая набор сетевых правил (через iptables, IPVS или nftables).
- Обеспечивает балансировку TCP/UDP/SCTP-трафика между подами, входящими в сервис.
- Отслеживает изменения в endpoints (наборе IP-адресов подов сервиса) и динамически обновляет правила.
Пример фрагмента конфигурации kubelet (/var/lib/kubelet/config.yaml):
apiVersion: kubelet.config.k8s.io/v1beta1
kind: KubeletConfiguration
clusterDNS:
- 10.96.0.10
clusterDomain: cluster.local
cpuManagerPolicy: static