- tocdepth
2
Создать кластер
В инструкции описано, как создать кластер Kubernetes в личном кабинете, с помощью API-запроса или Terraform.
В проекте можно создать один или несколько кластеров в пределах запрошенных вычислительных ресурсов. Если ресурсов не хватает, отправьте заявку на увеличение квоты.
Войдите в личный кабинет.
Перейдите в раздел Managed Kubernetes и нажмите Создать кластер.
На шаге «Общие параметры»:
Укажите название кластера.
Должно быть уникальным.
Может содержать буквы, цифры, подчеркивание и дефисы.
Допустимое количество символов — от 3 до 60.
Выберите зону доступности, в которой будут размещены мастер-узлы.
Мастер-узлы и группы узлов можно размещать в разных зонах доступности, при условии, что они будут находиться в одной VPC.
Выберите количество мастер-узлов в кластере.
Чтобы гарантировать доступность сервисов в случае сбоя одного или нескольких мастер-узлов, выберите более одного мастер-узла.
В списке Конфигурация мастер-узла выберите конфигурацию виртуальных машин для мастер-узлов.
Для получения актуальных обновлений выберите релизный канал.
Выберите версию Kubernetes.
Доступные версии — 1.26, 1.27, 1.28, 1.29.
Для интеграции с другими сервисами облака Evolution в поле Сервисный аккаунт выберите сервисный аккаунт.
На сервисный аккаунт должна быть назначена роль на проект Пользователь сервисов, а также роли:
s3e.editor и s3e.viewer — для монтирования бакетов Object Storage в качестве постоянного тома;
ar.registry.viewer — для работы с образами, которые хранятся в Artifact Registry.
Узнайте, как создать и настроить сервисный аккаунт.
По умолчанию сервисный аккаунт будет создан автоматически. Для автоматически созданного сервисного аккаунта все необходимые роли для интеграции с сервисами назначены сразу.
Нажмите Продолжить.
На шаге «Сеть» укажите сетевые настройки:
Адрес подсети сервисов — подсеть, из которой будут назначаться IP-адреса для сервисов, в формате <адрес сети>/<префикс маски>.
Подсеть должна принадлежать диапазонам 10.0.0.0/12–28, 172.16.0.0/12–28 или 192.168.0.0/16–28 и не может пересекаться с другими подсетями созданной инфраструктуры.
Адрес подсети подов — подсеть, из которой будут назначаться IP-адреса для подов, в формате <адрес сети>/<префикс маски>.
Подсеть должна принадлежать диапазонам 10.0.0.0/8–24, 172.16.0.0/12–24 или 192.168.0.0/16–24 и не может пересекаться с другими подсетями созданной инфраструктуры.
Адрес подсети мастер-узлов — подсеть, из которой будут назначаться IP-адреса для мастер-узлов.
Выбрать из списка — выберите подсеть из созданных в сервисе «Подсети».
Чтобы создать и настроить новую подсеть, нажмите Создать новую подсеть. Подробнее о настройках подсети читайте в инструкции Создать подсеть в облаке Evolution.
Ввести вручную — введите подсеть в формате <адрес сети>/<префикс маски>.
Подсеть должна принадлежать диапазонам 10.0.0.0/20–28, 172.16.0.0/20–28 или 192.168.0.0/20–28 и не может пересекаться с другими подсетями созданной инфраструктуры.
Будет создана новая подсеть с параметрами по умолчанию. Чтобы настроить подсеть, в личном кабинете перейдите в сервис «Подсети».
Чтобы kube-apiserver был доступен по внешнему IP-адресу, активируйте опцию Публичный IP-адрес. Адрес назначается автоматически из пула свободных IP-адресов.
Настройки CNI — укажите Cilium или Calico. Будьте внимательны с выбором сетевого плагина — его удаление может нарушить работу кластера.
Нажмите Продолжить.
На шаге «Группы узлов» нажмите Добавить группу узлов.
Вы можете пропустить этот шаг и создать группу узлов позже.
Создать группу узлов
Заполните поля:
Название — введите название группы узлов.
Должно быть уникальным.
Может содержать буквы, цифры, подчеркивание и дефисы.
Допустимое количество символов — от 4 до 60.
Зона доступности — выберите зону доступности, в которой будут размещены рабочие узлы.
Мастер-узлы и группы узлов можно размещать в разных зонах доступности, при условии, что они будут находиться в одной VPC.
Графический процессор (GPU) — активируйте опцию, если планируете развертывать приложения, которые выполняют большой объем вычислений. Выберите модель GPU и необходимое количество графических процессоров.
По умолчанию в Managed Kubernetes установлена нулевая квота на создание узлов с GPU. Чтобы запросить увеличение квоты, обратитесь в техническую поддержку.
Подробнее о группах узлов с графическим процессором GPU.
Гарантированная доля vCPU — выберите 10%, 30% или 100%-ую гарантированную долю.
Гарантированная доля 10% предназначена для простых приложений и тестирования, 30% — для стандартной рабочей нагрузки, 100% — для высоконагруженных сервисов. Подробнее см. Конфигурация рабочих узлов.
vCPU — укажите количество виртуальных ядер для каждого узла в группе.
RAM, ГБ — укажите объем оперативной памяти в ГБ для каждого узла в группе.
Объем хранилища, ГБ — укажите размер хранилища для группы узлов в ГБ. Минимальный размер — 10 ГБ, максимальный — 64 ГБ.
Адрес подсети узлов — укажите адрес подсети. IP-адреса для узлов группы будут назначаться из этого диапазона.
Выбрать из списка — выберите подсеть из созданных в сервисе «Подсети».
Чтобы создать и настроить новую подсеть, нажмите Создать новую подсеть. Подробнее о настройках подсети читайте в инструкции Создать подсеть в облаке Evolution.
Ввести вручную — введите подсеть в формате <адрес сети>/<префикс маски>.
Подсеть должна принадлежать диапазонам 10.0.0.0/20–28, 172.16.0.0/20–28 или 192.168.0.0/20–28 и не может пересекаться с другими подсетями созданной инфраструктуры.
Будет создана новая подсеть с параметрами по умолчанию. Чтобы настроить подсеть, в личном кабинете перейдите в сервис «Подсети».
Размер подсети узлов должен быть в два раза меньше размера подсети сервисов.
Количество узлов — введите число узлов, которое необходимо создать.
Чтобы обеспечить надежную работу кластера, укажите не менее двух узлов.
Количество узлов в группе ограничивается заказанными вычислительными ресурсами. Если ресурсов не хватает, оставьте заявку в поддержку для увеличения квоты.
Максимальное количество узлов в группе, которое вы можете создать, также зависит от размера подсети узлов и рассчитывается по формуле:
\[N = 2^{32 - <префикс\ маски>} - 7\]Автомасштабирование — включите опцию, если необходимо автоматически изменять размер группы узлов в зависимости от нагрузки.
Укажите минимальное и максимальное количество узлов, в пределах которых будет изменяться размер группы узлов.
Об особенностях и ограничениях автомасштабирования читайте в разделе Автоматическое масштабирование группы узлов.
Расширение размера группы, макс., % — укажите процент рабочих узлов, на который можно временно превысить размер группы во время обновления.
Уменьшение размера группы, макс., % — укажите процент рабочих узлов, который может быть временно недоступен в группе узлов во время обновления.
(Опционально) Авторизация пользователя — укажите имя пользователя и выберите публичную часть SSH-ключа из сервиса «SSH-ключи».
Узнайте, как создать SSH-ключ и загрузить его в сервис «SSH-ключи» и подключиться к рабочему узлу по SSH.
(Опционально) Группа безопасности — выберите группу безопасности или создайте новую, нажав Создать новую группу безопасности.
На шаге «Интеграция»:
Активируйте опцию Логирование, чтобы отправлять логи в сервис логирования.
Для записи логов выберите лог-группу или создайте новую.
Активируйте опцию Мониторинг, чтобы собирать метрики и отправлять их в сервис мониторинга.
Для работы с метриками в кластере будут установлены Node Exporter и Kube State Metrics. Подробнее см. Мониторинг кластера.
Активируйте опцию Блочное хранилище, чтобы настраивать подключение дисков в качестве постоянных томов.
Нажмите Создать.
Пройдите аутентификацию в API.
Выполните HTTP-запрос:
POST https://mk8s.api.cloud.ru/v2/clusters
В теле запроса передайте следующие параметры:
{ "projectId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx", "displayName": "xxxxxx-xxxx-xxx", "controlPlaneConfiguration": { "count": 1, "type": "MASTER_TYPE_SMALL", "version": "v1.28.13" }, "networkConfiguration": { "servicesSubnetCidr": "xxx.xxx.xxx.xxx/xx", "podsSubnetCidr": "xxx.xxx.xxx.xxx/xx", "nodesSubnetCidr": "xxx.xxx.xxx.xxx/xx", "kubeApiInternet": true, "networkPlugin": { "calico": { "enabled": true } } }, "identityConfiguration": { "clusterSaId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx" } }
Где:
projectId
— идентификатор проекта.
displayName
— название кластера.
Должно быть уникальным.
Может содержать буквы, цифры, подчеркивание и дефисы.
Допустимое количество символов — от 3 до 60.
controlPlaneConfiguration
— конфигурация плоскости управления кластера.
controlPlaneConfiguration.count
— количество мастер-узлов.Возможные значения: 1, 3, 5.
Для доступности сервисов в случае сбоя одного или нескольких мастер-узлов укажите более одного.
controlPlaneConfiguration.type
— конфигурация виртуальных машин для каждого мастер-узла.Возможные значения:
MASTER_TYPE_SMALL
— 2 CPU и 4 ГБ оперативной памяти.
MASTER_TYPE_MEDIUM
— 4 CPU и 8 ГБ оперативной памяти.
MASTER_TYPE_LARGE
— 8 CPU и 16 ГБ оперативной памяти.
MASTER_TYPE_EXTRALARGE
— 16 CPU и 32 ГБ оперативной памяти.
controlPlaneConfiguration.version
— версия Kubernetes.Возможные значения: v1.26.7, v1.27.14, v1.28.14, v1.29.10.
networkConfiguration
— сетевая конфигурация кластера и плоскости управления.
networkConfiguration.servicesSubnetCidr
— подсеть в формате <адрес сети>/<префикс маски>. IP-адреса для сервисов кластера будут назначаться из этой подсети.Подсеть должна принадлежать диапазонам 10.0.0.0/12–28, 172.16.0.0/12–28 или 192.168.0.0/16–28 и не может пересекаться с другими подсетями созданной инфраструктуры.
networkConfiguration.podsSubnetCidr
— подсеть в формате <адрес сети>/<префикс маски>. IP-адреса для подов будут назначаться из этой подсети.Подсеть должна принадлежать диапазонам 10.0.0.0/8–24, 172.16.0.0/12–24 или 192.168.0.0/16–24 и не может пересекаться с другими подсетями созданной инфраструктуры.
networkConfiguration.nodesSubnetCidr
— подсеть в формате <адрес сети>/<префикс маски>. IP-адреса для мастер-узлов будут назначаться из этой подсети.Подсеть должна принадлежать диапазонам 10.0.0.0/20–28, 172.16.0.0/20–28 или 192.168.0.0/20–28 и не может пересекаться с другими подсетями созданной инфраструктуры.
networkConfiguration.kubeApiInternet
— параметр доступности kube-apiserver по внешнему IP-адресу. Если значениеtrue
, к API-серверу можно будет обратиться из сети интернет по публичному IP. Адрес назначается автоматически.
networkConfiguration.networkPlugin
— плагин CNI для обеспечения сетевой связности и сетевых политик в кластере.Можно не указывать. По умолчанию будет установлен Cilium.
identityConfiguration.clusterSaId
— идентификатор сервисного аккаунта. Необходим для интеграции с сервисами облака Evolution.Идентификатор можно скопировать в личном кабинете из URL на странице сервисного аккаунта.
На сервисный аккаунт должна быть назначена роль на проект Пользователь сервисов, а также роли:
s3e.editor и s3e.viewer — для монтирования бакетов Object Storage в качестве постоянного тома;
ar.registry.viewer — для работы с образами, которые хранятся в Artifact Registry.
Узнайте, как создать и настроить сервисный аккаунт.
Подробное описание параметров читайте в справочнике API.
В разделе рассмотрен пример ресурса в минимально необходимой конфигурации на создание кластера. Больше примеров resource и datasource, а также подробное описание параметров — в примерах K8s Examples.
Установите и настройте Terraform, если еще не устанавливали.
Создайте конфигурационный файл
cloudru-cluster.tf
с параметрами:resource "cloud_k8s_cluster" "<cluster_name>" { name = "<cluster_name>" project_id = "<project_id>" control_plane = { count = <number_of_master_nodes> type = "<master_node_type>" version = "<kubernetes_version>" } network_configuration = { services_subnet_cidr = "<services_cidr>" nodes_subnet_cidr = "<nodes_subnet_cidr>" pods_subnet_cidr = "<pods_cidr>" kube_api_internet = <public_ip> } identity_configuration = { cluster_sa_id = "<service_account_id>" } }
Где:
name
— название кластера.
Должно быть уникальным.
Может содержать буквы, цифры, подчеркивание и дефисы.
Допустимое количество символов — от 3 до 60.
control_plane.count
— количество мастер-узлов. Возможные значения: 1, 3, 5.Для доступности сервисов в случае сбоя одного или нескольких мастер-узлов укажите более одного.
control_plane.type
— тип виртуальных машин для каждого мастер-узла.
MASTER_TYPE_SMALL
— 2 CPU и 4 ГБ оперативной памяти.
MASTER_TYPE_MEDIUM
— 4 CPU и 8 ГБ оперативной памяти.
MASTER_TYPE_LARGE
— 8 CPU и 16 ГБ оперативной памяти.
MASTER_TYPE_EXTRALARGE
— 16 CPU и 32 ГБ оперативной памяти.
control_plane.version
— версия Kubernetes. Возможные значения: v1.26.7, v1.27.14, v1.28.14, v1.29.10.
control_plane.services_subnet_cidr
— подсеть в формате <адрес сети>/<префикс маски>. IP-адреса для сервисов кластера будут назначаться из этой подсети.Подсеть должна принадлежать диапазонам 10.0.0.0/12–28, 172.16.0.0/12–28 или 192.168.0.0/16–28 и не может пересекаться с другими подсетями созданной инфраструктуры.
control_plane.nodes_subnet_cidr
— подсеть в формате <адрес сети>/<префикс маски>. IP-адреса для мастер-узлов будут назначаться из этой подсети.Подсеть должна принадлежать диапазонам 10.0.0.0/20–28, 172.16.0.0/20–28 или 192.168.0.0/20–28 и не может пересекаться с другими подсетями созданной инфраструктуры.
control_plane.pods_subnet_cidr
— подсеть в формате <адрес сети>/<префикс маски>. IP-адреса для подов будут назначаться из этой подсети.Подсеть должна принадлежать диапазонам 10.0.0.0/8–24, 172.16.0.0/12–24 или 192.168.0.0/16–24 и не может пересекаться с другими подсетями созданной инфраструктуры.
control_plane.kube_api_internet
— параметр доступности kube-apiserver по внешнему IP-адресу. Чтобы обратиться к API-сервер по публичному IP, укажите значениеtrue
. Адрес назначается автоматически.
identity_configuration.cluster_sa_id
— идентификатор сервисного аккаунта. Необходим для интеграции с сервисами облака Evolution.Идентификатор можно скопировать в личном кабинете из URL на странице сервисного аккаунта.
На сервисный аккаунт должна быть назначена роль на проект Пользователь сервисов, а также роли:
s3e.editor и s3e.viewer — для монтирования бакетов Object Storage в качестве постоянного тома;
ar.registry.viewer — для работы с образами, которые хранятся в Artifact Registry.
Узнайте, как создать и настроить сервисный аккаунт.
Проверьте конфигурацию — в командной строке перейдите в каталог с файлом
cloudru-cluster.tf
и выполните команду:terraform validate
Если в конфигурации нет ошибок, появится сообщение:
Success! The configuration is valid.
Просмотрите планируемые изменения.
terraform plan
При успешном выполнении отобразится список ресурсов и их параметры.
Выполните команду:
terraform apply
Подтвердите создание ресурсов.
Проверьте создание кластера в личном кабинете.
Создание кластера занимает 5–10 минут. Для продолжения работы убедитесь, что состояние кластера — «Запущено».
для юрлиц и ИП