Перейти к основному содержимому
Создать кластер Managed Kubernetes на облачном сервере с поддержкой Intel® SGX
Последнее изменение:

Создать кластер Managed Kubernetes на облачном сервере с поддержкой Intel® SGX

к сведению

Cоздание кластера Managed Kubernetes с поддержкой Intel® SGX недоступно в кластерах Managed Kubernetes на выделенном сервере.

Кластер Managed Kubernetes можно создать на облачном сервере с поддержкой Intel® SGX. Посмотреть доступность облачных серверов с SGX (линейка фиксированных конфигураций SGX Line) в регионах можно в матрице доступности Облачные серверы.

Создать кластер на облачном сервере с поддержкой Intel® SGX можно через API Managed Kubernetes или Terraform.

  1. Установите Terraform.
  2. Создайте манифест.
  3. Настройте провайдеры.
  4. Создайте кластер на облачном сервере.
  5. Проверьте конфигурацию и разверните инфраструктуру.

Установить Terraform

Перед началом работы установите Terraform на облачном сервере или локальном компьютере.

Используйте инструкцию на официальном сайте Terraform в зависимости от операционной системы.

Создать манифест

  1. Создайте директорию. В этой директории будут храниться манифесты и сохраненные состояния Terraform и инфраструктуры. Файлы с описанием одной инфраструктуры должны находиться в отдельной директории.
  2. Создайте в этой директории файл с расширением .tf, например, main.tf.

Настроить провайдеры

В манифесте перечислите Terraform-провайдеров, необходимых для создания инфраструктуры. Обычно для работы используются два провайдера: Selectel и OpenStack.

  1. Добавьте в манифест блок с описанием провайдеров:

    terraform {
    required_version = ">= 0.14.0"
    required_providers {
    openstack = {
    source = "terraform-provider-openstack/openstack"
    version = "~> 1.43.0"
    }
    selectel = {
    source = "selectel/selectel"
    version = "~> 3.9.1"
    }
    }
    }
  2. Чтобы проверить актуальные версии провайдеров (version) в официальной документации (Selectel и OpenStack), нажмите USE PROVIDER.

  3. Для авторизации OpenStack-провайдера добавьте в манифест токен:

    provider "openstack" {
    auth_url = "https://cloud.api.selcloud.ru/identity/v3"
    domain_name = "<selectel_account>"
    tenant_id = "<project_id>"
    user_name = "<user_name>"
    password = "<user_password>"
    region = "<pool>"
    }

    Укажите:

    • <selectel_account> — номер аккаунта Selectel (номер договора). Можно посмотреть в панели управления в правом верхнем углу;
    • <project_id> — ID проекта;
    • <user_name> — пользователь OpenStack, привязанный к проекту;
    • <user_password> — пароль пользователя OpenStack;
    • <pool> — пул, в котором будет развернута инфраструктура.
  4. Для авторизации Selectel-провайдера добавьте в манифест:

    provider "selectel" {
    token = "<selectel_token>"
    }

    Укажите <selectel_token> — токен Selectel (ключ API).

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

Добавьте в манифест описание кластера. Подробнее в документации провайдеров на сайтах Terraform и Github.

Пример для создания кластера с двумя группами нод с разными флейворами:

resource "selectel_mks_cluster_v1" "cluster_1" {
name = "cluster-1"
project_id = <selectel_project_id> # EDIT: add selectel project ID
region = "ru-7"
kube_version = "1.24.10"
}

resource "selectel_mks_nodegroup_v1" "nodegroup_1" {
cluster_id = "${selectel_mks_cluster_v1.cluster_1.id}"
project_id = "${selectel_mks_cluster_v1.cluster_1.project_id}"
region = "${selectel_mks_cluster_v1.cluster_1.region}"
availability_zone = "ru-7a"
nodes_count = 3
flavor_id = "<flavor_id>" # EDIT: add flavor ID, see the list of available flavors in the section below
volume_gb = 50
volume_type = "fast.ru-7a"
labels = {
"sgx.intel.com/capable": "true"
}
}

resource "selectel_mks_nodegroup_v1" "nodegroup_1" {
cluster_id = "${selectel_mks_cluster_v1.cluster_1.id}"
project_id = "${selectel_mks_cluster_v1.cluster_1.project_id}"
region = "${selectel_mks_cluster_v1.cluster_1.region}"
availability_zone = "ru-7a"
nodes_count = 3
flavor_id = "<flavor_id>" # EDIT: add flavor ID, see the list of available flavors in the section below
volume_gb = 50
volume_type = "fast.ru-7a"
labels = {
"sgx.intel.com/capable": "true"
}
}

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

+------------+----------------------------+---------+------+-----------+-------+-----------+
| ID | Name | RAM | Disk | Ephemeral | VCPUs | Is Public |
+------------+----------------------------+---------+------+-----------+-------+-----------+
| 11011 | SGX1.1-4096-0-2034EPC | 4096 | 0 | 0 | 1 | True |
| 11012 | SGX1.2-8192-0-4071EPC | 8192 | 0 | 0 | 2 | True |
| 11013 | SGX1.4-16384-0-8143EPC | 16384 | 0 | 0 | 4 | True |
| 11014 | SGX1.8-32768-0-16286EPC | 32768 | 0 | 0 | 8 | True |
| 11015 | SGX1.16-65536-0-32572EPC | 65536 | 0 | 0 | 16 | True |
| 11016 | SGX1.24-98304-0-65144EPC | 98304 | 0 | 0 | 24 | True |
| 11311 | SGX1.1-4096-32-2034EPC | 4096 | 32 | 0 | 1 | True |
| 11312 | SGX1.2-8192-64-4071EPC | 8192 | 64 | 0 | 2 | True |
| 11313 | SGX1.4-16384-128-8143EPC | 16384 | 128 | 0 | 4 | True |
| 11314 | SGX1.8-32768-256-16286EPC | 32768 | 256 | 0 | 8 | True |
| 11315 | SGX1.16-65536-512-32572EPC | 65536 | 512 | 0 | 16 | True |
| 11316 | SGX1.24-98304-1024-65144EPC| 98304 | 1024 | 0 | 24 | True |
+------------+----------------------------+---------+------+-----------+-------+-----------+

В полях указаны:

  • ID — ID флейвора;
  • Name — имя флейвора;
  • RAM — размер оперативной памяти в МБ;
  • Disk — размер локального диска в ГБ;
  • VCPUs — количество vCPU;
  • Is Public — область видимости флейвора: True — публичный (public) или False — приватный (private).

Создать инфраструктуру

Выполните следующие команды в директории, в которой находится созданный манифест.

  1. Инициализируйте Terraform-окружение:

    terraform init
  2. Проверьте, что план составлен без ошибок:

    terraform plan

    Если ошибок в описании нет, будет выведен список ресурсов, готовых к созданию. Если ошибки есть — их нужно устранить.

  3. Разверните инфраструктуру и создайте ресурсы:

    terraform apply
  4. Подтвердите создание — введите yes и нажмите Enter. Созданный кластер автоматически отобразится в панели управления.