Deckhouse отвечает за то, чтобы кластер одинаково работал на любой поддерживаемой инфраструктуре:
- в облаках (смотри информацию по соответствующему cloud provider’у);
- на виртуальных машинах или железе (включая on-premises);
- в гибридной инфраструктуре.
Для этого Deckhouse Kubernetes Platform автоматически настраивает и управляет как узлами кластера, так и его компонентами control plane, постоянно поддерживая их актуальную конфигурацию (используя инструменты Terraform).
Deckhouse позволяет легко выполнять такие нетривиальные операции с компонентами control plane и узлами кластера, как:
- миграция между single-master- и multi-master-схемами;
- масштабирование master-узлов;
- обновление версий компонентов.
Операции выполняются по умным и безопасным алгоритмам с возможностью пользовательского контроля и управления происходящими процессами.
Также Deckhouse настраивает конфигурацию kubelet на узлах и берет на себя заботу о состоянии используемых при работе с control plane сертификатов, выполняя их выпуск и продление.
Deckhouse заменяет собственными версиями ресурсы, относящиеся к kube-proxy от kubeadm (соответствующие DaemonSet, ConfigMap, RBAC).
Интеграция между модулями Deckhouse позволяет сразу получить эффективный мониторинг и обеспечить приемлемый уровень безопасности. Например, можно легко организовать надежный доступ к API-серверу кластера через публичный IP-адрес, в том числе с возможностью работы через внешний провайдер аутентификации.
Образы всех компонентов Deckhouse, включая control plane, хранятся в высокодоступном и геораспределенном container registry. Для удобства организации доступа из изолированных контуров container registry доступен с фиксированного набора IP-адресов.
С точки зрения архитектуры, Deckhouse состоит из оператора Deckhouse и модулей. Модуль — это набор из Helm-чарта, хуков Addon-operator’а, правил сборки компонентов модуля (компонентов Deckhouse) и других файлов.
При работе с модулями Deckhouse использует проект addon-operator. Ознакомьтесь с его документацией, если хотите понять, как Deckhouse работает с модулями, хуками модулей и параметрами модулей. Будем признательны, если поставите проекту звезду.