Spec-Zone.ru › Ansible

Модуль kubernetes.core.k8s_scale – Установка нового размера для Deployment, ReplicaSet, Replication Controller или Job.

Примечание

Этот модуль является частью коллекции kubernetes.core (версия 3.2.0).

Возможно, эта коллекция уже установлена, если вы используете пакет ansible. Она не включена в ansible-core. Чтобы проверить установку, выполните ansible-galaxy collection list.

Чтобы установить её, используйте: ansible-galaxy collection install kubernetes.core. Для использования этого модуля необходимы дополнительные требования, см. Требования для подробностей.

Чтобы использовать его в книге задач, укажите: kubernetes.core.k8s_scale.

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

Описание

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

Примечание

У этого модуля есть соответствующий плагин действий.

Требования

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

  • python >= 3.9
  • kubernetes >= 24.2.0
  • PyYAML >= 3.11

Параметры

Параметр

Комментарии

api_key

строка

Токен, используемый для аутентификации с API. Также может быть указан через переменную окружения K8S_AUTH_API_KEY.

api_version

псевдонимы: api, версия

строка

Используется для указания версии API.

Используется для создания, удаления или поиска объекта без предоставления полного определения ресурса.

Используется совместно с kind, name и namespace для идентификации конкретного объекта.

Если предоставлено определение ресурса, значение apiVersion из resource_definition переопределит этот параметр.

Значение по умолчанию: "v1"

ca_cert

псевдонимы: ssl_ca_cert

путь

Путь к сертификату CA, используемому для аутентификации с API. Для предотвращения ошибок проверки сертификата необходимо предоставить цепочку сертификатов целиком. Также может быть указан через переменную окружения K8S_AUTH_SSL_CA_CERT.

client_cert

псевдонимы: cert_file

путь

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

client_key

псевдонимы: key_file

путь

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

context

строка

Имя контекста, найденного в файле конфигурации. Также может быть указан через переменную окружения K8S_AUTH_CONTEXT.

continue_on_error

логический тип

добавлен в kubernetes.core 2.0.0

Продолжать при ошибках, когда определено несколько ресурсов.

Варианты:

  • false ← (значение по умолчанию)
  • true

current_replicas

целое число

Для Deployment, ReplicaSet, Replication Controller, масштабирование выполняется только если количество существующих реплик совпадает. В случае с Job, обновление параллельности происходит только если текущее значение параллельности совпадает.

host

строка

Укажите URL для доступа к API. Также может быть указан через переменную окружения K8S_AUTH_HOST.

impersonate_groups

список / элементы=строка

добавлен в kubernetes.core 2.3.0

Группа(ы) для имитации при выполнении операции.

Также может быть указан через переменную окружения K8S_AUTH_IMPERSONATE_GROUPS. Пример: Group1,Group2

impersonate_user

строка

добавлен в kubernetes.core 2.3.0

Имя пользователя для имитации при выполнении операции.

Также может быть указан через переменную окружения K8S_AUTH_IMPERSONATE_USER.

kind

строка

Используется для указания модели объекта.

Используется для создания, удаления или поиска объекта без предоставления полного определения ресурса.

Используется совместно с api_version, name и namespace для идентификации конкретного объекта.

Если предоставлено определение ресурса, значение kind из resource_definition переопределит этот параметр.

kubeconfig

любой

Путь к существующему файлу конфигурации Kubernetes. Если не указан и не заданы другие параметры подключения, клиент Kubernetes попытается загрузить файл конфигурации по умолчанию из ~/.kube/config. Также может быть указан через переменную окружения K8S_AUTH_KUBECONFIG.

Несколько файлов конфигурации Kubernetes могут быть предоставлены с использованием разделителя ‘;’ для платформы Windows или ‘:’ для других платформ.

Конфигурация Kubernetes может быть предоставлена в виде словаря. Эта функция требует версии клиента kubernetes python >= 17.17.0. Добавлено в версии 2.2.0.

label_selectors

список / элементы=строка

добавлен в kubernetes.core 2.0.0

Список селекторов меток для фильтрации результатов.

Значение по умолчанию: []

name

строка

Используется для указания имени объекта.

Используется для создания, удаления или поиска объекта без предоставления полного определения ресурса.

Используется совместно с api_version, kind и namespace для идентификации конкретного объекта.

Если предоставлено определение ресурса, значение metadata.name из resource_definition переопределит этот параметр.

namespace

строка

Используется для указания пространства имён объекта.

Полезно при создании, удалении или поиске объекта без предоставления полного определения ресурса.

Используется совместно с api_version, kind и name для идентификации конкретного объекта.

Если предоставлено определение ресурса, значение metadata.namespace из resource_definition переопределит этот параметр.

END_OF_DOCUMENT_MARKER

no_proxy

string

added in kubernetes.core 2.3.0

Список хостов/доменов/IP/CIDR, разделенных запятыми, которые не должны проходить через прокси. Также можно указать через переменную среды K8S_AUTH_NO_PROXY.

Обратите внимание, что этот модуль не подхватывает стандартные настройки прокси из среды (например, NO_PROXY).

Эта функция требует kubernetes>=19.15.0. Если библиотека kubernetes имеет версию меньше 19.15.0, происходит ошибка, даже если no_proxy указан корректно.

Пример значения: “localhost,.local,.example.com,127.0.0.1,127.0.0.0/8,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16”

password

string

Укажите пароль для аутентификации с API. Также можно указать через переменную среды K8S_AUTH_PASSWORD.

