Установка в облаке Yandex
Шаг 0. Подготовка к инсталляции платформы Боцман
Перед началом инсталляции платформы "Боцман" убедитесь, что выполнены все шаги по подготовке АРМ
Шаг 1. Подготовка Образов ОС
Для работы с боцманом вам понадобятся образы ОС. Возможные варианты:
Использование готовых образов
Самостоятельная подготовка образов
Подробнее в статье создание golden image.
Шаг 2. Подготовка файла конфигурации (bootsman.config.yaml)
На АРМ создайте конфиг файл bootsman.config.yaml в той же директории, где расположен инсталлятор-bootsmanctl
kubernetesVersion: ${ K8S_VERSION }
registry:
username: ${ HARBOR_CREDS_USER }
password: ${ HARBOR_CREDS_PASSWD }
path: ${ HARBOR_CREDS_URL }
insecure: ${ HARBOR_CREDS_INSECURE }
sshAuthorizedKeys:
- ssh-ed25519 AAAAC3NzaC1lZKKtLOCNv2g bootsman@stsoft.ru
wait:
AddonHelmTimeout: 10m
clusterCtlTimeout: 30m0s
operationTimeout: 40m0s
operationRetryInterval: 15s
objCreateTimeout: 4m0s
objCreateInterval: 5s
infrastructure:
yandex:
auth:
keyFileLocation: ${ KEY_FILE_LOCATION }
folderId: ${ YANDEX_FOLDER_ID }
zone: ${ YANDEX_ZONE }
network:
name: ${ YANDEX_NETWORK_NAME }
useExisting: ${ YANDEX_NETWORK_USE_EXISTING }
subNetwork:
name: ${ YANDEX_SUBNETWORK_NAME }
useExisting: ${ YANDEX_SUBNETWORK_USE_EXISTING }
cidr:
- ${ YANDEX_SUBNETWORK_CIDR }
privacy: ${ YANDEX_PRIVACY }
clusterNetwork:
podCidrBlocks: ["172.20.0.0/16"]
servicesCidrBlocks: ["172.21.0.0/16"]
controlPlane:
endpoint:
host:
port: 6443
replicas: 3
label: master
kubeletExtraArgs:
kubeReserved: ""
systemReserved: ""
evictionHard: ""
evictionMinimumReclaim: ""
evictionMaxPodGracePeriod: ""
maxPods: ""
seccompDefault: ""
yandexMachine:
platformId: ${ YANDEX_TEMPLATEOPTIONS_PLATFORM_ID }
cores: ${ YANDEX_TEMPLATEOPTIONS_CORES }
memory: ${ YANDEX_TEMPLATEOPTIONS_MEMORY }
diskType: ${ YANDEX_TEMPLATEOPTIONS_DISK_TYPE }
diskSize: ${ YANDEX_TEMPLATEOPTIONS_DISK_SIZE }
imageId: ${ YANDEX_TEMPLATEOPTIONS_IMAGE_ID }
workerPool:
replicas: 3
label: worker
kubeletExtraArgs:
kubeReserved: ""
systemReserved: ""
evictionHard: ""
evictionMinimumReclaim: ""
evictionMaxPodGracePeriod: ""
maxPods: ""
seccompDefault: ""
yandexMachine:
platformId: ${ YANDEX_TEMPLATEOPTIONS_PLATFORM_ID }
cores: ${ YANDEX_TEMPLATEOPTIONS_CORES }
memory: ${ YANDEX_TEMPLATEOPTIONS_MEMORY }
diskType: ${ YANDEX_TEMPLATEOPTIONS_DISK_TYPE }
diskSize: ${ YANDEX_TEMPLATEOPTIONS_DISK_SIZE }
imageId: ${ YANDEX_TEMPLATEOPTIONS_IMAGE_ID }
web:
bootstrapPassword: ${ ADDONS_RANCHER_BOOTSTRAPPASSWORD }
hostname: ${ ADDONS_RANCHER_WEBHOSTNAME }
currentMachineIp: ${ CURRENT_MACHINE_IP_2 }
Описание параметров
| Имя параметра | Описание | Комментарий |
|---|---|---|
| K8S_VERSION | Версия Kubernetes для управляющего кластера | Поддерживаемые версии v1.27.6, v1.28.4, v1.29.3 |
| HARBOR_CREDS_USER | Имя пользователя в репозитории образов | В случае авторизации по лицензии весь блок registry нужно убрать |
| HARBOR_CREDS_PASSWD | Пароль для пользователя в репозитории образов | В случае авторизации по лицензии весь блок registry нужно убрать |
| HARBOR_CREDS_URL | URL вашего репозитория образов | В случае авторизации по лицензии весь блок registry нужно убрать |
| HARBOR_CREDS_INSECURE | Это служебный параметр, всегда будет false | В случае авторизации по лицензии весь блок registry нужно убрать |
| YANDEX_FOLDER_ID | ID каталога, в котором будет развёрнут кластер | Как узнать ID каталога |
| YANDEX_ZONE | Зоны доступности Yandex. | Какие зоны бывают? |
| YANDEX_NETWORK_NAME | Имя сети в каталоге | |
| YANDEX_NETWORK_USE_EXISTING | true, если хотите использовать существующую сеть | |
| YANDEX_SUBNETWORK_NAME | Имя подсети в каталоге | |
| YANDEX_SUBNETWORK_USE_EXISTING | true, если хотите использовать существующую подсеть | |
| YANDEX_SUBNETWORK_CIDR | Адресное пространство для вашего кластера | Не используется в случае YANDEX_SUBNETWORK_USE_EXISTING |
| YANDEX_TEMPLATEOPTIONS_PLATFORM_ID | Выбор типа физического процессора | Какие виды процессоров бывают? |
| YANDEX_TEMPLATEOPTIONS_MEMORY | Какое количество памяти следует заказать узлам | |
| YANDEX_TEMPLATEOPTIONS_CORES | Какое количество ядер следует заказать узлам | |
| YANDEX_TEMPLATEOPTIONS_DISK_TYPE | Тип дискового хранилища. При выборе хранилища учитывайте, что для работы ETCD нужно 3000+ iops | Какие виды хранилищ бывают? |
| YANDEX_TEMPLATEOPTIONS_DISK_SIZE | Размер дискового хранилища | |
| YANDEX_TEMPLATEOPTIONS_IMAGE_ID | ID образа, подготовленного нами | Как узнать ID моего образа |
| YANDEX_PRIVACY | Выбор режима взаимодействия с кластером | Поддерживаемые значения Public, PrivateMachines, Private. Подробнее |
| KEY_FILE_LOCATION | Имя файла с ключом авторизации в облако яндекс. Расположить нужно в директории .bootsmanctl | Создание авторизованного ключа |
| ADDONS_RANCHER_BOOTSTRAPPASSWORD | Первоначальный пароль от web портала | |
| ADDONS_RANCHER_WEBHOSTNAME | URL, по которому будет доступен web портал платформы | |
| CURRENT_MACHINE_IP_2 | Дополнительный адрес АРМ администратора. Опционально | Для доступа в Kind кластеру с сторонней машины |
Пример заполненного файла конфигурации:
kubernetesVersion: "v1.27.6"
registry:
username: demo
password: demo
path: redos-quay.stsoft.lan/bootsman-v210
insecure: true
sshAuthorizedKeys:
- "ssh-rsa AAAAB3Nzap915rUK1B7cHhJ example"
wait:
clusterCtlTimeout: 50m0s
operationTimeout: 40m0s
operationRetryInterval: 15s
objCreateTimeout: 4m0s
objCreateInterval: 5s
infrastructure:
yandex:
auth:
keyFileLocation: "key.json.bootsmanctl"
folderId: b1gvs031ueof1otylrqr
zone: ru-central1-a
network:
name: default-1
useExisting: false
subNetwork:
name: default-1
useExisting: false
cidr:
- 10.200.0.0/24
privacy: Public
clusterNetwork:
podCidrBlocks: ["172.20.0.0/16"]
servicesCidrBlocks: ["172.21.0.0/16"]
controlPlane:
endpoint:
host: ""
port: 6443
replicas: 3
label: master
kubeletExtraArgs:
kubeReserved: ""
systemReserved: ""
evictionHard: ""
evictionMinimumReclaim: ""
evictionMaxPodGracePeriod: ""
maxPods: ""
seccompDefault: ""
yandexMachine:
platformId: standard-v2
cores: 4
memory: 8
diskType: network-ssd
diskSize: 65
imageId: fd8gq17vqe1ph4tiyrbc
workerPool:
replicas: 3
label: worker
kubeletExtraArgs:
kubeReserved: ""
systemReserved: ""
evictionHard: ""
evictionMinimumReclaim: ""
evictionMaxPodGracePeriod: ""
maxPods: ""
seccompDefault: ""
yandexMachine:
platformId: standard-v2
cores: 4
memory: 12
diskType: network-ssd
diskSize: 65
imageId: fd8gq17vqe1ph4tiyrbc
web:
bootstrapPassword: "somePassword123$"
hostname: rancher.redos-v21-ag.dev.stsoft.lan
currentMachineIp: 10.0.149.111
kubernetesVersion: "v1.27.6"
sshAuthorizedKeys:
- "ssh-rsa AAAAB3Nzap915rUK1B7cHhJ example"
wait:
clusterCtlTimeout: 50m0s
operationTimeout: 40m0s
operationRetryInterval: 15s
objCreateTimeout: 4m0s
objCreateInterval: 5s
infrastructure:
yandex:
auth:
keyFileLocation: "key.json.bootsmanctl"
folderId: b1gvs031ueof1otylrqr
zone: ru-central1-a
network:
name: default-1
useExisting: false
subNetwork:
name: default-1
useExisting: false
cidr:
- 10.200.0.0/24
privacy: Public
clusterNetwork:
podCidrBlocks: ["172.20.0.0/16"]
servicesCidrBlocks: ["172.21.0.0/16"]
controlPlane:
endpoint:
host: ""
port: 6443
replicas: 3
label: master
kubeletExtraArgs:
kubeReserved: ""
systemReserved: ""
evictionHard: ""
evictionMinimumReclaim: ""
evictionMaxPodGracePeriod: ""
maxPods: ""
seccompDefault: ""
yandexMachine:
platformId: standard-v2
cores: 4
memory: 8
diskType: network-ssd
diskSize: 65
imageId: fd8gq17vqe1ph4tiyrbc
workerPool:
replicas: 3
label: worker
kubeletExtraArgs:
kubeReserved: ""
systemReserved: ""
evictionHard: ""
evictionMinimumReclaim: ""
evictionMaxPodGracePeriod: ""
maxPods: ""
seccompDefault: ""
yandexMachine:
platformId: standard-v2
cores: 4
memory: 12
diskType: network-ssd
diskSize: 65
imageId: fd8gq17vqe1ph4tiyrbc
web:
bootstrapPassword: "somePassword123$"
hostname: rancher.redos-v21-ag.dev.stsoft.lan
currentMachineIp: 10.0.149.111
Шаг 3. Добавление лицензии
Лицензию можно добавить в окружение
export LICENSE=ZzSGquD8GWb2zthw7XJR
Или добавить в файл
mkdir -p .bootsmanctl
cat << EOF >> .bootsmanctl/license.lic
ZzSGquD8GWb2zthw7XJR
EOF
Шаг 4. Запуск установки
Заметка
Установка платформы "Боцман" запускается с заранее подготовленным АРМ
Выполните команду запуска процесса установки:
./bootsmanctl management create ${cluster-name} -i yandex -c bootsman.config.yaml
Где:
- ${cluster-name} - имя кластера;
Вывод инсталляции должен окончиться так:
2023-09-10T17:49:46Z | INFO | finished
Доступ в интерфейс
После окончания установки определите в Yandex Cloud - Network Load Balancer - IP адрес созданного балансировщика с обработчиком https и внесите его в конфиг DNS-сервера. Перейдите в web-панель платформы по адресу, который указывали в конфигурационном файле. (1) Откроется визард настройки с запросом пароля, который указывали в конфиге. (2)
Вы авторизовались под пользователем admin. Рекомендуем сменить пароль с помощью стандартного меню управления пользователями.
- ADDONS_RANCHER_WEBHOSTNAME
- ADDONS_RANCHER_BOOTSTRAPPASSWORD