Spec-Zone.ru › Ansible 2.11

community.kubernetes.k8s_scale – Установка нового размера для развертывания, ReplicaSet, Replication Controller или Job.

Примечание

Этот плагин входит в коллекцию community.kubernetes (версия 1.1.1).

Для его установки используйте: ansible-galaxy collection install community.kubernetes.

Для использования в playbook, укажите: community.kubernetes.k8s_scale.

  • Описание
  • Требования
  • Параметры
  • Примечания
  • Примеры
  • Возвращаемые значения

Описание

  • Аналогично команде kubectl scale. Используется для установки количества реплик для развертывания, ReplicaSet или Replication Controller, или атрибута параллельности Job. Поддерживает режим проверки.

Примечание

Данный модуль имеет соответствующий плагин действий.

Требования

Ниже приведены требования к хосту, на котором будет выполняться этот модуль.

  • python >= 2.7
  • openshift >= 0.6
  • PyYAML >= 3.11

Параметры

Параметр Варианты/Значения по умолчанию Комментарии
api_key
строка
Токен, используемый для аутентификации с API. Также можно указать через переменную окружения K8S_AUTH_API_KEY.
api_version
строка
По умолчанию:
"v1"
Используется для указания версии API.
Используется для создания, удаления или поиска объекта без предоставления полного определения ресурса.
Используется в сочетании с kind, name и namespace для идентификации конкретного объекта.
Если предоставлено определение ресурса, значение apiVersion из resource_definition переопределит этот параметр.

псевдонимы: api, version
ca_cert
путь
Путь к сертификату CA, используемому для аутентификации с API. Цепочка полного сертификата должна быть предоставлена для избежания ошибок проверки сертификатов. Также можно указать через переменную окружения K8S_AUTH_SSL_CA_CERT.

псевдонимы: ssl_ca_cert
client_cert
путь
Путь к сертификату, используемому для аутентификации с API. Также можно указать через переменную окружения K8S_AUTH_CERT_FILE.

псевдонимы: cert_file
client_key
путь
Путь к файлу ключа, используемому для аутентификации с API. Также можно указать через переменную окружения K8S_AUTH_KEY_FILE.

псевдонимы: key_file
context
строка
Имя контекста, найденного в файле конфигурации. Также можно указать через переменную окружения K8S_AUTH_CONTEXT.
current_replicas
целое число
Для Deployment, ReplicaSet, Replication Controller, масштабирование производится только если количество существующих реплик соответствует. В случае с Job, обновление параллелизма выполняется только если текущее значение параллелизма совпадает.
host
строка
Укажите URL для доступа к API. Также можно указать через переменную окружения K8S_AUTH_HOST.
kind
строка
Используется для указания модели объекта.
Используется для создания, удаления или поиска объекта без предоставления полного определения ресурса.
Используется в сочетании с api_version, name и namespace для идентификации конкретного объекта.
Если предоставлено определение ресурса, значение kind из resource_definition переопределит этот параметр.
kubeconfig
путь
Путь к существующему файлу конфигурации Kubernetes. Если не указано и другие параметры подключения не предоставлены, клиент openshift попытается загрузить файл конфигурации по умолчанию из ~/.kube/config.json. Также можно указать через переменную окружения K8S_AUTH_KUBECONFIG.
name
строка
Используется для указания имени объекта.
Используется для создания, удаления или поиска объекта без предоставления полного определения ресурса.
Используется в сочетании с api_version, kind и namespace для идентификации конкретного объекта.
Если предоставлено определение ресурса, значение metadata.name из resource_definition переопределит этот параметр.
namespace
строка
Используется для указания пространства имен объекта.
Полезно при создании, удалении или поиске объекта без предоставления полного определения ресурса.
Используется в сочетании с api_version, kind и name для идентификации конкретного объекта.
Если предоставлено определение ресурса, значение metadata.namespace из resource_definition переопределит этот параметр.
password
строка
Укажите пароль для аутентификации с API. Также можно указать через переменную окружения K8S_AUTH_PASSWORD.
Пожалуйста, ознакомьтесь с описанием параметра username для обсуждения случаев, когда используется этот параметр.
persist_config
логическое
    Варианты:
  • нет
  • да
Сохранять ли токены обновления kube конфигурации. Также можно указать через переменную окружения K8S_AUTH_PERSIST_CONFIG.
Когда контекст k8s использует учетные данные пользователя с токенами обновления (например, oidc или gke/gcloud auth), токен обновляется библиотекой k8s python, но по умолчанию не сохраняется. Таким образом, старый токен обновления может истечь, и следующая аутентификация может завершиться неудачей. Установка этого флага в значение true сообщит библиотеке k8s python о необходимости сохранения нового токена обновления в файл конфигурации kube.
Значение по умолчанию - false.
Обратите внимание, что текущая версия библиотеки k8s python пока не поддерживает установку этого флага в значение True.
Исправление для этой библиотеки k8s python находится здесь: https://github.com/kubernetes-client/python-base/pull/169
proxy
строка
URL HTTP-прокси, который нужно использовать для подключения. Также можно указать через переменную окружения K8S_AUTH_PROXY.
Обратите внимание, что этот модуль не использует типичные настройки прокси из окружения (например, HTTP_PROXY).
replicas
целое число / обязательно
Желаемое количество реплик.
resource_definition
строка
Укажите допустимое YAML-определение (в виде строки, списка или словаря) для объекта при создании или обновлении.
ПРИМЕЧАНИЕ: kind, api_version, name и namespace будут переопределены соответствующими значениями, найденными в предоставленном resource_definition.

