Модуль 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 переопределит этот параметр. Значение по умолчанию: |
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 | Продолжать при ошибках, когда определено несколько ресурсов. Варианты:
|
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 переопределит этот параметр. |
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. Подробное описание применения этого параметра см. в описании параметра |
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 Выбор:
|
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. Выбор:
|
wait boolean | Для Deployment, ReplicaSet, Replication Controller ожидать изменения значения ready_replicas на заданное количество replicas. В случае Job этот параметр игнорируется. Выбор:
|
wait_sleep integer added in kubernetes.core 2.0.0 | Количество секунд ожидания между проверками. По умолчанию: |
wait_timeout integer | Если По умолчанию: |
Примечания
Примечание
- Чтобы избежать ошибок валидации сертификатов 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 |
Время выполнения задачи в секундах. Возвращается при: когда Пример: |
|
kind string |
Представляет REST-ресурс, который представляет этот объект. Возвращается при: success |
|
metadata complex |
Стандартные метаданные объекта. Включают имя, пространство имён, аннотации, метки и т. д. Возвращается при: success |
|
spec complex |
Уникальные атрибуты объекта. Будут отличаться в зависимости от api_version и kind. Возвращается при: success |
|
status complex |
Текущие детали статуса объекта. Возвращается при: success |
Ссылки на сборку
© 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