За что отвечают control plane и worker-ноды в Kubernetes?

«За что отвечают control plane и worker-ноды в Kubernetes?» — вопрос из категории Kubernetes, который задают на 23% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Control Plane (Управляющая плоскость) — это "мозг" кластера, отвечающий за глобальные решения (оркестрация) и поддержание желаемого состояния. Его компоненты:

  • kube-apiserver: Фронтенд control plane, единственный компонент, взаимодействующий с etcd. Обрабатывает все REST-запросы (от kubectl, dashboard, других компонентов).
  • etcd: Высокодоступное key-value хранилище, в котором хранится вся конфигурация и состояние кластера.
  • kube-scheduler: Отвечает за планирование подов на worker-ноды, учитывая требования к ресурсам, политики affinity/anti-affinity и т.д.
  • kube-controller-manager: Запускает контроллеры, которые следят за состоянием кластера (Node Controller, Replication Controller, Endpoints Controller и др.).

Worker Nodes (Рабочие ноды) — машины (виртуальные или физические), на которых выполняются рабочие нагрузки (поды). Их компоненты:

  • kubelet: Агент, который общается с control plane и управляет контейнерами.
  • kube-proxy: Сетевой прокси для сервисов.
  • Container Runtime: Программное обеспечение для запуска контейнеров (containerd, CRI-O, Docker Engine).

Пример манифеста Node с taint (меткой, ограничивающей планирование подов):

apiVersion: v1
kind: Node
metadata:
  name: gpu-node-01
spec:
  taints:
  - key: "hardware"
    value: "gpu"
    effect: "NoSchedule"