Перейти к содержанию

Yandex Cloud

Подготовка АРМ администратора

Заметка

Для работы с облаком подготовка АРМ администратора не является обязательной частью.

Для обеспечения работоспособности будет достаточно любого АРМ, который удовлетворяет требованиям:

  • Установлен docker
  • Произведена авторизация в вашем регистри
  • Доступ до yandex cloud

Впоследствии вы сможете управлять вашим кластером с помощью bootsmanctl с любого АРМ, сохранив файлы:

  • config
  • bootsmanctl
  • .bootsmanctl

Подготовка Образов ОС

Для работы с боцманом вам понадобятся образы ОС.

Об этом подробно написано в статье Создание golden image.

Подготовка файла конфигурации (config)

export HARBOR_CREDS_URL=
export HARBOR_CREDS_INSECURE=false
export HARBOR_CREDS_USER=
export HARBOR_CREDS_PASSWD=
export AIRGAP=true
export ADDONS_RANCHER_WEBHOSTNAME=
export CURRENT_MACHINE_IP=
export LICENSE=
export SSH_PUBLIC_KEYS_COMMA_SEPARATED=
export ADDONS_RANCHER_BOOTSTRAPPASSWORD=
export CONTROLPLANE_COUNT=3
export WORKER_COUNT=3
export K8SCPIP=127.0.0.1
export YANDEX_FOLDER_ID=
export YANDEX_ZONE=
export YANDEX_NETWORK_NAME=
export YANDEX_SUBNETWORK_NAME=
export YANDEX_TEMPLATEOPTIONS_PLATFORM_ID=standard-v2
export YANDEX_TEMPLATEOPTIONS_CORES=4
export YANDEX_TEMPLATEOPTIONS_MEMORY=12
export YANDEX_TEMPLATEOPTIONS_DISK_TYPE=network-ssd
export YANDEX_TEMPLATEOPTIONS_DISK_SIZE=65
export YANDEX_TEMPLATEOPTIONS_IMAGE_ID=
export YANDEX_NETWORK_USE_EXISTING=
export YANDEX_SUBNETWORK_USE_EXISTING=
export YANDEX_SUBNETWORK_CIDR=10.200.0.0/24
export YANDEX_AUTHORIZED_KEY_JSON=''
export YANDEX_PRIVACY=

Описание параметров

Имя параметра Описание Комментарий
HARBOR_CREDS_URL URL вашего регистри
HARBOR_CREDS_INSECURE Это служебный параметр, всегда будет false
HARBOR_CREDS_USER Имя пользователя в регистри Имя пользователя не поддерживает спецсимволы, пожалуйста, используйте только латинские буквы и цифры
HARBOR_CREDS_PASSWD Пароль от регистри Пароль не поддерживает спецсимволы, пожалуйста, используйте только латинские буквы и цифры
AIRGAP Режим установки
ADDONS_RANCHER_WEBHOSTNAME URL, по которому будет доступен web портал платформы
CURRENT_MACHINE_IP IP адрес АРМ администратора Для Yandex Cloud можно указать любой
LICENSE Строка из файла license, который вы получили вместе с дистрибутивом
SSH_PUBLIC_KEYS_COMMA_SEPARATED Ключи, распространённые на узлы. Перечисляются через запятую
ADDONS_RANCHER_BOOTSTRAPPASSWORD Первоначальный пароль от web портала
CONTROLPLANE_COUNT Количество мастеров Может принимать значения 3 или 5
WORKER_COUNT Количество воркеров Должно быть >=3
K8SCPIP IP ControlPlane Для Yandex Cloud не используется, можно указать любой
YANDEX_FOLDER_ID ID каталога, в котором будет развёрнут кластер Как узнать ID каталога
YANDEX_ZONE Зоны доступности Yandex. Какие зоны бывают?
YANDEX_NETWORK_USE_EXISTING true, если хотите использовать существующую сеть
YANDEX_NETWORK_NAME Имя сети в каталоге
YANDEX_SUBNETWORK_USE_EXISTING true, если хотите использовать существующую подсеть
YANDEX_SUBNETWORK_NAME Имя подсети в каталоге
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 (1)
YANDEX_AUTHORIZED_KEY_JSON Авторизованный ключ в формате json для Yandex Cloud Создание авторизованного ключа

Пример заполненного файла конфигурации:

