Создание и удаление кластеров Kubernetes

Создание и удаление кластеров Kubernetes#

Ограничения

  • Версии Kubernetes 1.15.x, 1.18.x и 1.19.x больше не поддерживаются. Кластеры Kubernetes, созданные в этих версиях, имеют метку Устаревший.

  • Сертификаты кластеров Kubernetes выпускаются со сроком действия, составляющим пять лет. Чтобы продлить сертификаты, используйте команду vinfra service compute k8saas rotate-ca (см. раздел Обновление сертификатов кластеров Kubernetes). Как вариант, можно использовать команду openstack coe ca rotate (см. документацию OpenStack).

Предварительные требования

  • Должен быть создан вычислительный кластер, как описано в разделе Создание вычислительного кластера.

  • Служба Kubernetes должна быть установлена либо в ходе развертывания вычислительного кластера, либо позже, как описано в разделе Подготовка к работе кластеров Kubernetes.

  • Создана виртуальная сеть, которая будет соединять серверы Kubernetes. Для нее должны быть указаны шлюз и DNS-сервер.

  • Создан SSH-ключ, который будет установлен на рабочих и мастер-серверах.

  • Достаточно ресурсов для всех серверов Kubernetes с учетом их типов.

  • Проектам, созданным до установки сервиса Kubernetes, должна быть вручную назначена квота на его использование.

Создание кластера Kubernetes

Используйте следующую команду:

vinfra service compute k8saas create [--master-node-count <count>]
                                     [--node-count <count>]
                                     [--volume-storage-policy <policy>]
                                     [--kubernetes-version <version>]
                                     --master-flavor <flavor>
                                     --flavor <flavor>
                                     [--volume-size <size>]
                                     --external-network <network>
                                     [--network <network>]
                                     --key-name <key-name>
                                     [--use-floating-ip <use-floating-ip>]
                                     [--enable-public-access]
                                     [--containers-network-cidr <cidr>]
                                     [--containers-network-node-subnet-prefix-length <prefix_length>]
                                     [--service-network-cidr <cidr>]
                                     [--dns-service-ip <ip>] <name>
<name>

Имя кластера Kubernetes.

--master-node-count <count>

Количество мастер-серверов в кластере Kubernetes.

--node-count <count>

Количество рабочих серверов в кластере Kubernetes.

--volume-storage-policy <policy>

Имя политики хранилища для тома, на котором будут расположены контейнеры.

--kubernetes-version <version>

Версия Kubernetes (v1.21.3, v1.20.7 и v1.19.9).

--master-flavor <flavor>

Тип ВМ, который следует использовать для мастер-серверов Kubernetes.

--flavor <flavor>

Тип ВМ, который следует использовать для рабочих серверов Kubernetes.

--volume-size <size>

Размер тома хранилища на каждом сервере Kubernetes.

--external-network <network>

Идентификатор или имя физической сети, обеспечивающей доступ в Интернет для серверов Kubernetes.

--network <network>

Идентификатор или имя виртуальной сети, обеспечивающей взаимодействие между серверами Kubernetes.

--key-name <key-name>

Пара ключей, которую следует использовать для доступа к серверам Kubernetes.

--use-floating-ip <use-floating-ip>

Использование плавающих IP-адресов для всех серверов Kubernetes (true или false).

--enable-public-access

Использование плавающего IP-адреса для API Kubernetes (true или false).

--containers-network-cidr <cidr>

Диапазон сети контейнеров в нотации CIDR.

--containers-network-node-subnet-prefix-length <prefix_length>

Длина префикса для подсети контейнеров, выделенной каждому серверу Kubernetes.

--service-network-cidr <cidr>

Диапазон сети сервиса Kubernetes в нотации CIDR.

--dns-service-ip <ip>

IP-адрес сервиса DNS.

Например, чтобы создать кластер Kubernetes, выполните:

# vinfra service compute k8saas create k8s1 --kubernetes-version v1.20.7 \
--master-node-count 1 --node-count 3 --volume-storage-policy default \
--master-flavor medium --volume-size 10 --external-network public \
--network private1 --flavor small --key-name key1 --use-floating-ip true \
--vinfra-username user1 --vinfra-password password --vinfra-domain domain1 \
--vinfra-project project1
+----------------------------------+--------------------------------------------+
| Field                            | Value                                      |
+----------------------------------+--------------------------------------------+
| action_status                    | CREATE_IN_PROGRESS                         |
| boot_volume_size                 | 10                                         |
| boot_volume_storage_policy       | default                                    |
| containers_volume_size           | 10                                         |
| containers_volume_storage_policy | default                                    |
| create_timeout                   | 60                                         |
| external_network_id              | 10cc4d59-adac-4ec1-8e0a-df5015b82c64       |
| id                               | 749737ae-2452-4a98-a057-b59b1c579a85       |
| key_name                         | key1                                       |
| master_flavor                    | medium                                     |
| master_node_count                | 1                                          |
| name                             | k8s1                                       |
| network_id                       | d037623b-0db7-40c2-b38a-9ac34fbd1cc5       |
| nodegroups                       | - action_status: CREATE_IN_PROGRESS        |
|                                  |   flavor: medium                           |
|                                  |   id: c3b4ec41-b8c1-4dae-9e1c-aa586b99a62c |
|                                  |   is_default: true                         |
|                                  |   name: default-master                     |
|                                  |   node_count: 1                            |
|                                  |   role: master                             |
|                                  |   status: CREATING                         |
|                                  |   version: v1.20.7                         |
|                                  | - action_status: CREATE_IN_PROGRESS        |
|                                  |   flavor: small                            |
|                                  |   id: 65b80f19-0920-48b7-84e0-d0c63c46e99f |
|                                  |   is_default: true                         |
|                                  |   name: default-worker                     |
|                                  |   node_count: 3                            |
|                                  |   role: worker                             |
|                                  |   status: CREATING                         |
|                                  |   version: v1.20.7                         |
| project_id                       | d8a72d59539c431381989af6cb48b05d           |
| status                           | CREATING                                   |
| user_id                          | 5846f988280f42199ed030a22970d48e           |
| worker_pools                     | - flavor: small                            |
|                                  |   node_count: 3                            |
+----------------------------------+--------------------------------------------+

Эта команда, выполняемая от имени пользователя user1 из domain1 > project1, запускает создание кластера Kubernetes k8s1 с этими параметрами:

  • версия Kubernetes 1.20.7;

  • 1 мастер-сервер на базе типа ВМ medium и 3 рабочих узла на базе типа ВМ small;

  • тома хранилища размером 10 ГБ с применением политики хранилища по умолчанию;

  • виртуальная сеть private1, которая будет подключаться к Интернету через физическую сеть public;

  • плавающие IP-адреса для каждого сервера, взятые из указанной физической сети;

  • открытый SSH-ключ key1.

Созданный кластер Kubernetes появится в выводе команды vinfra service compute k8saas list.

Удаление кластера Kubernetes

  1. На экране Вычисления → Kubernetes щелкните по кластеру Kubernetes.

  2. На правой панели кластера нажмите кнопку Удалить.

  3. Нажмите кнопку Удалить в окне подтверждения.

Используйте следующую команду:

vinfra service compute k8saas delete <cluster>
<cluster>

Идентификатор или имя кластера.

Например, чтобы удалить Kubernetes-кластер k8s1, выполните:

# vinfra service compute k8saas delete k8s1