Документация находится в разработке, может содержать неполную информацию.
Подготовка конфигурации
Для установки платформы нужно подготовить YAML-файл конфигурации установки.
Файл конфигурации установки
YAML-файл конфигурации установки содержит параметры нескольких ресурсов (манифесты):
-
ClusterConfiguration — общие параметры кластера, такие как версия управляющего слоя (control plane), сетевые параметры, параметры CRI и т.д.
Использовать ресурс ClusterConfiguration в конфигурации необходимо только если при установке платформы нужно предварительно развернуть кластер Kubernetes. То есть
ClusterConfiguration
не нужен, если платформа устанавливается в существующем кластере Kubernetes. -
StaticClusterConfiguration — параметры кластера Kubernetes, разворачиваемого на серверах bare metal.
Как и в случае с ресурсом ClusterConfiguration, ресурс StaticClusterConfiguration не нужен, если платформа устанавливается в существующем кластере Kubernetes.
-
ModuleConfig — набор ресурсов, содержащих параметры конфигурации встроенных модулей платформы.
Например, при планировании параметров кластера были выбраны следующие значения:
- Подсети подов и сервисов —
10.88.0.0/16
и10.99.0.0./16
; - Узлы связаны между собой через подсеть
192.168.1.0/24
; - Публичный wildcard-домен кластера
my-dvp-cluster.example.com
; - Канал обновлений
early-access
.
Авторизация в container registry
В зависимости от выбранной редакции может потребоваться авторизация в container registry registry.deckhouse.io
:
-
Для установки Community Edition авторизация не требуется.
-
Для установки Enterprise Edition и выше необходимо выполнить авторизацию на машине установки с использованием лицензионного ключа:
docker login -u license-token registry.deckhouse.io
Запуск установщика платформы
Выбор образа установщика
Установщик запускается в виде Docker-контейнера. Образ контейнера выбирается в зависимости от редакции и канала обновлений:
registry.deckhouse.io/deckhouse/<REVISION>/install:<RELEASE_CHANNEL>
Где:
-
<REVISION>
— редакция платформы (напримерee
— для Enterprise Edition,ce
— для Community Edition и т. д.) -
<RELEASE_CHANNEL>
— канал обновлений платформы в kebab-case. Должен совпадать с указанным вconfig.yaml
:alpha
— для канала обновлений Alpha;beta
— для канала обновлений Beta;early-access
— для канала обновлений EarlyAccess;stable
— для канала обновлений Stable;rock-solid
— для канала обновлений RockSolid.
Установка с созданием кластера
-
Запустите контейнер, в который будут подмонтированы файл конфигурации и ключи для доступа к узлам.
Например, для установки редакции
CE
из канала обновленийStable
следует использовать образregistry.deckhouse.io/deckhouse/ce/install:stable
. В этом случае контейнер можно запустить следующей командой:docker run -it --pull=always \ -v "$PWD/config.yaml:/config.yaml" \ -v "$HOME/.ssh/:/tmp/.ssh/" registry.deckhouse.io/deckhouse/ce/install:stable bash
-
Запустите внутри контейнера установщик платформы с помощью команды
dhctl bootstrap
.Например, при подготовке узлов был создан пользователь
dvpinstall
, а master-узел имеет адрес54.43.32.21
. В этом случае установку платформы можно запустить следующей командой:dhctl bootstrap \ --ssh-host=54.43.32.21 \ --ssh-user=dvpinstall --ssh-agent-private-keys=/tmp/.ssh/id_rsa \ --config=/config.yaml --ask-become-pass
Если для запуска sudo
на сервере необходим пароль, то укажите его в ответ на запрос [sudo] Password:
.
Параметр --ask-become-pass
можно не указывать, если при подготовке узла был настроен запуск sudo
без пароля.
Монтирование директории $HOME/.ssh
позволяет установщику получить доступ к конфигурации SSH, поэтому в параметре --ssh-host
можно указывать имена секций Host из конфигурационного файла SSH.
Установка в существующем кластере
-
Запустите контейнер, в который будут подмонтированы файл конфигурации, ключи для доступа к узлам и файл для подключения к Kubernetes API.
Например, для установки редакции
CE
из канала обновленийStable
будет использоваться образregistry.deckhouse.io/deckhouse/ce/install:stable
, а для подключения к Kubernetes API будет использоваться файл конфигурации в$HOME/.kube/config
.В этом случае контейнер можно запустить следующей командой:
docker run -it --pull=always \ -v "$PWD/config.yaml:/config.yaml" \ -v "$HOME/.kube/config:/kubeconfig" registry.deckhouse.io/deckhouse/ce/install:stable bash
-
Запустите внутри контейнера установщик платформы с помощью команды
dhctl bootstrap-phase install-deckhouse
.Если на машине установки настроен доступ к существующему кластеру, то запустить установку платформы можно командой:
dhctl bootstrap-phase install-deckhouse \ --config=/config.yaml \ --kubeconfig=/kubeconfig
Завершение установки
Время установки может варьироваться от 5 до 30 минут в зависимости от качества соединения между master-узлом и хранилищем образов.
Пример вывода при успешном окончании установки:
...
┌ Create deckhouse release for version v1.65.6
│ 🎉 Succeeded!
└ Create deckhouse release for version v1.65.6 (0.23 seconds)
┌ ⛵ ~ Bootstrap: Clear cache
│ ❗ ~ Next run of "dhctl bootstrap" will create a new Kubernetes cluster.
└ ⛵ ~ Bootstrap: Clear cache (0.00 seconds)
🎉 Deckhouse cluster was created successfully!
После успешной установки можно выйти из запущенного контейнера и проверить статус master-узла командой:
sudo -i d8 k get no
Пример вывода команды:
NAME STATUS ROLES AGE VERSION
master-0 Ready control-plane,master 5m v1.29.10
Проверки перед началом установки
Список проверок, выполняемых инсталлятором перед началом установки платформы:
- Общие проверки:
- Значения параметров 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-узла удовлетворяет минимальным требованиям.