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 работает с модулями, хуками модулей и параметрами модулей. Будем признательны, если поставите проекту звезду.