Создание и удаление кластеров 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
На экране Вычисления → Kubernetes щелкните по кластеру Kubernetes.
На правой панели кластера нажмите кнопку Удалить.
Нажмите кнопку Удалить в окне подтверждения.
Используйте следующую команду:
vinfra service compute k8saas delete <cluster>
<cluster>Идентификатор или имя кластера.
Например, чтобы удалить Kubernetes-кластер k8s1, выполните:
# vinfra service compute k8saas delete k8s1