Модуль console
Модуль console реализует веб-интерфейс Deckhouse Kubernetes Platform (DKP), который упрощает управление платформой и позволяет отслеживать состояние системы.
Архитектура модуля
Для упрощения схемы приняты следующие допущения:
- На схеме показано, что контейнеры разных подов взаимодействуют друг с другом напрямую. Фактически они взаимодействуют через соответствующие сервисы Kubernetes (внутренние балансировщики). Названия сервисов не указываются, если они очевидны из контекста. В остальных случаях название сервиса указано над стрелкой.
- Поды могут быть запущены в нескольких репликах, однако на схеме все поды изображены в одной реплике.
Архитектура модуля console на уровне 2 модели C4 и его взаимодействие с другими компонентами DKP изображены на следующей диаграмме:

Номерами на схеме отмечен порядок обращения к компонентам модуля: доступ к frontend, backend и nginx осуществляется через Ingress NGINX Controller с обязательной аутентификацией пользователя в Dex.
Компоненты модуля
Модуль состоит из следующих компонентов:
-
Frontend — состоит из одного контейнера frontend и отвечает за веб-интерфейс пользователя и администратора DKP.
-
Backend — состоит из одного контейнера backend и реализует API-интерфейс, обеспечивающий следующие возможности:
- получение, создание, удаление и изменение ресурсов DKP в соответствии с правами пользователя;
- генерация kubeconfig с профилем пользователя;
- определение того, в каком окружении развернут кластер DKP;
- обнаружение версий DKP и Kubernetes;
- загрузка метрик и логов;
- загрузка информации о доступности платформы;
- скачивание дисков ВМ (при включенных модулях
virtualizationиstorage-volume-data-manager).
-
Observability-gw — состоит из одного контейнера nginx и выполняет проксирование запросов к Grafana для встраивания дашбордов в основной веб-интерфейс платформы, а также для работы с метриками и логами выбранного проекта.
-
Dex-authenticator — обеспечивает проверку и аутентификацию пользователя с использованием единой системы аутентификации платформы, реализуемой модулем
user-authn. Подробнее с описанием архитектуры модуляuser-authnможно ознакомиться в соответствующем разделе документации.
Взаимодействия модуля
Модуль взаимодействует со следующими компонентами:
- Kube-apiserver:
- организация подключения к ВМ через console и VNC;
- создание, удаление, изменение и отслеживание ресурсов DKP.
-
Upmeter — получение информации о доступности DKP.
-
Deckhouse-tools — пересылка запросов для загрузки утилиты Deckhouse CLI.
-
Prometheus — получение системных метрик (CPU, RAM и др.) платформы.
-
Observability — получение метрик и логов для выбранного проекта.
- Storage-volume-data-manager — экспорт образов дисков ВМ.
С модулем взаимодействуют следующие внешние компоненты:
- Controller nginx — пересылка внешних запросов пользователя к веб-интерфейсу модуля.
Модуль documentation
Модуль documentation — это реализация веб-интерфейса с документацией, соответствующей запущенной версии DKP.
Архитектура модуля
Для упрощения схемы приняты следующие допущения:
- На схеме показано, что контейнеры разных подов взаимодействуют друг с другом напрямую. Фактически они взаимодействуют через соответствующие сервисы Kubernetes (внутренние балансировщики). Названия сервисов не указываются, если они очевидны из контекста. В остальных случаях название сервиса указано над стрелкой.
- Поды могут быть запущены в нескольких репликах, однако на схеме все поды изображены в одной реплике.
Архитектура модуля documentation на уровне 2 модели C4 и его взаимодействие с другими компонентами DKP изображены на следующей диаграмме:

Компоненты модуля
Модуль состоит из следующих компонентов:
-
Documentation — компонент, реализующий веб-интерфейс документации.
Состоит из следующих контейнеров:
-
web — основной контейнер;
-
kube-rbac-proxy — сайдкар-контейнер с авторизующим прокси на основе Kubernetes RBAC для организации защищенного доступа к основному контейнеру. Является Open Source-проектом;
-
builder — сайдкар-контейнер, который динамически расширяет документацию при установке новых модулей DKP. Для рендеринга и генерации актуального содержимого сайта используется генератор статических сайтов Hugo.
Контейнер builder автоматически создаёт и обновляет Kubernetes-ресурс Lease, размещая в нём эндпоинт для обновления документации. Этот эндпоинт используется контроллером модуля
deckhouseдля запуска обновления документации при обновлении или установке модулей. Благодаря этому изменения своевременно отображаются в веб-интерфейсе.
-
-
Dex-authenticator — обеспечивает проверку и аутентификацию пользователя с использованием единой системы аутентификации платформы, реализуемой модулем
user-authn. Подробнее с описанием архитектуры модуляuser-authnможно ознакомиться в соответствующем разделе документации.
Взаимодействия модуля
Модуль взаимодействует со следующими компонентами:
- Kube-apiserver:
- создание и обновление ресурса Lease;
- авторизация запросов к веб-интерфейсу документации.
С модулем взаимодействуют следующие внешние компоненты:
-
Deckhouse — отправка запросов на обновление документации при изменении состава модулей.
-
Prometheus — сбор метрик модуля.
-
Controller nginx — пересылка внешних запросов пользователя к веб-интерфейсу модуля.
Модуль deckhouse-tools
Модуль deckhouse-tools — это реализация веб-интерфейса со ссылками на скачивание утилиты Deckhouse CLI под различные операционные системы.
Архитектура модуля
Для упрощения схемы приняты следующие допущения:
- На схеме показано, что контейнеры разных подов взаимодействуют друг с другом напрямую. Фактически они взаимодействуют через соответствующие сервисы Kubernetes (внутренние балансировщики). Названия сервисов не указываются, если они очевидны из контекста. В остальных случаях название сервиса указано над стрелкой.
- Поды могут быть запущены в нескольких репликах, однако на схеме все поды изображены в одной реплике.
Архитектура модуля deckhouse-tools на уровне 2 модели C4 и его взаимодействие с другими компонентами DKP изображены на следующей диаграмме:

Компоненты модуля
Модуль состоит из следующих компонентов:
-
Deckhouse-tools — состоит из одного контейнера web и реализует веб-интерфейс со ссылками на скачивание утилиты Deckhouse CLI.
-
Dex-authenticator — обеспечивает проверку и аутентификацию пользователя с использованием единой системы аутентификации платформы, реализуемой модулем
user-authn. Подробнее с описанием архитектуры модуляuser-authnможно ознакомиться в соответствующем разделе документации.
Взаимодействия модуля
С модулем взаимодействуют следующие внешние компоненты:
- Controller nginx — пересылка внешних запросов пользователя к веб-интерфейсу модуля.