Ответ
Узел (Node) — это рабочая машина (виртуальная или физическая) в кластере Kubernetes, на которой запускаются поды (Pods). Каждый узел состоит из нескольких обязательных компонентов, управляемых Control Plane.
Основные компоненты узла:
-
Kubelet: Главный агент узла. Он отвечает за:
- Получение спецификации Pod (манифеста) от API-сервера.
- Управление жизненным циклом контейнеров в Pod (запуск, остановка) через Container Runtime.
- Отправку отчетов о состоянии узла и подов обратно в Control Plane.
-
Container Runtime: Программное обеспечение, которое выполняет контейнеры (например,
containerd,CRI-O). Kubelet взаимодействует с ним через интерфейс CRI (Container Runtime Interface). -
Kube-proxy: Сетевой прокси, работающий на каждом узле. Он отвечает за:
- Реализацию концепции Service (сервиса).
- Маршрутизацию сетевого трафика к подам на основе правил IPTables или IPVS.
- Балансировку нагрузки между подами одного сервиса.
Дополнительно на узле могут быть:
- Аддоны (Addons): Например, сетевой плагин CNI (Calico, Flannel), агенты мониторинга (Prometheus Node Exporter) или логирования (Fluentd).
- Системные демоны:
sshd,cron,systemd.
Проверка состояния узла:
kubectl describe node <node-name>
В выводе вы увидите информацию о версиях компонентов, ресурсах (CPU, Memory), условиях (Conditions) и списке запущенных подов.