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