Files
wiki-decort-ansible/13.0.0/модуль-decort_k8s.md
2026-09-18 12:39:03 +03:00

26 KiB
Raw Permalink Blame History

Модуль 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-адреса и доменные имена.
cluster_conf (dict) Словарь с глобальными настройками и конфигурацией для всего кластера. Включает в себя такие настройки, как имя кластера, настройки DNS, методы аутентификации и другие конфигурации всего кластера.
description (string) Целевое описание.
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.
k8ci_id (int) Идентификатор конфигурации кластера Kubernetes.
kubeproxy_conf (dict) Словарь для настройки поведения и настроек Kube-proxy, отвечающего за сетевое проксирование и балансировку нагрузки внутри кластера. Включает в себя такие параметры, как режим прокси, диапазоны IP-адресов кластера и другие конфигурации, специфичные для Kube-proxy.
kublet_conf (dict) Словарь для настройки поведения и настроек Kubelet, который является агентом основного узла, работающим на каждом узле кластера. Включает в себя такие параметры, как IP-адрес узла, распределение ресурсов, политики вытеснения модулей и другие конфигурации, специфичные для Kubelet.
master_chipset (string)
Значения:
Q35
i440fx
Эмулируемый чипсет master-узлов. Не поддерживается изменение в существующем кластере.
Значение по умолчанию, если объект не найден или безвозвратно удалён: Q35.
master_count (int)
Значения:
1
3
5
7
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. Если для существующего кластера указаны и name, и id, то параметр name используется для переименования.
network_plugin (str)
Значения:
flannel
calico
weavenet
Default: flannel
CNI plugin (модуль для управления сетевыми интерфейсами контейнера). Возможные значения могут быть ограничены в используемой конфигурации кластера Kubernetes (параметр k8ci_id)
oidc_cert (raw) Сертификат X.509 для OIDC-провайдера.
permanent (bool)
Default: false
Если выполняется удаление, то выполнить безвозвратное удаление (минуя корзину).
rg_id (int) Идентификатор ресурсной группы.
rg_name (str) Имя ресурсной группы.
state (str)
Значения:
present
absent
disabled
enabled
started
stopped
Default: present
Целевое состояние кластера.
present - существует и не удален. Если удален в корзину, то будет восстановлен из корзины.
absent - удалён в корзину или безвозвратно удалён, в зависимости от значения параметра permanent.
disabled - выключен. Если включён, то будет выключен. Если удален в корзину, то будет восстановлен из корзины и выключен.
enabled - включён. Если выключен, то будет включён. Если удален в корзину, то будет восстановлен из корзины и включён.
started - запущен. Если остановлен, то будет запущен. Если удален в корзину, то будет восстановлен из корзины и запущен.
stopped - остановлен. Если запущен, то будет остановлен. Если удален в корзину, то будет восстановлен из корзины и остановлен.
lb_sysctl (dict) Словарь, описывающий параметры конфигурации sysctl балансировщика нагрузки. Может быть задан только если кластер имеет балансировщик нагрузки.
storage_policy_id (int) Идентификатор политики хранения. Обязателен при создании. Не поддерживается изменение в существующем кластере.
vins_id (int) Идентификатор внутренней сети. Если не задан, то будет создана новая внутренняя сеть. Если задан, то заданная внутренняя сеть должна иметь подключение к внешней сети. Если задано extnet_only: true, то параметр игнорируется.
with_lb (bool)
Default: true
Создание кластера Kubernetes с размещением Master-узлов за балансировщиком нагрузки.
workers (list) Список словарей, описывающих группы Worker-узлов.
Ключи словаря:
• annotations (list) (необязательный) - список строк с annotations в формате: key1=value1; значение по умолчанию, если объект не найден: []
• chipset (str) (необязательный) - эмулируемый чипсет. Допустимые значения: Q35, i440fx; значение по умолчанию, если объект не найден : Q35
• ci_user_data (dict) (необязательный) - конфигурация для cloud-init; значение по умолчанию, если объект не найден: {}
• cpu (int) (необязательный) - количество виртуальных процессоров на узле; значение по умолчанию, если объект не найден: 1
• disk (int) (необязательный) - объём загрузочного диска на узле; если не задан при создании, размер диска будет равен размеру используемого образа
• labels (list) (необязательный) - список строк с labels в формате: label1=value1; значение по умолчанию, если объект не найден: []. Метка workersGroupName является служебной в платформе и игнорируется при сравнении переданных меток с существующими
• name (string) (обязательный) - имя группы Worker-узлов
• num (int) (необязательный) - количество узлов; значение по умолчанию, если объект не найден: 1
• pool (str) (необязательный) - пул СХД, заданной ключом sep_id; если не задан при создании, то пул будет выбран платформой
• ram (int) (необязательный) - объём оперативной памяти на узле; значение по умолчанию, если объект не найден: 1024
• sep_id (int) (необязательный) - идентификатор СХД; если не задан при создании, то используется СХД образа узла
• taints (list) (необязательный) - список строк с taints в формате: key1=value1:NoSchedule; значение по умолчанию, если объект не найден: [].
zone_id (int) Идентификатор зоны.

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

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