псевдонимы: definition, inline
resource_version
строка
Попытка масштабирования выполняется только если текущая версия объекта совпадает.
src
путь
Укажите путь к файлу, содержащему допустимое YAML-определение объекта или объектов для создания или обновления. Взаимоисключающее с resource_definition. ПРИМЕЧАНИЕ: kind, api_version, name и namespace будут переопределены соответствующими значениями, найденными в конфигурации, считанной из файла src.
Чтение из локальной файловой системы. Для чтения из файловой системы контроллера Ansible, включая зашифрованные файлы, используйте плагин поиска файла или плагин поиска шаблонов, в сочетании с фильтром from_yaml и передайте результат в resource_definition. См. примеры ниже.
Взаимоисключающее с template в случае модуля k8s.
username
строка
Укажите имя пользователя для аутентификации с API. Также можно указать через переменную окружения K8S_AUTH_USERNAME.
Обратите внимание, что это работает только с кластерами, настроенными на использование HTTP Basic Auth. Если ваш кластер использует другой тип аутентификации (например, OAuth2 в OpenShift), этот параметр не будет работать должным образом, и вам следует изучить модуль k8s_auth, так как он может сделать то, что вам нужно.
validate_certs
логическое
    Варианты:
  • нет
  • да
Производить ли проверку SSL-сертификатов сервера API. Также можно указать через переменную окружения K8S_AUTH_VERIFY_SSL.

псевдонимы: verify_ssl
wait
логическое
    Варианты:
  • нет
  • да ←
Для Deployment, ReplicaSet, Replication Controller, ожидание изменения значения статуса ready_replicas на количество replicas. В случае с Job, этот параметр игнорируется.
wait_timeout
целое число
По умолчанию:
20
Когда wait равно True, количество секунд ожидания статуса ready_replicas для достижения значения replicas. Если статус не достигнут в отведенное время, произойдет ошибка. В случае с Job, этот параметр игнорируется.

Примечания

Примечание

  • Клиент OpenShift для Python оборачивает клиент K8s для Python, предоставляя полный доступ ко всем API и моделям, доступным на обеих платформах. Подробную информацию о версии API и дополнительную информацию см. на странице https://github.com/openshift/openshift-restclient-python
  • Чтобы избежать ошибок проверки сертификатов SSL, когда validate_certs равно True, необходимо предоставить полный цепочку сертификатов для сервера API через ca_cert или в файле kubeconfig.

Примеры

- name: Scale deployment up, and extend timeout
  community.kubernetes.k8s_scale:
    api_version: v1
    kind: Deployment
    name: elastic
    namespace: myproject
    replicas: 3
    wait_timeout: 60

- name: Scale deployment down when current replicas match
  community.kubernetes.k8s_scale:
    api_version: v1
    kind: Deployment
    name: elastic
    namespace: myproject
    current_replicas: 3
    replicas: 2

- name: Increase job parallelism
  community.kubernetes.k8s_scale:
    api_version: batch/v1
    kind: job
    name: pi-with-timeout
    namespace: testing
    replicas: 2

# Match object using local file or inline definition

- name: Scale deployment based on a file from the local filesystem
  community.kubernetes.k8s_scale:
    src: /myproject/elastic_deployment.yml
    replicas: 3
    wait: no

- name: Scale deployment based on a template output
  community.kubernetes.k8s_scale:
    resource_definition: "{{ lookup('template', '/myproject/elastic_deployment.yml') | from_yaml }}"
    replicas: 3
    wait: no

- name: Scale deployment based on a file from the Ansible controller filesystem
  community.kubernetes.k8s_scale:
    resource_definition: "{{ lookup('file', '/myproject/elastic_deployment.yml') | from_yaml }}"
    replicas: 3
    wait: no

Значения возврата

Общие значения возврата документированы здесь, следующие поля уникальны для данного модуля:

Ключ Возвращаемое значение Описание
result
complex
успех
Если изменения были внесены, вернёт изменённый объект, в противном случае вернёт существующий объект.

api_version
строка
успех
Версионированный схематический вид представления объекта.

duration
целое число
когда wait равно true
Время выполнения задачи в секундах.

Пример:
48
kind
строка
успех
Представляет REST-ресурс, который представляет этот объект.

metadata
complex
успех
Стандартные метаданные объекта. Включают имя, пространство имён, аннотации, метки и т. д.

spec
complex
успех
Конкретные атрибуты объекта. Будут различаться в зависимости от api_version и kind.

status
complex
успех
Текущие данные состояния объекта.



Авторы

  • Chris Houseknecht (@chouseknecht)
  • Fabian von Feilitzsch (@fabianvf)

© 2012–2018 Michael DeHaan
© 2018–2021 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.11/collections/community/kubernetes/k8s_scale_module.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API