You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
decort-ansible/wiki/5.6.0/модуль-decort_k8s.md

16 KiB

Модуль decort_k8s

Обзор модуля decort_k8s

Модуль decort_k8s предназначен для выполнения следующих действий над кластерами Kubernetes:

  • создать
  • получить информацию
  • отключить/включить/запустить
  • изменить группы Worker-узлов
  • удалить (в корзину или безвозвратно)
  • восстановить из корзины

Параметры модуля decort_k8s

Ниже приведен полный список параметров для модуля decort_k8s:

Параметр Тип, допустимые значения Описание
account_id (int) Идентификатор аккаунта.
account_name (string) Имя аккаунта.
additionalSANs (list) Список дополнительных SAN (Subject Alternative Names) для использования в процессе автоматического выписывания сертификата Кластера Kubernetes. Можно использовать IP-адреса и доменные имена.
app_id (string) Идентификатор приложения, использующийся для подключения к контроллеру облачной платформы DECORT в режиме authenticator: oauth2. Данный параметр является обязательным для указанного режима. Если параметр не задан в playbook, модуль будет использовать значение переменной окружения DECORT_APP_ID.
app_secret (string) Секретный ключ приложения, который используется для подключения к контроллеру облачной платформы DECORT в режиме authenticator: oauth2. Данный параметр является обязательным для указанного режима. Так как он содержит секретную информацию, то его не рекомендуется задавать непосредственно в playbook. Если параметр не задан в playbook, то модуль будет использовать значение переменной окружения DECORT_APP_SECRET.
authenticator (str)
Значения:
oauth2
jwt
Режим аутентификации при подключении к контроллеру облачной платформы DECORT. Обязательный параметр.
cluster_conf (dict) Словарь с глобальными настройками и конфигурацией для всего кластера. Включает в себя такие настройки, как имя кластера, настройки DNS, методы аутентификации и другие конфигурации всего кластера.
controller_url (string) URL контроллера, соответствующего экземпляру облачной платформы DECORT. Данный параметр является обязательным.
description (string)
Default: Created by decort ansible module
Описание кластера.
extnet_id (int)
Default: 0
Идентификатор внешней сети. Если задан 0, то внешняя сеть выбирается автоматически. Если задан параметр vins_id, то значение данного параметра будет проигнорировано. Если задан extnet_only: false, то внешняя сеть будет подключена к создаваемой внутренней сети, а если extnet_only: true, то либо напрямую к каждому узлу кластера (если with_lb: false), либо напрямую к балансировщику нагрузки (если with_lb: true).
extnet_only (bool)
Default: false
Не использовать внутреннюю сеть, подключать напрямую к внешней.
getConfig (bool)
Default: false
Получить данные конфигурации для доступа к кластеру Kubernetes.
ha_lb (bool)
Default: false
Использовать схему высокой доступности для создаваемого балансировщика нагрузки (если with_lb: true).
id (int) Идентификатор кластера Kubernetes.
init_conf (dict) Словарь для определения настроек и действий, которые должны быть выполнены перед запуском любого другого компонента в кластере. Позволяет настраивать такие процессы, как регистрация узла, настройка сети и другие задачи инициализации.
join_conf (dict) Словарь для настройки поведения и параметров присоединения узла к кластеру. Включает в себя такие параметры, как control-plane-endpoint кластера, токен и certificate-key.
jwt (string) JSON Web Token (JWT), который будет использоваться для подключения к контроллеру облачной платформы DECORT в режиме authenticator: jwt. Данный параметр является обязательным для указанного режима. Так как он содержит потенциально секретную информацию, а сам JWT, как правило, имеет ограниченное время жизни, то его не рекомендуется задавать непосредственно в playbook. Если этот параметр не определен в playbook, то модуль будет использовать значение переменной окружения DECORT_JWT.
k8ci_id (int) Идентификатор конфигурации кластера Kubernetes. Обязательный параметр.
kubeproxy_conf (dict) Словарь для настройки поведения и настроек Kube-proxy, отвечающего за сетевое проксирование и балансировку нагрузки внутри кластера. Включает в себя такие параметры, как режим прокси, диапазоны IP-адресов кластера и другие конфигурации, специфичные для Kube-proxy.
kublet_conf (dict) Словарь для настройки поведения и настроек Kubelet, который является агентом основного узла, работающим на каждом узле кластера. Включает в себя такие параметры, как IP-адрес узла, распределение ресурсов, политики вытеснения модулей и другие конфигурации, специфичные для Kubelet.
master_count (int)
Default: 1
Количество Master-узлов.
master_cpu (int)
Default: 2
Количество виртуальных процессоров на Master-узле.
master_disk (int)
Default: 10
Объём загрузочного диска на Master-узле.
master_pool (str) Пул СХД, заданной параметром master_sepid.
master_ram (int)
Default: 2048
Объём оперативной памяти на Master-узле.
master_sepid (int) Идентификатор СХД для Master-узла. Если не задан, то используется СХД образа Master-узла.
name (string) Имя кластера Kubernetes.
network_plugin (str)
Значения:
flannel
calico
weavenet
Default: flannel
CNI plugin (модуль для управления сетевыми интерфейсами контейнера). Возможные значения могут быть ограничены в используемой конфигурации кластера Kubernetes (параметр k8ci_id)
oauth2_url (string) URL авторизационного сервера, работающего по протоколу Oauth2, который должен использоваться в режиме authenticator: oauth2. Данный параметр является обязательным для указанного режима. Если параметр не задан в playbook, модуль будет использовать значение переменной окружения DECORT_OAUTH2_URL.
oidc_cert (raw) Сертификат X.509 для OIDC-провайдера.
permanent (bool)
Default: false
Если выполняется удаление, то выполнить безвозвратное удаление (минуя корзину).
rg_id (int) Идентификатор ресурсной группы.
rg_name (str) Имя ресурсной группы.
started (bool)
Default: true
Автоматический запуск кластера после его создания.
state (string)
Значения:
present
absent
enabled
disabled
check
Default: present
Целевое состояние кластера.
verify_ssl (bool)
Default: true
Позволяет отключить проверку SSL сертификатов при выполнении API вызовов в адрес контроллера облачной инфраструктуры, например, при работе с изолированной облачной инфраструктурой, использующей самоподписанные сертификаты. Применяйте данный параметр с осторожностью, предпочтительно в защищенных средах.
vins_id (int) Идентификатор внутренней сети. Если не задан, то будет создана новая внутренняя сеть. Если задан, то заданная внутренняя сеть должна иметь подключение к внешней сети. Если задано extnet_only: true, то параметр игнорируется.
with_lb (bool)
Default: true
Создание кластера Kubernetes с размещением Master-узлов за балансировщиком нагрузки. В ином случае каждый узел получит отдельный адрес из внешней сети.
workers (list) Обязательный параметр. Список словарей, описывающих группы Worker-узлов.
Ключи словаря:
annotations (list) (необязательный) - список строк с annotations в формате: key1=value1
ci_user_data (dict) (необязательный) - конфигурация для cloud-init
cpu (int) (обязательный) - количество виртуальных процессоров на узле
disk (int) (обязательный) - объём загрузочного диска на узле
labels (list) (необязательный) - список строк с labels в формате: label1=value1
name (string) (обязательный) - имя группы Worker-узлов
num (int) (обязательный) - количество узлов
pool (str) (обязательный) - пул СХД, заданной ключом sep_id
ram (int) (обязательный) - объём оперативной памяти на узле
sep_id (int) (обязательный) - идентификатор СХД; если задать null, то используется СХД образа узла
taints (list) (необязательный) - список строк с taints в формате: key1=value1:NoSchedule

