Страница находится в стадии активной разработки и может содержать неполные данные. Ниже представлена обзорная информация о процессе установки Deckhouse. Для более детального ознакомления рекомендуем перейти в раздел Быстрый старт, где доступны пошаговые инструкции.
Инсталлятор Deckhouse доступен в виде образа контейнера и основан на утилите dhctl, в задачи которой входят:
- Создание и настройка объектов в облачной инфраструктуре с помощью Terraform;
- Установка необходимых пакетов ОС на узлах (в том числе установка пакетов Kubernetes);
- Установка Deckhouse;
- Создание, настройка узлов кластера Kubernetes;
- Поддержание состояния кластера в соответствии с описанной конфигурацией.
Варианты установки Deckhouse:
-
В поддерживаемом облаке. Утилита
dhctl
автоматически создает и настраивает все необходимые ресурсы, включая виртуальные машины, развертывает Kubernetes-кластер и устанавливает Deckhouse. Полный список поддерживаемых облачных провайдеров доступен в разделе Кластер Kubernetes. -
На серверах bare-metal или в неподдерживаемых облаках. В этом варианте
dhctl
выполняет настройку сервера или виртуальной машины, развертывает Kubernetes-кластер с одним master-узлом и устанавливает Deckhouse. Для добавления дополнительных узлов в кластер можно воспользоваться готовыми скриптами настройки. -
В существующем Kubernetes-кластере. Если Kubernetes-кластер уже развернут,
dhctl
устанавливает Deckhouse, интегрируя его с текущей инфраструктурой.
Подготовка инфраструктуры
Перед установкой убедитесь в следующем:
-
Для кластеров на bare-metal и в неподдерживаемых облаках: сервер использует операционную систему из списка поддерживаемых ОС или совместимую с ним, а также доступен по SSH через ключ.
-
Для поддерживаемых облаков: имеются необходимые квоты для создания ресурсов и подготовлены параметры доступа к облачной инфраструктуре (зависят от конкретного провайдера).
-
Для всех вариантов установки: настроен доступ к container registry с образами Deckhouse (
registry.deckhouse.io
илиregistry.deckhouse.ru
).
Подготовка конфигурации
Перед началом установки Deckhouse необходимо выполнить подготовку YAML-файла конфигурации установки. Этот файл содержит основные параметры для настройки Deckhouse, включая информацию о кластерных компонентах, сетевых настройках и интеграциях, а также описание ресурсов для создания после установки (настройки узлов и Ingress-контроллера).
Убедитесь, что конфигурационный файл соответствуют требованиям вашей инфраструктуры и включает все необходимые параметры для корректного развертывания.
Файл конфигурации установки
YAML-файл конфигурации установки содержит параметры нескольких ресурсов (манифесты):
-
InitConfiguration — начальные параметры конфигурации Deckhouse, необходимые для корректного запуска Deckhouse после установки.
Основные настройки, задаваемые в этом ресурсе:
- Параметры размещения компонентов;
- Используемый StorageClass (параметры хранилища);
- Параметры доступа к container registry;
- Шаблон DNS-имен;
- Другие важные параметры, без которых Deckhouse не сможет корректно функционировать.
- ClusterConfiguration — общие параметры кластера, такие как версия control plane, сетевые настройки, параметры CRI и т. д.
Этот ресурс требуется использовать только в случае, если Deckhouse устанавливается с предварительным развертыванием кластера Kubernetes. Если Deckhouse устанавливается в уже существующий кластер, этот ресурс не нужен.
- StaticClusterConfiguration — параметры для кластеров Kubernetes, развертываемых на серверах bare-metal или виртуальных машинах в неподдерживаемых облаках.
Этот ресурс требуется использовать только в случае, если Deckhouse устанавливается с предварительным развертыванием кластера Kubernetes. Если Deckhouse устанавливается в уже существующий кластер, этот ресурс не нужен.
-
<CLOUD_PROVIDER>ClusterConfiguration
— набор ресурсов, содержащих параметры конфигурации поддерживаемых облачных провайдеров. Включает такие параметры, как:- Настройки доступа к облачной инфраструктуре (параметры аутентификации);
- Тип и параметры схемы размещения ресурсов;
- Сетевые параметры;
- Настройки создаваемых групп узлов.
Список ресурсов конфигурации поддерживаемых облачных провайдеров:
- AWSClusterConfiguration — Amazon Web Services;
- AzureClusterConfiguration — Microsoft Azure;
- GCPClusterConfiguration — Google Cloud Platform;
- OpenStackClusterConfiguration — OpenStack;
- VsphereClusterConfiguration — VMware vSphere;
- VCDClusterConfiguration — VMware Cloud Director;
- YandexClusterConfiguration — Yandex Cloud;
- ZvirtClusterConfiguration — zVirt.
-
ModuleConfig
— набор ресурсов, содержащих параметры конфигурации встроенных модулей Deckhouse.Если кластер изначально создается с узлами, выделенными для определенных типов нагрузки (например, системные узлы или узлы для мониторинга), рекомендуется в конфигурации модулей, использующих тома постоянного хранилища явно задавать параметр
nodeSelector
.Например, для модуля
prometheus
настройка указывается в параметре nodeSelector. -
IngressNginxController
— развертывание Ingress-контроллера. -
NodeGroup
— создание дополнительных групп узлов. -
InstanceClass
— добавление конфигурационных ресурсов. ClusterAuthorizationRule
,User
— настройка прав и пользователей.
Post-bootstrap-скрипт
После завершения установки Deckhouse инсталлятор предоставляет возможность выполнить пользовательский скрипт на одном из master-узлов. Такой скрипт может использоваться для:
- Выполнения дополнительной настройки кластера;
- Сбора диагностической информации;
- Интеграции с внешними системами и других задач.
Указать путь к post-bootstrap-скрипту можно с помощью параметра --post-bootstrap-script-path
при запуске процесса инсталляции.
Установка Deckhouse
При установке Deckhouse Enterprise Edition из официального container registry registry.deckhouse.ru
, необходимо предварительно пройти авторизацию с использованием лицензионного ключа:
docker login -u license-token registry.deckhouse.ru
Запуск контейнера инсталлятора Deckhouse из публичного container registry выглядит следующим образом:
docker run --pull=always -it [<MOUNT_OPTIONS>] registry.deckhouse.ru/deckhouse/<DECKHOUSE_REVISION>/install:<RELEASE_CHANNEL> bash
Где:
<DECKHOUSE_REVISION>
— редакция Deckhouse, напримерee
— для Enterprise Edition,ce
— для Community Edition и т. д.<MOUNT_OPTIONS>
— параметры монтирования файлов в контейнер инсталлятора, такие как:- SSH-ключи доступа;
- Файл конфигурации;
- Файл ресурсов и т. д.
<RELEASE_CHANNEL>
— канал обновлений в формате kebab-case:alpha
— для канала обновлений Alpha;beta
— для канала обновлений Beta;early-access
— для канала обновлений Early Access;stable
— для канала обновлений Stable;rock-solid
— для канала обновлений Rock Solid.
Пример команды для запуска инсталлятора Deckhouse в редакции CE:
docker run -it --pull=always \
-v "$PWD/config.yaml:/config.yaml" \
-v "$PWD/dhctl-tmp:/tmp/dhctl" \
-v "$HOME/.ssh/:/tmp/.ssh/" registry.deckhouse.ru/deckhouse/ce/install:stable bash
Установка Deckhouse осуществляется в контейнере инсталлятора с помощью утилиты dhctl
:
- Для запуска установки Deckhouse с развертыванием нового кластера (все случаи, кроме установки в существующий кластер) используйте команду
dhctl bootstrap
. - Для установки Deckhouse в уже существующий кластер используйте команду
dhctl bootstrap-phase install-deckhouse
.
Для получения подробной справки по параметрам команды выполните dhctl bootstrap -h
.
Пример запуска установки Deckhouse с развертыванием кластера в облаке:
dhctl bootstrap \
--ssh-user=<SSH_USER> --ssh-agent-private-keys=/tmp/.ssh/id_rsa \
--config=/config.yml
Где:
/config.yml
— файл конфигурации установки;<SSH_USER>
— имя пользователя для подключения по SSH к серверу;--ssh-agent-private-keys
— файл приватного SSH-ключа для подключения по SSH.
Проверки перед началом установки
Список проверок, выполняемых инсталлятором перед началом установки Deckhouse:
- Общие проверки:
- Значения параметров PublicDomainTemplate clusterDomain не совпадают.
- Данные аутентификации для хранилища образов контейнеров, указанные в конфигурации установки, корректны.
- Имя хоста соответствует следующим требованиям:
- Длина не более 63 символов;
- Состоит только из строчных букв;
- Не содержит спецсимволов (допускаются символы
-
и.
, при этом они не могут быть в начале или в конце имени).
- На сервере (ВМ) отсутствует установленный CRI (containerd).
- Имя хоста должно быть уникальным в пределах кластера.
- Проверки для установки статического и гибридного кластера:
- Указан только один параметр
--ssh-host
. Для статической конфигурации кластера можно задать только один IP-адрес для настройки первого master-узла. - Должна быть возможность подключения по SSH с использованием указанных данных аутентификации.
- Должна быть возможность установки SSH-туннеля до сервера (или виртуальной машины) master-узла.
- Сервер (ВМ) удовлетворяет минимальным требованиям для настройки master-узла.
- На сервере (ВМ) для master-узла установлен Python и необходимые библиотеки.
- Хранилище образов контейнеров доступно через прокси (если настройки прокси указаны в конфигурации установки).
- На сервере (ВМ) для master-узла и хосте инсталлятора свободны порты, необходимые для процесса установки.
- DNS должен разрешать
localhost
в IP-адрес 127.0.0.1. - На сервере (ВМ) пользователю доступна команда
sudo
.
- Указан только один параметр
- Проверки для установки облачного кластера:
- Конфигурация виртуальной машины master-узла удовлетворяет минимальным требованиям.
Откат установки
Если установка была прервана или возникли проблемы во время установки в поддерживаемом облаке, то могут остаться ресурсы, созданные в процессе установки. Для их удаления используйте команду dhctl bootstrap-phase abort
, выполнив ее в контейнере инсталлятора.
Файл конфигурации, передаваемый через параметр --config
при запуске инсталлятора, должен быть тем же, с которым проводилась первоначальная установка.