Ключ Тип
данных
Описание
account_id int Идентификатор аккаунта.
account_name str Имя аккаунта.
acl dict[str, list] Словарь со списками доступа.
account list[dict[str, any]] Список словарей, описывающих доступы пользователей для аккаунта.
access_type str Тип доступа.
can_be_deleted bool | null Может ли быть удалён.
explicit bool Видимость ресурсной группы.
guid str | null Идентификатор.
status str Статус.
type str Тип.
user_email str | null Адрес электронной почты.
user_emails list[str] | null Список адресов электронной почты.
user_name str Имя пользователя.
k8s list[dict[str, any]] Список словарей, описывающих доступы пользователей для кластера.
Структура элементов аналогична элементам списка account .
rg list[dict[str, any]] Список словарей, описывающих доступы пользователей для ресурсной группы.
Структура элементов аналогична элементам списка account .
bservice_id int Идентификатор бизнес-сервиса.
config str | null Сonfig кластера.
created_by str Имя пользователя, создавшего кластер.
created_datetime str | null Дата и время создания.
created_timestamp int Unix-время создания.
deleted_by str | null Имя пользователя, удалившего кластер.
deleted_datetime str | null Дата и время удаления.
deleted_timestamp int | null Unix-время удаления.
description str Описание.
extnet_only bool Признак подключения узлов напрямую к внешней сети без использования внутренней сети.
id int Идентификатор кластера.
k8ci_id int Идентификатор конфигурации кластера Kubernetes.
k8ci_name str Имя конфигурации кластера Kubernetes.
lb_ha_ips dict[str, str] IP-адреса балансировщика нагрузки в режиме высокой доступности.
backend str Виртуальный IP-адрес во внутренней сети, используемый в режиме высокой доступности.
frontend str Виртуальный IP-адрес во внешней сети, используемый в режиме высокой доступности.
lb_ha_mode bool Включён ли режим высокой доступности.
lb_id int Идентификатор балансировщика нагрузки.
name str Имя кластера.
network_plugin str CNI-плагин кластера.
node_groups dict[str, any] Группы узлов кластера.
master dict[str, any] Группа Master-узлов.
annotations list[str] | null Список annotations.
id int Идентификатор группы.
labels list[str] | null Список labels.
name str Имя группы.
node_boot_disk_size_gb int Объём загрузочного диска узла.
node_count int Количество узлов.
node_cpu_count int Количество виртуальных процессоров на узле.
node_ram_size_mb int Объём оперативной памяти на узле.
taints list[str] | null Список taints.
vms list[dict[str, any]] Список узлов группы.
ext_ip str | null Внешний IP-адрес узла.
id int Идентификатор ВМ.
name str Имя ВМ.
status str Статус ВМ.
tech_status str Технический статус ВМ.
worker list[dict[str, any]] Список групп Worker-узлов.
Структура словарей аналогична словарю master .
rg_id int Идентификатор ресурсной группы.
rg_name str Имя ресурсной группы.
status str Статус кластера.
tech_status str Технический статус кластера.
updated_by str Имя пользователя, обновившего кластер.
updated_datetime str | null Дата и время обновления.
updated_timestamp int Unix-время обновления.
vins_id int Идентификатор внутренней сети.
with_lb bool Признак наличия балансировщика нагрузки.
zone_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
      storage_policy_id: "{{ storage_policy_id }}"
      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