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

Yandex Cloud

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

Заметка

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

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

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

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

  • config
  • bootsmanctl
  • .bootsmanctl

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

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

Использование готовых образов

Мы рекомендуем именно этот вариант, т.к. он наиболее прост в использовании. Для того, чтобы воспользоваться образами, вам понадобится просто скопировать их к себе в облако.

Для этого выполним команду:

yc compute image create --name ${IMAGE_NAME} --source-image-id ${SOURCE_IMAGE_ID} --cloud-id b1ghrp1t4e9stmg7uupu
Где

  • ${IMAGE_NAME} имя образа, с которым он сохранится у вас в облаке
  • ${SOURCE_IMAGE_ID} id образа из таблицы ниже
OS k8s version id
Astra linux 1.27.4 fd8fqk0um9gqvrdpcs9r
Astra linux 1.27.6 fd88ls5nmqoact7pnsvb
Astra linux 1.28.4 fd8kqiqj4hkdtvih44go
RedOS 1.27.4 fd8fbj7i281qc0juq1in
RedOS 1.27.6 fd8lkmn5hvhsm93gf88h
RedOS 1.28.4 fd8ena1840dk1gskt2g1
Ubuntu 1.27.4 fd8f63825nupebsvh8bo
Ubuntu 1.27.6 fd85eh76v781aiga9nnr
Ubuntu 1.28.4 fd8enf7fe5mre19nq1bu

Самостоятельная подготовка образов

В случае, если ваша политика ИБ не допускает применение готовых артефактов в виде предподготовленной ОС, существует вариант собрать всё необходимое самостоятельно. Об этом подробно написано в статье Создание 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