Возвращаемые значения модуля decort_k8s

Модуль decort_k8s возвращает информацию о кластере в виде словаря facts со следующими ключами:

Ключ Тип данных Описание
account_id int Идентификатор аккаунта.
config str Kuber config кластера.
id int Идентификатор кластера.
k8s_Masters dict Словарь с информацией о группе Master-узлов.
Ключи словаря:
cpu (int) - количество виртуальных процессоров
detailedInfo (list) - список словарей с информацией об узлах; ключи словаря: id (int) - идентификатор ВМ, name (str) - имя ВМ, status (str) - статус ВМ, techStatus (str) - технический статус ВМ
disk (int) - объём загрузочного диска
id (int) - идентификатор группы
name (str) - имя группы
num (int) - количество узлов
ram (int) - объём оперативной памяти
k8s_Workers dict Список словарей с информацией о группах Worker-узлов.
Ключи словаря:
cpu (int) - количество виртуальных процессоров
detailedInfo (list) - список словарей с информацией об узлах; ключи словаря: id (int) - идентификатор ВМ, name (str) - имя ВМ, status (str) - статус ВМ, techStatus (str) - технический статус ВМ
disk (int) - объём загрузочного диска
id (int) - идентификатор группы
labels (list) - список строк с labels
name (str) - имя группы
num (int) - количество узлов
ram (int) - объём оперативной памяти
taints (list) - список строк с taints
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
          pool: null
          ram: 1024
          sep_id: null
        - cpu: 10
          disk: 10
          name: wg2
          num: 2
          pool: null
          ram: 1024
          sep_id: null
    register: k8s_cluster