Подготовка конфигурации
Для установки платформы нужно подготовить 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.ru:
-
Для установки Community Edition авторизация не требуется.
-
Для установки Enterprise Edition и выше необходимо выполнить авторизацию на машине установки с использованием лицензионного ключа:
docker login -u license-token registry.deckhouse.ru
Запуск установщика платформы
Выбор образа установщика
Установщик запускается в виде контейнера. Образ контейнера выбирается в зависимости от редакции и канала обновлений:
registry.deckhouse.ru/deckhouse/<REVISION>/install:<RELEASE_CHANNEL>
Где:
-
<REVISION>— редакция платформы (напримерee— для Enterprise Edition,ce— для Community Edition и т. д.) -
<RELEASE_CHANNEL>— канал обновлений платформы в kebab-case:alpha— для канала обновлений Alpha;beta— для канала обновлений Beta;early-access— для канала обновлений EarlyAccess;stable— для канала обновлений Stable;rock-solid— для канала обновлений RockSolid.
Установка с созданием кластера
-
Запустите контейнер, в который будут подмонтированы файл конфигурации и ключи для доступа к узлам.
Например, для установки редакции
CEиз канала обновленийStableследует использовать образregistry.deckhouse.ru/deckhouse/ce/install:stable. В этом случае контейнер можно запустить следующей командой:docker run -it --pull=always \ -v "$PWD/config.yaml:/config.yaml" \ -v "$HOME/.ssh/:/tmp/.ssh/" registry.deckhouse.ru/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.ru/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-узлом и хранилищем образов.
После успешной установки можно выйти из запущенного контейнера и перейти к настройке доступа.
Проверки, выполняемые перед началом установки
Список проверок, выполняемых инсталлятором перед началом установки платформы:
- Общие проверки:
- Значения параметров
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-узла удовлетворяет минимальным требованиям.