|
|
# Модуль decort_k8s
|
|
|
## Обзор модуля decort_k8s
|
|
|
|
|
|
Модуль **decort_k8s** предназначен для выполнения следующих действий над кластерами Kubernetes:
|
|
|
- создать
|
|
|
- получить информацию
|
|
|
- отключить/включить/запустить
|
|
|
- изменить группы Worker-узлов
|
|
|
- удалить (в корзину или безвозвратно)
|
|
|
- восстановить из корзины
|
|
|
|
|
|
## Параметры модуля decort_k8s
|
|
|
Ниже приведен список параметров для модуля **decort_k8s** (за исключением [общих параметров авторизации](./введение.md#общие-параметры-модулей-для-авторизации)):
|
|
|
|
|
|
| Параметр | Тип, допустимые значения | Описание |
|
|
|
| ------ | ------ | ------ |
|
|
|
| account_id | (int) | Идентификатор аккаунта. |
|
|
|
| account_name | (string) | Имя аккаунта. |
|
|
|
| additionalSANs | (list) | Список дополнительных SAN (Subject Alternative Names) для использования в процессе автоматического выписывания сертификата Кластера Kubernetes. Можно использовать IP-адреса и доменные имена.
|
|
|
| cluster_conf | (dict) | Словарь с глобальными настройками и конфигурацией для всего кластера. Включает в себя такие настройки, как имя кластера, настройки DNS, методы аутентификации и другие конфигурации всего кластера. |
|
|
|
| description | (string) | Целевое описание. |
|
|
|
| extnet_id | (int)<br>Default: `0` | Идентификатор внешней сети. Если задан `0`, то внешняя сеть выбирается автоматически. Если задан параметр `vins_id`, то значение данного параметра будет проигнорировано. Если задан `extnet_only: false`, то внешняя сеть будет подключена к создаваемой внутренней сети, а если `extnet_only: true`, то либо напрямую к каждому узлу кластера (если `with_lb: false`), либо напрямую к балансировщику нагрузки (если `with_lb: true`). |
|
|
|
| extnet_only | (bool)<br>Default: `false` | Не использовать внутреннюю сеть, подключать напрямую к внешней. |
|
|
|
| getConfig | (bool)<br>Default: `false` | Получить данные конфигурации для доступа к кластеру Kubernetes. |
|
|
|
| ha_lb | (bool)<br>Default: `false` | Использовать схему высокой доступности для создаваемого балансировщика нагрузки (если `with_lb: true`). |
|
|
|
| id | (int) | Идентификатор кластера Kubernetes. |
|
|
|
| init_conf | (dict) | Словарь для определения настроек и действий, которые должны быть выполнены перед запуском любого другого компонента в кластере. Позволяет настраивать такие процессы, как регистрация узла, настройка сети и другие задачи инициализации.
|
|
|
| join_conf | (dict) | Словарь для настройки поведения и параметров присоединения узла к кластеру. Включает в себя такие параметры, как control-plane-endpoint кластера, токен и certificate-key. |
|
|
|
| k8ci_id | (int) | Идентификатор конфигурации кластера Kubernetes. |
|
|
|
| kubeproxy_conf | (dict) | Словарь для настройки поведения и настроек Kube-proxy, отвечающего за сетевое проксирование и балансировку нагрузки внутри кластера. Включает в себя такие параметры, как режим прокси, диапазоны IP-адресов кластера и другие конфигурации, специфичные для Kube-proxy. |
|
|
|
| kublet_conf | (dict) | Словарь для настройки поведения и настроек Kubelet, который является агентом основного узла, работающим на каждом узле кластера. Включает в себя такие параметры, как IP-адрес узла, распределение ресурсов, политики вытеснения модулей и другие конфигурации, специфичные для Kubelet. |
|
|
|
| master_chipset | (string)<br>Значения:<br>`Q35`<br>`i440fx` | Эмулируемый чипсет master-узлов. Не поддерживается изменение в существующем кластере. <br>Значение по умолчанию при создании: `i440fx`. |
|
|
|
| master_count | (int)<br>Значения:<br>`1`<br>`3`<br>`5`<br>`7`<br>Default: `1` | Количество Master-узлов. |
|
|
|
| master_cpu | (int)<br>Default: `2` | Количество виртуальных процессоров на Master-узле. |
|
|
|
| master_disk | (int)<br>Default: `10` | Объём загрузочного диска на Master-узле. |
|
|
|
| master_pool | (str) | Пул СХД, заданной параметром `master_sepid`. |
|
|
|
| master_ram | (int)<br>Default: `2048` | Объём оперативной памяти на Master-узле. |
|
|
|
| master_sepid | (int) | Идентификатор СХД для Master-узла. Если не задан, то используется СХД образа Master-узла. |
|
|
|
| name | (string) | Имя кластера Kubernetes. |
|
|
|
| network_plugin | (str)<br>Значения:<br>`flannel`<br>`calico`<br>`weavenet`<br>Default: `flannel` | CNI plugin (модуль для управления сетевыми интерфейсами контейнера). Возможные значения могут быть ограничены в используемой конфигурации кластера Kubernetes (параметр `k8ci_id`) |
|
|
|
| oidc_cert | (raw) | Сертификат X.509 для OIDC-провайдера.
|
|
|
| permanent | (bool)<br>Default: `false` | Если выполняется удаление, то выполнить безвозвратное удаление (минуя корзину). |
|
|
|
| rg_id | (int) | Идентификатор ресурсной группы. |
|
|
|
| rg_name | (str) | Имя ресурсной группы. |
|
|
|
| started | (bool)<br>Default: `true` | Запустить кластер.<br>Используется только для существующего кластера. |
|
|
|
| state | (string)<br>Значения:<br>`present`<br>`absent`<br>`enabled`<br>`disabled`<br>`check`<br>Default: `present` | Целевое состояние кластера. |
|
|
|
| lb_sysctl | (dict) | Словарь, описывающий параметры конфигурации sysctl балансировщика нагрузки. Может быть задан только если кластер имеет балансировщик нагрузки. |
|
|
|
| vins_id | (int) | Идентификатор внутренней сети. Если не задан, то будет создана новая внутренняя сеть. Если задан, то заданная внутренняя сеть должна иметь подключение к внешней сети. Если задано `extnet_only: true`, то параметр игнорируется.
|
|
|
| with_lb | (bool)<br>Default: `true` | Создание кластера Kubernetes с размещением Master-узлов за балансировщиком нагрузки. |
|
|
|
| workers | (list) | Список словарей, описывающих группы Worker-узлов.<br>Ключи словаря:<br>• `annotations` (list) (необязательный) - список строк с annotations в формате: `key1=value1`; значение по умолчанию при создании: `[]`<br>• `chipset` (str) (необязательный) - эмулируемый чипсет. Допустимые значения: `Q35`, `i440fx`; значение по умолчанию при создании: `i440fx`<br>• `ci_user_data` (dict) (необязательный) - конфигурация для cloud-init; значение по умолчанию при создании: `{}`<br>• `cpu` (int) (необязательный) - количество виртуальных процессоров на узле; значение по умолчанию при создании: `1`<br>• `disk` (int) (необязательный) - объём загрузочного диска на узле; если не задан при создании, размер диска будет равен размеру используемого образа<br>• `labels` (list) (необязательный) - список строк с labels в формате: `label1=value1`; значение по умолчанию при создании: `[]`. Метка `workersGroupName` является служебной в платформе и игнорируется при сравнении переданных меток с существующими<br>• `name` (string) (обязательный) - имя группы Worker-узлов<br>• `num` (int) (необязательный) - количество узлов; значение по умолчанию при создании: `1`<br>• `pool` (str) (необязательный) - пул СХД, заданной ключом `sep_id`; если не задан при создании, то пул будет выбран платформой<br>• `ram` (int) (необязательный) - объём оперативной памяти на узле; значение по умолчанию при создании: `1024`<br>• `sep_id` (int) (необязательный) - идентификатор СХД; если не задан при создании, то используется СХД образа узла<br>• `taints` (list) (необязательный) - список строк с taints в формате: `key1=value1:NoSchedule`; значение по умолчанию при создании: `[]`. |
|
|
|
|
|
|
## Возвращаемые значения модуля decort_k8s
|
|
|
|
|
|
Модуль **decort_k8s** возвращает информацию о кластере в виде словаря `facts` со следующими ключами:
|
|
|
|
|
|
|
|
|
| Ключ | Тип данных | Описание |
|
|
|
| ------ | ------ | ------ |
|
|
|
| account_id | int | Идентификатор аккаунта. |
|
|
|
| config | str | Kuber config кластера.
|
|
|
| description | str | Описание. |
|
|
|
| id | int | Идентификатор кластера. |
|
|
|
| k8s_Masters | dict | Словарь с информацией о группе Master-узлов.<br>Ключи словаря:<br>• `cpu` (int) - количество виртуальных процессоров<br>• `detailedInfo` (list) - список словарей с информацией об узлах; ключи словаря: `id` (int) - идентификатор ВМ, `name` (str) - имя ВМ, `status` (str) - статус ВМ, `techStatus` (str) - технический статус ВМ<br>• `disk` (int) - объём загрузочного диска<br>• `id` (int) - идентификатор группы<br>• `name` (str) - имя группы<br>• `num` (int) - количество узлов<br>• `ram` (int) - объём оперативной памяти
|
|
|
| k8s_Workers | dict | Список словарей с информацией о группах Worker-узлов.<br>Ключи словаря:<br>• `cpu` (int) - количество виртуальных процессоров<br>• `detailedInfo` (list) - список словарей с информацией об узлах; ключи словаря: `id` (int) - идентификатор ВМ, `name` (str) - имя ВМ, `status` (str) - статус ВМ, `techStatus` (str) - технический статус ВМ<br>• `disk` (int) - объём загрузочного диска<br>• `id` (int) - идентификатор группы<br>• `labels` (list) - список строк с labels<br>• `name` (str) - имя группы<br>• `num` (int) - количество узлов<br>• `ram` (int) - объём оперативной памяти<br>• `taints` (list) - список строк с taints
|
|
|
| lb_id | int | Идентификатор балансировщика нагрузки. |
|
|
|
| name | string | Имя кластера. |
|
|
|
| rg_id | int | Идентификатор ресурсной группы. |
|
|
|
| state | string | Статус кластера. |
|
|
|
| techStatus | string | Технический статус кластера. |
|
|
|
| vins_id | int | Идентификатор внутренней сети кластера. |
|
|
|
|
|
|
|
|
|
## Пример использования модуля decort_k8s
|
|
|
|
|
|
|
|
|
Пример создания кластера Kubernetes с именем `cluster-test` с получением Kuber config.
|
|
|
```
|
|
|
- name: Create a k8s cluster named cluster-test
|
|
|
decort_k8s:
|
|
|
authenticator: jwt
|
|
|
controller_url: "https://ds1.digitalenergy.online"
|
|
|
getConfig: true
|
|
|
jwt: "{{ token.jwt }}"
|
|
|
k8ci_id: 18
|
|
|
name: cluster-test
|
|
|
rg_id: 125
|
|
|
workers:
|
|
|
- cpu: 10
|
|
|
disk: 10
|
|
|
name: wg1
|
|
|
num: 1
|
|
|
ram: 1024
|
|
|
chipset: i440fx
|
|
|
ci_user_data: {}
|
|
|
taints:
|
|
|
- key=value:NoSchedule
|
|
|
annotations:
|
|
|
- key=value
|
|
|
labels:
|
|
|
- label=value
|
|
|
- cpu: 10
|
|
|
disk: 10
|
|
|
name: wg2
|
|
|
num: 2
|
|
|
ram: 1024
|
|
|
chipset: Q35
|
|
|
ci_user_data: {}
|
|
|
taints:
|
|
|
- key=value:NoSchedule
|
|
|
annotations:
|
|
|
- key=value
|
|
|
labels:
|
|
|
- label=value
|
|
|
register: k8s_cluster
|
|
|
``` |