export HARBOR_CREDS_URL=redos-quay.stsoft.lan/bootsman-v210
export HARBOR_CREDS_INSECURE=False
export HARBOR_CREDS_USER=demo
export HARBOR_CREDS_PASSWD=demo
export AIRGAP=true
export ADDONS_RANCHER_WEBHOSTNAME=rancher.redos-v21-ag.dev.stsoft.lan
export CURRENT_MACHINE_IP=10.0.149.111
export LICENSE=eyJhbGciOiJFZERTQSIsopkljlyuO098790uokjkLKJHKJGJHYu87hlIkpXVCIsInZlcnNpb24iOjV9eyJjbGllbnRJZCI6MjQsImNsaWVudE5hbWUiOiJTb3Zjb21iYW5rIiwiY29udHJhY3RJZCI6IjAwMDAiLCJleHAiOiIyMDIzLTEyLTEyVDAwOjAwOjAwWiIsImhhcmJvclVzZXIiOiJoYXJib3JVc2VyIiwiaWF0asdasdasdasfaew3easfdasdasdadgtawerq23413414adzbZXvLHLKJHFJFHFHKOyituyryu fhKJJJIfhfjgklkasdyiyoOIYIigkjbjJFHURUHfjb,kOjAwOjAwWiIsInR5cGUiOiJwcmVtaXVtIiwic3ViIjoiQm9vdHNtYW4gdjIifQ.Gwokj0KL9RTjJ8XB5IVxsEqQG_wBByVsQNyjz_GRMsyXCof4xzu2notjfyIW2zpQlLA8dlhbWiWA2lhJ7RQ4Bg
export SSH_PUBLIC_KEYS_COMMA_SEPARATED="ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDYjCYcs/qXpXRZukCZBdGDuc+jDat0gMV6di6U/ejkpqDv6qwl/8JmhOaYFEMo4+7BodHk7Fwmo1+3HsH1ElsPEpMAk6CEe+im7IOzjSvoPbTkvs7XXLCzF9EyxKftrpCCULn/YglEAzQcMqC7xIViZEl0gBU49o73wKaf1M0x0K0bgyZpG6DJDXw24cjbI4U4yaZIvBulwqeTdrCjMvMBqZ6gRmijTh/rhRdW/dWX/cdDHI9BWgz5GXuV/y47G/w6k3uzcF0XlG5o0Rp3KnOHoAevjt+KsiVSQampVM4HB9p7kYBJUk1RkqEkouMAWUV79O/7JYp915rUK1B7cHhJ example"
export ADDONS_RANCHER_BOOTSTRAPPASSWORD="somePassword123$"
export CONTROLPLANE_COUNT=3
export WORKER_COUNT=3
export K8SCPIP=127.0.0.1
export YANDEX_FOLDER_ID=b1gvs031ueof1otylrqr
export YANDEX_ZONE=ru-central1-a
export YANDEX_NETWORK_NAME=default-1
export YANDEX_SUBNETWORK_NAME=default-1
export YANDEX_TEMPLATEOPTIONS_PLATFORM_ID=standard-v2
export YANDEX_TEMPLATEOPTIONS_CORES=4
export YANDEX_TEMPLATEOPTIONS_MEMORY=12
export YANDEX_TEMPLATEOPTIONS_DISK_TYPE=network-ssd
export YANDEX_TEMPLATEOPTIONS_DISK_SIZE=65
export YANDEX_TEMPLATEOPTIONS_IMAGE_ID=fd8gq17vqe1ph4tiyrbc
export YANDEX_NETWORK_USE_EXISTING=false
export YANDEX_SUBNETWORK_USE_EXISTING=false
export YANDEX_SUBNETWORK_CIDR=10.200.0.0/24
export YANDEX_AUTHORIZED_KEY_JSON='{"id": "aaaaaaaaaaaaaaaaaaaa","service_account_id": "bbbbbbbbbbbbbbbbbbbb","created_at": "2124-01-01T01:01:01.940339261Z","key_algorithm": "RSA_2048","public_key": "-----BEGIN PUBLIC KEY-----\n**\n-----END PUBLIC KEY-----\n","private_key": "PLEASE DO NOT REMOVE THIS LINE! Yandex.Cloud SA Key ID \n-----BEGIN PRIVATE KEY-----\n*\n-----END PRIVATE KEY-----\n"}'
export YANDEX_PRIVACY=Public
export HARBOR_CREDS_URL=harbor.bootsman.host/bootsman-nimbus/common-artifacts
export HARBOR_CREDS_INSECURE=False
export HARBOR_CREDS_USER=demo
export HARBOR_CREDS_PASSWD=demo
export AIRGAP=true
export ADDONS_RANCHER_WEBHOSTNAME=rancher.redos-v21-ag.dev.stsoft.lan
export CURRENT_MACHINE_IP=10.0.149.111
export LICENSE=eyJhbGciOiJFZERTQSIsopkljlyuO098790uokjkLKJHKJGJHYu87hlIkpXVCIsInZlcnNpb24iOjV9eyJjbGllbnRJZCI6MjQsImNsaWVudE5hbWUiOiJTb3Zjb21iYW5rIiwiY29udHJhY3RJZCI6I jAwMDAiLCJleHAiOiIyMDIzLTEyLTEyVDAwOjAwOjAwWiIsImhhcmJvclVzZXIiOiJoYXJib3JVc2VyIiwiaWF0asdasdasdasfaew3easfdasdasdadgtawerq23413414adzbZXvLHLKJHFJFHFHKOyituyryu fhKJJJIfhfjgklkasdyiyoOIYIigkjbjJFHURUHfjb,kOjAwOjAwWiIsInR5cGUiOiJwcmVtaXVtIiwic3ViIjoiQm9vdHNtYW4gdjIifQ.  Gwokj0KL9RTjJ8XB5IVxsEqQG_wBByVsQNyjz_GRMsyXCof4xzu2notjfyIW2zpQlLA8dlhbWiWA2lhJ7RQ4Bg
export SSH_PUBLIC_KEYS_COMMA_SEPARATED="ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDYjCYcs/qXpXRZukCZBdGDuc+jDat0gMV6di6U/ejkpqDv6qwl/8JmhOaYFEMo4+7BodHk7Fwmo1+3HsH1ElsPEpMAk6CEe+im7IOzjSvoPbTkvs7XXLCzF9EyxKftrpCCULn/YglEAzQcMqC7xIViZEl0gBU49o73wKaf1M0x0K0bgyZpG6DJDXw24cjbI4U4yaZIvBulwqeTdrCjMvMBqZ6gRmijTh/rhRdW/dWX/cdDHI9BWgz5GXuV/y47G/w6k3uzcF0XlG5o0Rp3KnOHoAevjt+KsiVSQampVM4HB9p7kYBJUk1RkqEkouMAWUV79O/7JYp915rUK1B7cHhJ example"
export ADDONS_RANCHER_BOOTSTRAPPASSWORD="somePassword123$"
export CONTROLPLANE_COUNT=3
export WORKER_COUNT=3
export K8SCPIP=127.0.0.1
export YANDEX_FOLDER_ID=b1gvs031ueof1otylrqr
export YANDEX_ZONE=ru-central1-a
export YANDEX_NETWORK_NAME=default-1
export YANDEX_SUBNETWORK_NAME=default-1
export YANDEX_TEMPLATEOPTIONS_PLATFORM_ID=standard-v2
export YANDEX_TEMPLATEOPTIONS_CORES=4
export YANDEX_TEMPLATEOPTIONS_MEMORY=12
export YANDEX_TEMPLATEOPTIONS_DISK_TYPE=network-ssd
export YANDEX_TEMPLATEOPTIONS_DISK_SIZE=65
export YANDEX_TEMPLATEOPTIONS_IMAGE_ID=fd8gq17vqe1ph4tiyrbc
export YANDEX_NETWORK_USE_EXISTING=false
export YANDEX_SUBNETWORK_USE_EXISTING=false
export YANDEX_SUBNETWORK_CIDR=10.200.0.0/24
export YANDEX_AUTHORIZED_KEY_JSON='{"id": "aaaaaaaaaaaaaaaaaaaa","service_account_id": "bbbbbbbbbbbbbbbbbbbb","created_at": "2124-01-01T01:01:01.940339261Z","key_algorithm": "RSA_2048","public_key": "-----BEGIN PUBLIC KEY-----\n**\n-----END PUBLIC KEY-----\n","private_key": "PLEASE DO NOT REMOVE THIS LINE! Yandex.Cloud SA Key ID \n-----BEGIN PRIVATE KEY-----\n*\n-----END PRIVATE KEY-----\n"}'
export YANDEX_PRIVACY=Public