Подробное описание применения этого параметра см. в описании параметра username.

persist_config

boolean

Сохранять ли токен обновления конфигурации 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

Выбор:

  • false
  • true

proxy

string

URL HTTP-прокси, который нужно использовать для подключения. Также можно указать через переменную среды K8S_AUTH_PROXY.

Обратите внимание, что этот модуль не подхватывает стандартные настройки прокси из среды (например, HTTP_PROXY).

proxy_headers

dictionary

added in kubernetes.core 2.0.0

Заголовки, используемые для HTTP-прокси.

Документация доступна по адресу https://urllib3.readthedocs.io/en/latest/reference/urllib3.util.html?highlight=proxy_headers#urllib3.util.make_headers.

basic_auth

string

Идентификатор пользователя и пароль для заголовка basic authentication, разделенные двоеточием.

Также можно указать через переменную среды K8S_AUTH_PROXY_HEADERS_BASIC_AUTH.

proxy_basic_auth

string

Идентификатор пользователя и пароль для заголовка прокси basic authentication, разделенные двоеточием.

Также можно указать через переменную среды K8S_AUTH_PROXY_HEADERS_PROXY_BASIC_AUTH.

user_agent

string

Строка, представляющая пользователя-агента, например foo/1.0.

Также можно указать через переменную среды K8S_AUTH_PROXY_HEADERS_USER_AGENT.

replicas

integer / обязательно

Желаемое количество реплик.

resource_definition

aliases: definition, inline

string

Укажите валидное YAML-описание объекта при создании или обновлении (строка, список или словарь).

ПРИМЕЧАНИЕ: kind, api_version, name и namespace будут перезаписаны соответствующими значениями, найденными в предоставленном resource_definition.

resource_version

string

Попытаться выполнить масштабирование только в том случае, если текущая версия объекта совпадает.

src

path

Укажите путь к файлу, содержащему валидное YAML-описание объекта или объектов для создания или обновления. Взаимоисключающее с resource_definition. ПРИМЕЧАНИЕ: kind, api_version, name и namespace будут перезаписаны соответствующими значениями, прочитанными из файла src.

Считывает из локальной файловой системы. Чтобы читать из файловой системы контроллера Ansible, включая зашифрованные файлы, используйте плагин поиска файла или плагин поиска шаблона, вместе с фильтром from_yaml, и передайте результат в resource_definition. См. примеры ниже.

Ссылка на файлы манифестов, которые можно использовать для создания ресурса. Добавлен в версии 2.4.0.

Взаимоисключающий с template в случае модуля kubernetes.core.k8s.

username

string

Укажите имя пользователя для аутентификации с API. Также можно указать через переменную среды K8S_AUTH_USERNAME.

Обратите внимание, что это работает только с кластерами, настроенными для использования HTTP Basic Auth. Если ваш кластер имеет другой тип аутентификации (например, OAuth2 в OpenShift), этот параметр не будет работать должным образом, и вам следует рассмотреть модуль community.okd.k8s_auth, так как он может быть вам полезен.

validate_certs

aliases: verify_ssl

boolean

Проверять ли SSL-сертификаты сервера API. Также можно указать через переменную среды K8S_AUTH_VERIFY_SSL.

Выбор:

  • false
  • true

wait

boolean

Для Deployment, ReplicaSet, Replication Controller ожидать изменения значения ready_replicas на заданное количество replicas. В случае Job этот параметр игнорируется.

Выбор:

  • false
  • true ← (по умолчанию)

wait_sleep

integer

added in kubernetes.core 2.0.0

Количество секунд ожидания между проверками.

По умолчанию: 5

wait_timeout

integer

Если wait равно True, количество секунд ожидания, пока статус ready_replicas станет равным replicas. Если статус не будет достигнут в отведённое время, произойдёт ошибка. В случае с задачей (Job) этот параметр игнорируется.

По умолчанию: 20

Примечания

Примечание

  • Чтобы избежать ошибок валидации сертификатов SSL, когда validate_certs равно True, полная цепочка сертификатов сервера API должна быть предоставлена через ca_cert или в файле kubeconfig.

Примеры

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

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

- name: Increase job parallelism
  kubernetes.core.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
  kubernetes.core.k8s_scale:
    src: /myproject/elastic_deployment.yml
    replicas: 3
    wait: no

- name: Scale deployment based on a template output
  kubernetes.core.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
  kubernetes.core.k8s_scale:
    resource_definition: "{{ lookup('file', '/myproject/elastic_deployment.yml') | from_yaml }}"
    replicas: 3
    wait: no

- name: Scale deployment using label selectors (continue operation in case error occured on one resource)
  kubernetes.core.k8s_scale:
    replicas: 3
    kind: Deployment
    namespace: test
    label_selectors:
      - app=test
    continue_on_error: true

Возвращаемые значения

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

Ключ

Описание

result

complex

Если изменения были внесены, вернёт изменённый объект, иначе вернёт существующий объект.

Возвращается при: success

api_version

string

Версионированная схема этого представления объекта.

Возвращается при: success

duration

integer

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

Возвращается при: когда wait равно true

Пример: 48

kind

string

Представляет REST-ресурс, который представляет этот объект.

Возвращается при: success

metadata

complex

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

Возвращается при: success

spec

complex

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

Возвращается при: success

status

complex

Текущие детали статуса объекта.

Возвращается при: success

Авторы

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

Ссылки на сборку

  • Система отслеживания ошибок
  • Репозиторий (источники)

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

Spec-Zone.ru

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