- tocdepth
2
Создать кластер
В инструкции описано, как создать кластер Kubernetes в личном кабинете, с помощью API-запроса или Terraform.
В проекте можно создать один или несколько кластеров в пределах запрошенных вычислительных ресурсов. Если ресурсов не хватает, отправьте заявку на увеличение квоты.
Войдите в личный кабинет.
Перейдите в раздел Managed Kubernetes и нажмите Создать кластер.
На шаге «Общие параметры»:
Укажите название кластера.
Должно быть уникальным.
Может содержать буквы, цифры, подчеркивание и дефисы.
Допустимое количество символов — от 3 до 60.
Выберите зону доступности, в которой будут размещены мастер-узлы.
Мастер-узлы и группы узлов можно размещать в разных зонах доступности, при условии, что они будут находиться в одной VPC.
Выберите количество мастер-узлов в кластере.
Чтобы гарантировать доступность сервисов в случае сбоя одного или нескольких мастер-узлов, выберите более одного мастер-узла.
В списке Конфигурация мастер-узла выберите конфигурацию виртуальных машин для мастер-узлов.
Выберите версию Kubernetes.
Доступные версии — 1.26.7, 1.27.14, 1.28.13.
Нажмите Продолжить.
На шаге «Сеть» укажите сетевые настройки:
Адрес подсети сервисов — подсеть, из которой будут назначаться 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-адресов.
Нажмите Продолжить.
На шаге «Группы узлов» нажмите Добавить группу узлов.
Вы можете пропустить этот шаг и создать группу узлов позже.
Создать группу узлов
Заполните поля:
Название — введите название группы узлов.
Должно быть уникальным.
Может содержать буквы, цифры, подчеркивание и дефисы.
Допустимое количество символов — от 4 до 60.
Зона доступности — выберите зону доступности, в которой будут размещены рабочие узлы.
Мастер-узлы и группы узлов можно размещать в разных зонах доступности, при условии, что они будут находиться в одной VPC.
Гарантированная доля 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\]Автомасштабирование — включите опцию, если необходимо автоматически изменять размер группы узлов в зависимости от нагрузки.
Укажите минимальное и максимальное количество узлов, в пределах которых будет изменяться размер группы узлов.
Об особенностях и ограничениях автомасштабирования читайте в разделе Автоматическое масштабирование группы узлов.
(Опционально) Группа безопасности — выберите группу безопасности или создайте новую, нажав Создать новую группу безопасности.
На шаге «Интеграция и плагины»:
Активируйте опцию Логирование, чтобы отправлять логи в сервис логирования.
Для записи логов выберите лог-группу или создайте новую.
Активируйте опцию Мониторинг, чтобы собирать метрики и отправлять их в сервис мониторинга.
Для работы с метриками в кластере обязательно должны быть установлены плагины Node Exporter и Kube State Metrics. Подробнее см. Мониторинг кластера.
Выберите плагины, необходимые для вашего кластера.
Сетевой плагин обязателен для установки. Вы можете выбрать Cilium или Calico. Одновременно установить эти плагины нельзя.
Будьте внимательны с выбором сетевого плагина — его удаление может нарушить работу кластера.
Примечание
Если при создании кластера сетевой плагин не выбран, по умолчанию будет установлен Cilium.
Выберите CSI Driver, чтобы подключать к кластеру постоянные тома.
Нажмите Создать.
Пройдите аутентификацию в 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 } } }, }
Где:
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.13.
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.
Подробное описание параметров читайте в справочнике API.
Установите и настройте Terraform, если еще не устанавливали.
Создайте конфигурационный файл
cloudru-cluster.tf
с параметрами:resource "cloud_k8s_cluster" "<название_кластера>" { name = "<название_кластера>" project_id = "<идентификатор_проекта>" control_plane = { count = <количество_мастер_узлов> type = "<тип_мастер_узлов>" version = "<версия_kubernetes>" } network_configuration = { services_subnet_cidr = "<cidr_сервисов>" nodes_subnet_cidr = "<cidr_мастер_узлов>" pods_subnet_cidr = "<cidr_подов>" kube_api_internet = <публичный_ip> } }
Где:
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.13.
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
. Адрес назначается автоматически.Больше примеров и подробное описание параметров см. в каталоге K8s Examples.
Проверьте конфигурацию — в командной строке перейдите в каталог с файлом
cloudru-cluster.tf
и выполните команду:terraform validate
Если в конфигурации нет ошибок, появится сообщение:
Success! The configuration is valid.
Просмотрите планируемые изменения.
terraform plan
При успешном выполнении отобразится список ресурсов и их параметры.
Выполните команду:
terraform apply
Подтвердите создание ресурсов.
Проверьте создание кластера в личном кабинете.
Создание кластера занимает 5–10 минут. Для продолжения работы убедитесь, что состояние кластера — «Запущено».
для Dev & Test