Node — это рабочий узел в кластере Kubernetes. Он может быть как физическим сервером, так и виртуальной машиной, и служит площадкой для запуска подов. Каждый node предоставляет вычислительные ресурсы (CPU, память, дисковое пространство) и управляется системными компонентами Kubernetes.
На каждом узле обязательно работают три ключевых процесса:
– kubelet — следит за состоянием подов и сообщает об их статусе в control plane,
– kube-proxy — отвечает за сетевую маршрутизацию и доступ к сервисам,
– container runtime (например, containerd или CRI-O) — запускает контейнеры внутри подов.
Узлы — это то, на чём физически работает ваше приложение. Вся нагрузка, масштабирование, обновление и отказоустойчивость зависят от доступности и состояния этих узлов. Один кластер может включать десятки или сотни nodes, и Kubernetes автоматически распределяет рабочие нагрузки между ними.
Управлять node’ами можно через команды
kubectl
–
kubectl get nodes
–
kubectl cordon <node-name>
–
kubectl drain <node-name>
В архитектуре Kubernetes есть чёткое разделение:
– Control Plane — управляет кластером, решает, что и где запускать.
– Nodes — выполняют реальные задачи, размещают поды и обеспечивают исполнение приложений.
Понимание роли node’ов критично для администрирования и масштабирования кластеров. Именно узлы определяют, сколько ресурсов доступно, как быстро можно масштабировать поды и насколько надёжно будет работать система под нагрузкой.
Архитектура Kubernetes: Control Plane и Node
Control Plane (Управляющий уровень)
Отвечает за принятие решений в кластере.
Компоненты:
- — точка входа, API-интерфейс для всех операций.
kube-apiserver
- — ключ-значение база данных, где хранятся все состояния кластера.
etcd
- — определяет, на какой node разместить под.
kube-scheduler
- — следит за состоянием объектов (реплики, ноды, namespace и т.п.).
kube-controller-manager
- — управляет ресурсами облачного провайдера (если используется).
cloud-controller-manager
Control plane не запускает поды приложения, а управляет ими.
Nodes (рабочие узлы)
Физические или виртуальные машины, на которых запускаются контейнеры.
Каждый node включает:
- — следит за подами и сообщает о состоянии.
kubelet
- — управляет сетевыми правилами и балансировкой трафика.
kube-proxy
- — запускает контейнеры (например, containerd, CRI-O, Docker).
container runtime
Nodes получают инструкции от Control Plane и выполняют их — разворачивают поды, отслеживают ресурсы, маршрутизируют трафик.
Связь: как всё работает
- → отправляет запрос в
kubectl apply
.kube-apiserver
- Control plane обрабатывает запрос, решает, где запустить под.
- выбирает node.
kube-scheduler
- на выбранном узле разворачивает контейнер(ы).
kubelet
- обеспечивает сетевую доступность.
kube-proxy