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 (Управляющий уровень)
Отвечает за принятие решений в кластере.
Компоненты:
kube-apiserver— точка входа, API-интерфейс для всех операций.etcd— ключ-значение база данных, где хранятся все состояния кластера.kube-scheduler— определяет, на какой node разместить под.kube-controller-manager— следит за состоянием объектов (реплики, ноды, namespace и т.п.).cloud-controller-manager— управляет ресурсами облачного провайдера (если используется).
Control plane не запускает поды приложения, а управляет ими.
Nodes (рабочие узлы)
Физические или виртуальные машины, на которых запускаются контейнеры.
Каждый node включает:
kubelet— следит за подами и сообщает о состоянии.kube-proxy— управляет сетевыми правилами и балансировкой трафика.container runtime— запускает контейнеры (например, containerd, CRI-O, Docker).
Nodes получают инструкции от Control Plane и выполняют их — разворачивают поды, отслеживают ресурсы, маршрутизируют трафик.
Связь: как всё работает
kubectl apply→ отправляет запрос вkube-apiserver.- Control plane обрабатывает запрос, решает, где запустить под.
kube-schedulerвыбирает node.kubeletна выбранном узле разворачивает контейнер(ы).kube-proxyобеспечивает сетевую доступность.