В Deckhouse Kubernetes Platform (DKP) используется стандартный («vanilla») кластер Kubernetes. Control plane кластера включает в себя следующие базовые компоненты:
-
kube-apiserver — API-сервер Kubernetes. Обрабатывает REST-запросы, предоставляет интерфейс доступа к общему состоянию кластера, через который взаимодействуют все остальные компоненты, валидирует ресурсы Kubernetes API и сохраняет их в хранилище etcd. Включает следующие контейнеры:
- kube-apiserver — основной контейнер;
- kube-apiserver-healthcheck - сайдкар-контейнер, который позволяет проверять работоспособность kube-apiserver без включения анонимной аутентификации и без открытия порта, не прошедшего проверку подлинности. Использует клиентский сертификат для аутентификации на API-сервере. Является Open Source-продуктом.
-
etcd — распределённое хранилище типа «ключ-значение», где хранится вся конфигурация и ресурсы Kubernetes-кластера.
-
kube-scheduler — планировщик Kubernetes. Анализирует ресурсы узлов и размещает поды с учетом ограничений и правил, таких как affinity и taints.
-
kube-controller-manager — диспетчер контроллеров Kubernetes. Запускает циклы контроллеров, которые отслеживают и корректируют состояние стандартных ресурсов Kubernetes, приводя их к желаемому состоянию. Примеры контроллеров, которые поставляются с Kubernetes: replication controller, endpoints controller, namespace controller и ServiceAccount controller.
Взаимодействие компонентов control plane Kubernetes изображено на схеме архитектуры модуля control-plane-manager.