Ответ
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"