Выбор режима приватности

Заметка

Балансировщик нагрузки для приложений всегда будет иметь белый адрес.

YANDEX_PRIVACY - параметр, который невозможно поменять после установки. Он определяет, какие настройки сети будут применены для:

  • Машин
  • Балансировщика нагрузки для Kube-api

Режим Public

Самый простой режим: всем сущностям будет выдан белый IP-адрес

Режим PrivateMachines

  • Машины будут спрятаны за NAT
  • Kube-api будет с белым IP

Режим Private

  • Машины за NAT
  • Kube-api использует внутренний балансировщик нагрузки и недоступен снаружи

Установка

Перед запуском установки экспортируйте конфигурацию

source config
Далее запустите установку

./bootsmanctl management create test-cluster -i yandex -k ${Kubernetes_Version}
Вывод инсталляции должен окончиться так:

2023-09-10T17:49:46Z | INFO  | finished

Доступ в интерфейс

После окончания установки определите в Yandex Cloud - Network Load Balancer - IP адрес созданного балансировщика с обработчиком https и внесите его в конфиг DNS-сервера. Перейдите в web-панель платформы по адресу, который указывали в конфигурационном файле. (1) Откроется простенький визард настройки с запросом пароля, который указывали в конфиге. (2)

Вы авторизовались под пользователем admin. Рекомендуем сменить пароль с помощью стандартного меню управления пользователями.

  1. ADDONS_RANCHER_WEBHOSTNAME
  2. ADDONS_RANCHER_BOOTSTRAPPASSWORD