Модуль google.cloud.gcp_compute_autoscaler – Создаёт масштабируемую группу GCP
Примечание
Этот модуль входит в коллекцию google.cloud (версия 1.4.1).
Возможно, эта коллекция уже установлена, если вы используете пакет ansible. Она не включена в ansible-core. Чтобы проверить установку, выполните ansible-galaxy collection list.
Для установки используйте: ansible-galaxy collection install google.cloud. Для использования этого модуля необходимы дополнительные требования. Подробности см. в разделе Требования.
Для использования в плейбуке укажите: google.cloud.gcp_compute_autoscaler.
Обзор
- Представляет ресурс Автомасштабирования.
- Автомасштабирование позволяет автоматически масштабировать виртуальные машины в управляемых группах виртуальных машин в соответствии с политикой автоматического масштабирования, которую вы определяете.
Требования
Ниже перечислены требования к хосту, на котором выполняется этот модуль.
- python >= 2.6
- requests >= 2.18.4
- google-auth >= 1.3.0
Параметры
Параметр | Комментарии |
|---|---|
access_token строка | Токен доступа OAuth2, если тип аутентификации accesstoken. |
auth_kind строка / обязательно | Тип используемых учетных данных. Варианты:
|
autoscaling_policy словарь / обязательно | Параметры конфигурации для алгоритма автоматического масштабирования. Можно определить один или несколько политик для автомасштабирования: cpuUtilization, customMetricUtilizations и loadBalancingUtilization. Если ни одна из этих политик не указана, по умолчанию будет происходить автомасштабирование на основе cpuUtilization до 0,6 или 60%. |
|
cool_down_period_sec псевдонимы: cooldownPeriod целое число |
Количество секунд, которое автомасштабировщик должен ждать, прежде чем начать сбор информации с нового экземпляра. Это предотвращает сбор информации во время инициализации экземпляра, когда собранные данные использования могут быть ненадежными. По умолчанию автомасштабировщик ожидает 60 секунд. Время инициализации виртуальных машин может варьироваться из-за множества факторов. Рекомендуется протестировать, сколько времени может потребоваться для инициализации экземпляра. Для этого создайте экземпляр и замерьте процесс запуска. По умолчанию: |
|
cpu_utilization словарь |
Определяет политику использования ЦП, которая позволяет автомасштабировщику масштабироваться на основе среднего использования ЦП управляемой группы экземпляров. |
|
predictive_method строка |
Указывает, включено ли предсказательное автомасштабирование на основе метрики ЦП. Допустимые значения: - NONE (по умолчанию). Предсказательный метод не используется. Автомасштабировщик масштабирует группу в соответствии с текущим спросом на основе метрик в реальном времени.
По умолчанию: |
|
utilization_target псевдонимы: target строка |
Целевое использование ЦП, которое должен поддерживать автомасштабировщик. Должно быть число с плавающей точкой в диапазоне (0, 1]. Если не указано, по умолчанию значение равно 0,6. Если уровень ЦП ниже целевого использования, автомасштабировщик уменьшает количество экземпляров до минимального числа, указанного вами, или до тех пор, пока среднее использование ЦП ваших экземпляров не достигнет целевого значения. Если среднее использование ЦП выше целевого значения, автомасштабировщик увеличивает масштаб до максимального числа экземпляров, указанного вами, или до тех пор, пока среднее использование не достигнет целевого значения. |
|
custom_metric_utilizations псевдонимы: metric список / элементы=словарь |
Параметры конфигурации автомасштабирования на основе пользовательской метрики. |
|
metric псевдонимы: name строка / обязательно |
Идентификатор (тип) метрики Stackdriver Monitoring. Метрика не может иметь отрицательных значений. Метрика должна иметь тип значения INT64 или DOUBLE. |
|
utilization_target псевдонимы: target строка |
Целевое значение метрики, которое должен поддерживать автомасштабировщик. Это значение должно быть положительным. Метрика использования масштабирует количество виртуальных машин, обрабатывающих запросы, для увеличения или уменьшения пропорционально метрике. Например, хорошей метрикой для использования в качестве utilizationTarget является www.googleapis.com/compute/instance/network/received_bytes_count. Автомасштабировщик будет стремиться поддерживать это значение постоянным для каждого экземпляра. |
|
utilization_target_type псевдонимы: type строка |
Определяет, как целевое значение использования выражается для метрики Stackdriver Monitoring. Некоторые допустимые значения: “GAUGE”, “DELTA_PER_SECOND”, “DELTA_PER_MINUTE” |
|
load_balancing_utilization словарь |
Параметры конфигурации автомасштабирования на основе балансировщика нагрузки. |
|
utilization_target псевдонимы: target строка |
Доля использования пропускной способности бэкенда (установленная в конфигурации балансировки HTTP(s)) которую автомасштабировщик должен поддерживать. Должно быть положительным значением с плавающей точкой. Если не определено, по умолчанию значение равно 0,8. |
|
max_num_replicas псевдонимы: maxReplicas целое число / обязательно |
Максимальное количество экземпляров, до которого автомасштабировщик может увеличить масштаб. Это необходимо при создании или обновлении автомасштабировщика. Максимальное количество реплик не должно быть меньше минимального. |
|
min_num_replicas aliases: minReplicas целое число |
Минимальное количество реплик, до которого автомасштабирование может уменьшить количество экземпляров. Значение не может быть меньше 0. Если не указано, автомасштабирование выберет значение по умолчанию, в зависимости от максимального количества разрешенных экземпляров. |
|
mode строка |
Определяет режим работы этой политики. Некоторые допустимые значения: “OFF”, “ONLY_UP”, “ON” По умолчанию: |
|
scale_in_control словарь |
Определяет параметры управления уменьшением масштаба, чтобы снизить риск задержек и простоев из-за резких событий уменьшения масштаба. |
|
max_scaled_in_replicas словарь |
Вложенный ресурс. |
|
fixed целое число |
Указывает фиксированное количество виртуальных машин. Должно быть положительным целым числом. |
|
percent целое число |
Указывает процент экземпляров от 0 до 100% включительно. Например, укажите 80 для 80%. |
|
time_window_sec целое число |
Время, за которое автомасштабирование должно анализировать данные при вычислении рекомендаций, чтобы учесть инструкции о более медленном уменьшении масштаба, как описано выше. |
description строка | Необязательное описание этого ресурса. |
env_type строка | Указывает, в какой среде Ansible выполняется этот модуль. Не устанавливайте это значение, если вы не знаете, что делаете. Это изменяет только строку User Agent для любых запросов к API. |
name строка / обязательно | Имя ресурса. Длина имени должна быть от 1 до 63 символов и соответствовать регулярному выражению `[a-z]([-a-z0-9]*[a-z0-9])?`, что означает, что первый символ должен быть строчной буквой, а все последующие символы должны быть тире, строчной буквой или цифрой, за исключением последнего символа, который не может быть тире. |
project строка | Используемый проект Google Cloud Platform. |
scopes список / элементы=строка | Массив используемых областей. |
service_account_contents jsonarg | Содержимое файла JSON учетной записи службы, либо в виде словаря, либо в виде JSON-строки, которая его представляет. |
service_account_email строка | Необязательный адрес электронной почты учетной записи службы, если выбран machineaccount и пользователь не хочет использовать адрес по умолчанию. |
service_account_file путь | Путь к файлу JSON учетной записи службы, если serviceaccount выбран в качестве типа. |
state строка | Необходимо ли наличие данного объекта в GCP Варианты:
|
target словарь / обязательно | URL управляемой группы экземпляров, масштабирование которой будет выполнять этот автомасштабировщик. Это поле представляет ссылку на ресурс InstanceGroupManager в GCP. Его можно указать двумя способами. Во-первых, можно поместить словарь с ключом ‘selfLink’ и значением selfLink вашего ресурса. Во-вторых, можно добавить `register: name-of-resource` к задаче gcp_compute_instance_group_manager, а затем установить это поле target в значение “{{ name-of-resource }}”. |
zone строка / обязательно | URL зоны, в которой находится группа экземпляров. |
Примечания
Примечание
- Ссылка на API: https://cloud.google.com/compute/docs/reference/rest/v1/autoscalers
- Группы автомасштабирования экземпляров: https://cloud.google.com/compute/docs/autoscaler/
- для аутентификации можно установить service_account_file с использованием переменной среды
GCP_SERVICE_ACCOUNT_FILE. - для аутентификации можно установить service_account_contents с использованием переменной среды
GCP_SERVICE_ACCOUNT_CONTENTS. - для аутентификации можно установить service_account_email с использованием переменной среды
GCP_SERVICE_ACCOUNT_EMAIL. - для аутентификации можно установить access_token с использованием переменной среды
GCP_ACCESS_TOKEN. - для аутентификации можно установить auth_kind с использованием переменной среды
GCP_AUTH_KIND. - для аутентификации можно установить scopes с использованием переменной среды
GCP_SCOPES. - Значения переменных среды будут использоваться только в том случае, если значения в плейбуке не заданы.
- Параметры service_account_email и service_account_file взаимоисключающие.
Примеры
- name: create a network
google.cloud.gcp_compute_network:
name: network-instancetemplate
project: "{{ gcp_project }}"
auth_kind: "{{ gcp_cred_kind }}"
service_account_file: "{{ gcp_cred_file }}"
state: present
register: network
- name: create a address
google.cloud.gcp_compute_address:
name: address-instancetemplate
region: us-central1
project: "{{ gcp_project }}"
auth_kind: "{{ gcp_cred_kind }}"
service_account_file: "{{ gcp_cred_file }}"
state: present
register: address
- name: create a instance template
google.cloud.gcp_compute_instance_template:
name: "{{ resource_name }}"
properties:
disks:
- auto_delete: 'true'
boot: 'true'
initialize_params:
source_image: projects/ubuntu-os-cloud/global/images/family/ubuntu-1604-lts
machine_type: n1-standard-1
network_interfaces:
- network: "{{ network }}"
access_configs:
- name: test-config
type: ONE_TO_ONE_NAT
nat_ip: "{{ address }}"
project: "{{ gcp_project }}"
auth_kind: "{{ gcp_cred_kind }}"
service_account_file: "{{ gcp_cred_file }}"
state: present
register: instancetemplate
- name: create a instance group manager
google.cloud.gcp_compute_instance_group_manager:
name: "{{ resource_name }}"
base_instance_name: test1-child
instance_template: "{{ instancetemplate }}"
target_size: 3
zone: us-central1-a
project: "{{ gcp_project }}"
auth_kind: "{{ gcp_cred_kind }}"
service_account_file: "{{ gcp_cred_file }}"
state: present
register: igm
- name: create a autoscaler
google.cloud.gcp_compute_autoscaler:
name: test_object
zone: us-central1-a
target: "{{ igm }}"
autoscaling_policy:
max_num_replicas: 5
min_num_replicas: 1
cool_down_period_sec: 60
cpu_utilization:
utilization_target: 0.5
project: test_project
auth_kind: serviceaccount
service_account_file: "/tmp/auth.pem"
state: present
Значения возврата
Общие значения возврата документированы здесь, ниже приведены поля, уникальные для данного модуля:
Ключ | Описание |
|---|---|
autoscalingPolicy сложное | Параметры конфигурации для алгоритма автоматического масштабирования. Можно определить одну или несколько политик для автоматического масштабирования: cpuUtilization, customMetricUtilizations и loadBalancingUtilization. Если ни одна из этих политик не указана, по умолчанию будет использоваться автоматическое масштабирование на основе cpuUtilization до 0,6 или 60%. Возвращаемое значение: success |
|
coolDownPeriodSec целое число |
Количество секунд, которое автоматическое масштабирование должно ждать, прежде чем начать собирать информацию с нового экземпляра. Это предотвращает сбор информации автоматическим масштабированием при инициализации экземпляра, когда собранные данные использования будут ненадежными. По умолчанию автоматическое масштабирование ожидает 60 секунд. Время инициализации виртуальных машин может меняться из-за множества факторов. Рекомендуется протестировать время, необходимое для инициализации экземпляра. Для этого создайте экземпляр и измерьте время процесса запуска. Возвращаемое значение: success |
|
cpuUtilization сложное |
Определяет политику использования ЦП, которая позволяет автоматическому масштабированию масштабироваться на основе среднего использования ЦП в группе управляемых экземпляров. Возвращаемое значение: success |
|
predictiveMethod строка |
Указывает, включено ли предсказательное автоматическое масштабирование на основе метрики ЦП. Допустимые значения: - NONE (по умолчанию). Предсказательный метод не используется. Автоматическое масштабирование масштабирует группу для удовлетворения текущего спроса на основе метрик в реальном времени.
Возвращаемое значение: success |
|
utilizationTarget строка |
Целевое использование ЦП, которое автоматическое масштабирование должно поддерживать. Должно быть числом с плавающей точкой в диапазоне (0, 1]. Если не указано, по умолчанию значение равно 0,6. Если уровень ЦП ниже целевого использования, автоматическое масштабирование уменьшает количество экземпляров до минимального, заданного вами, или до тех пор, пока среднее использование ЦП ваших экземпляров не достигнет целевого значения. Если среднее использование ЦП выше целевого, автоматическое масштабирование увеличивает количество экземпляров до максимального, заданного вами, или до тех пор, пока среднее использование не достигнет целевого значения. Возвращаемое значение: success |
|
customMetricUtilizations сложное |
Параметры конфигурации автоматического масштабирования на основе пользовательской метрики. Возвращаемое значение: success |
|
metric строка |
Идентификатор (тип) метрики Stackdriver Monitoring. Метрика не может иметь отрицательных значений. Метрика должна иметь тип значения INT64 или DOUBLE. Возвращаемое значение: success |
|
utilizationTarget строка |
Целевое значение метрики, которое автоматическое масштабирование должно поддерживать. Это значение должно быть положительным. Метрика использования масштабирует количество виртуальных машин, обрабатывающих запросы, для увеличения или уменьшения пропорционально метрике. Например, хорошей метрикой для использования в качестве utilizationTarget является www.googleapis.com/compute/instance/network/received_bytes_count. Автоматическое масштабирование будет стремиться поддерживать это значение постоянным для каждого экземпляра. Возвращаемое значение: success |
|
utilizationTargetType строка |
Определяет, как выражается целевое значение использования для метрики Stackdriver Monitoring. Возвращаемое значение: success |
|
loadBalancingUtilization сложное |
Параметры конфигурации автоматического масштабирования на основе балансировщика нагрузки. Возвращаемое значение: success |
|
utilizationTarget строка |
Доля использования ресурсов бэкенда (установленная в конфигурации HTTP(s) балансировщика нагрузки), которую автоматическое масштабирование должно поддерживать. Должно быть положительным числом с плавающей точкой. Если не определено, по умолчанию значение равно 0,8. Возвращаемое значение: success |
|
maxNumReplicas целое число |
Максимальное количество экземпляров, до которого автоматическое масштабирование может масштабироваться. Это поле необходимо при создании или обновлении автоматического масштабирования. Максимальное количество реплик не должно быть меньше минимального. Возвращаемое значение: success |
|
minNumReplicas целое число |
Минимальное количество реплик, до которого автоматическое масштабирование может масштабироваться вниз. Не может быть меньше 0. Если не указано, автоматическое масштабирование выберет значение по умолчанию в зависимости от максимального допустимого количества экземпляров. Возвращаемое значение: success |
|
mode строка |
Определяет режим работы для этой политики. Возвращаемое значение: success |
|
scaleInControl сложное |
Определяет параметры управления уменьшением масштаба для снижения риска задержки ответа и простоев из-за резких событий уменьшения масштаба. Возвращаемое значение: success |
|
максScaledInReplicas сложное |
Вложенный ресурс объекта. Возвращено: успешно |
|
fixed целое число |
Устанавливает фиксированное количество виртуальных машин. Это должно быть положительное целое число. Возвращено: успешно |
|
percent целое число |
Устанавливает процент экземпляров от 0 до 100%, включительно. Например, укажите 80 для 80%. Возвращено: успешно |
|
timeWindowSec целое число |
Сколько времени назад система автоматического масштабирования должна анализировать данные при расчете рекомендаций, чтобы учитывать директивы о замедленном уменьшении масштаба, как описано выше. Возвращено: успешно |
creationTimestamp строка | Дата и время создания в формате RFC3339. Возвращено: успешно |
description строка | Необязательное описание этого ресурса. Возвращено: успешно |
id целое число | Уникальный идентификатор ресурса. Возвращено: успешно |
name строка | Имя ресурса. Длина имени должна быть от 1 до 63 символов и соответствовать регулярному выражению `[a-z]([-a-z0-9]*[a-z0-9])?`, что означает, что первый символ должен быть строчной буквой, а все последующие символы должны быть дефисом, строчной буквой или цифрой, за исключением последнего символа, который не может быть дефисом. Возвращено: успешно |
target словарь | URL управляемой группы экземпляров, которую будет масштабировать система автоматического масштабирования. Возвращено: успешно |
zone строка | URL зоны, в которой расположена группа экземпляров. Возвращено: успешно |
Ссылки на коллекцию
© 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/google/cloud/gcp_compute_autoscaler_module.html