Модуль google.cloud.gcp_compute_region_autoscaler — создание RegionAutoscaler в GCP
Примечание
Этот модуль входит в коллекцию google.cloud (версия 1.13.0).
Возможно, эта коллекция уже установлена, если вы используете пакет ansible. Она не включена в ansible-core. Чтобы проверить, установлена ли она, выполните ansible-galaxy collection list.
Чтобы установить её, используйте: ansible-galaxy collection install google.cloud. Для работы с этим модулем требуются дополнительные компоненты. Подробнее см. в разделе Требования.
Чтобы использовать модуль в плейбуке, укажите: google.cloud.gcp_compute_region_autoscaler.
Краткое описание
- Представляет ресурс Autoscaler.
- Автомасштабирование позволяет автоматически масштабировать виртуальные машины в управляемых группах экземпляров в соответствии с заданной политикой автомасштабирования.
Требования
На узле, выполняющем этот модуль, должны быть установлены перечисленные ниже компоненты.
- python >= 2.6
- requests >= 2.18.4
- google-auth >= 1.3.0
Параметры
Параметр | Комментарии |
|---|---|
access_token string | Токен доступа OAuth2, если выбран тип учётных данных accesstoken. |
auth_kind string / обязательный | Тип используемых учётных данных. Варианты:
|
autoscaling_policy dictionary / обязательный | Параметры настройки алгоритма автомасштабирования. Для автоскейлера можно задать одну или несколько политик: cpuUtilization, customMetricUtilizations и loadBalancingUtilization. Если не указана ни одна из этих политик, по умолчанию автомасштабирование выполняется на основе cpuUtilization со значением 0.6, или 60 %. |
|
cool_down_period_sec integer |
Количество секунд, которое автоскейлер должен ждать перед началом сбора данных с нового экземпляра. Это предотвращает сбор данных во время инициализации экземпляра, когда полученные показатели использования ненадёжны. По умолчанию автоскейлер ждёт 60 секунд. Время инициализации виртуальной машины может различаться из-за множества факторов. Рекомендуем проверить, сколько времени требуется экземпляру для инициализации. Для этого создайте экземпляр и замерьте время запуска. По умолчанию: |
|
cpu_utilization dictionary |
Определяет политику использования ЦП, которая позволяет автоскейлеру масштабировать управляемую группу экземпляров на основе среднего использования ЦП. |
|
predictive_method string |
Указывает, включено ли прогнозное автомасштабирование на основе показателя ЦП. Допустимые значения: - NONE (по умолчанию). Прогнозный метод не используется. Автоскейлер масштабирует группу для удовлетворения текущего спроса, опираясь на метрики в реальном времени. - OPTIMIZE_AVAILABILITY. Прогнозное автомасштабирование повышает доступность, отслеживая ежедневные и еженедельные закономерности нагрузки и увеличивая масштаб до ожидаемого роста спроса. По умолчанию: |
|
utilization_target string |
Целевое использование ЦП, которое должен поддерживать автоскейлер. Должно быть числом с плавающей точкой в диапазоне (0, 1]. Если значение не указано, по умолчанию используется 0.6. Если уровень использования ЦП ниже целевого, автоскейлер уменьшает количество экземпляров, пока не достигнет указанного минимального количества экземпляров или пока среднее использование ЦП экземплярами не достигнет целевого значения. Если среднее использование ЦП выше целевого, автоскейлер увеличивает количество экземпляров, пока не достигнет указанного максимального количества экземпляров или пока среднее использование не достигнет целевого значения. |
|
custom_metric_utilizations list / elements=dictionary |
Параметры настройки автомасштабирования на основе пользовательской метрики. |
|
metric string / обязательный |
Идентификатор (тип) метрики Stackdriver Monitoring. Значение метрики не может быть отрицательным. Тип значения метрики должен быть INT64 или DOUBLE. |
|
utilization_target string |
Целевое значение метрики, которое должен поддерживать автоскейлер. Значение должно быть положительным. Метрика использования масштабирует количество виртуальных машин, обрабатывающих запросы, пропорционально увеличивая или уменьшая его в соответствии со значением метрики. Например, в качестве utilizationTarget можно использовать метрику www.googleapis.com/compute/instance/network/received_bytes_count. Автоскейлер будет поддерживать постоянное значение этой метрики для каждого экземпляра. |
|
utilization_target_type string |
Определяет формат задания целевого значения для метрики Stackdriver Monitoring. Допустимые варианты: «GAUGE», «DELTA_PER_SECOND», «DELTA_PER_MINUTE» |
|
load_balancing_utilization dictionary |
Параметры настройки автомасштабирования на основе балансировщика нагрузки. |
|
utilization_target string |
Доля использования ёмкости серверной части (задаётся в конфигурации балансировки нагрузки HTTP(S)), которую должен поддерживать автоскейлер. Должна быть положительным числом с плавающей точкой. Если значение не задано, по умолчанию используется 0.8. |
|
max_num_replicas integer / обязательный |
Максимальное количество экземпляров, до которого автоскейлер может увеличить масштаб. Параметр обязателен при создании или обновлении автоскейлера. Максимальное количество реплик не должно быть меньше минимального. |
|
min_num_replicas integer |
Минимальное количество реплик, до которого автоскейлер может уменьшить масштаб. Значение не может быть меньше 0. Если параметр не задан, автоскейлер выберет значение по умолчанию в зависимости от допустимого максимального количества экземпляров. |
|
mode string |
Определяет режим работы этой политики. Допустимые варианты: «OFF», «ONLY_UP», «ON» По умолчанию: |
|
scale_in_control dictionary |
Определяет параметры уменьшения масштаба, снижающие риск задержек отклика и сбоев из-за резкого уменьшения числа экземпляров. |
|
max_scaled_in_replicas dictionary |
Вложенный объект ресурса. |
|
fixed integer |
Задаёт фиксированное количество экземпляров виртуальных машин. Значение должно быть положительным целым числом. |
|
percent integer |
Задаёт долю экземпляров от 0 до 100 % включительно. Например, укажите 80 для значения 80 %. |
|
time_window_sec integer |
За какой период автомасштабирование должно учитывать данные при вычислении рекомендаций с директивами о более медленном уменьшении масштаба, как описано выше. |
description string | Необязательное описание этого ресурса. |
env_type string | Указывает среду Ansible, в которой выполняется этот модуль. Не задавайте этот параметр, если не знаете, что делаете. Он изменяет только строку User Agent для запросов к API. |
name string / обязательный | Имя ресурса. Имя должно содержать от 1 до 63 символов и соответствовать регулярному выражению `[a-z]([-a-z0-9]*[a-z0-9])?`: первый символ должен быть строчной латинской буквой, а все последующие символы — дефисом, строчной латинской буквой или цифрой; последний символ не может быть дефисом. |
project string | Проект Google Cloud Platform, который следует использовать. |
region string / обязательный | URL региона, в котором находится группа экземпляров. |
scopes list / elements=string | Массив используемых областей доступа |
service_account_contents jsonarg | Содержимое JSON-файла сервисного аккаунта в виде словаря или JSON-строки, представляющей этот словарь. |
service_account_email string | Необязательный адрес электронной почты сервисного аккаунта, если выбран machineaccount и пользователь не хочет использовать адрес по умолчанию. |
service_account_file path | Путь к JSON-файлу сервисного аккаунта, если в качестве типа выбран serviceaccount. |
state string | Должен ли указанный объект существовать в GCP Варианты:
|
target string / обязательный | URL управляемой группы экземпляров, масштабируемой этим автоскейлером. |
Примечания
Примечание
- Справочник API: https://cloud.google.com/compute/docs/reference/rest/v1/regionAutoscalers
- Автомасштабирование групп экземпляров: 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 region instance group manager
google.cloud.gcp_compute_region_instance_group_manager:
name: "{{ resource_name }}"
base_instance_name: test1-child
region: us-central1
instance_template: "{{ instancetemplate }}"
target_size: 3
project: "{{ gcp_project }}"
auth_kind: "{{ gcp_cred_kind }}"
service_account_file: "{{ gcp_cred_file }}"
state: present
register: igrm
- name: create a region autoscaler
google.cloud.gcp_compute_region_autoscaler:
name: my-region-autoscaler
region: us-central1
autoscaling_policy:
min_num_replicas: 1
max_num_replicas: 5
cool_down_period_sec: 60
cpu_utilization:
utilization_target: 0.5
target: "{{igrm.selfLink}}"
project: test_project
auth_kind: serviceaccount
service_account_file: "/tmp/auth.pem"
state: present
Возвращаемые значения
Общие возвращаемые значения описаны здесь, далее перечислены поля, уникальные для этого модуля:
Ключ | Описание |
|---|---|
autoscalingPolicy complex | Параметры конфигурации алгоритма автомасштабирования. Для автомасштабировщика можно определить одну или несколько политик: cpuUtilization, customMetricUtilizations и loadBalancingUtilization. Если ни одна из них не указана, по умолчанию автомасштабирование выполняется на основе cpuUtilization со значением 0.6, или 60%. Возвращается: при успешном выполнении |
|
coolDownPeriodSec integer |
Количество секунд, которое автомасштабировщик должен подождать, прежде чем начать собирать информацию о новом экземпляре. Это предотвращает сбор информации во время инициализации экземпляра, когда собранные данные об использовании ресурсов ненадёжны. По умолчанию автомасштабировщик ожидает 60 секунд. Время инициализации виртуальной машины может различаться по многим причинам. Рекомендуется проверить, сколько времени может занять инициализация экземпляра. Для этого создайте экземпляр и измерьте время запуска. Возвращается: при успешном выполнении |
|
cpuUtilization complex |
Определяет политику использования ЦП, позволяющую автомасштабировщику масштабировать группу управляемых экземпляров на основе среднего использования ЦП. Возвращается: при успешном выполнении |
|
predictiveMethod string |
Указывает, включено ли прогнозное автомасштабирование на основе метрики ЦП. Допустимые значения: - NONE (по умолчанию). Прогнозный метод не используется. Автомасштабировщик масштабирует группу для удовлетворения текущего спроса на основе метрик в реальном времени. - OPTIMIZE_AVAILABILITY. Прогнозное автомасштабирование повышает доступность, отслеживая ежедневные и еженедельные закономерности нагрузки и заранее масштабируя систему перед ожидаемым увеличением спроса. Возвращается: при успешном выполнении |
|
utilizationTarget string |
Целевой уровень использования ЦП, который должен поддерживать автомасштабировщик. Значение должно быть числом с плавающей запятой в диапазоне (0, 1]. Если значение не указано, по умолчанию используется 0.6. Если уровень использования ЦП ниже целевого, автомасштабировщик уменьшает количество экземпляров, пока не достигнет указанного вами минимального количества экземпляров или пока средний уровень использования ЦП экземплярами не достигнет целевого значения. Если средний уровень использования ЦП выше целевого, автомасштабировщик увеличивает количество экземпляров, пока не достигнет указанного вами максимального количества экземпляров или пока средний уровень использования не достигнет целевого значения. Возвращается: при успешном выполнении |
|
customMetricUtilizations complex |
Параметры конфигурации автомасштабирования на основе пользовательской метрики. Возвращается: при успешном выполнении |
|
metric string |
Идентификатор (тип) метрики Stackdriver Monitoring. Метрика не может иметь отрицательные значения. Тип значения метрики должен быть INT64 или DOUBLE. Возвращается: при успешном выполнении |
|
utilizationTarget string |
Целевое значение метрики, которое должен поддерживать автомасштабировщик. Оно должно быть положительным. Метрика использования ресурсов масштабирует количество виртуальных машин, обрабатывающих запросы, пропорционально увеличивая или уменьшая его в соответствии со значением метрики. Например, в качестве utilizationTarget можно использовать метрику www.googleapis.com/compute/instance/network/received_bytes_count. Автомасштабировщик будет поддерживать постоянное значение этой метрики для каждого экземпляра. Возвращается: при успешном выполнении |
|
utilizationTargetType string |
Определяет способ представления целевого значения использования ресурсов для метрики Stackdriver Monitoring. Возвращается: при успешном выполнении |
|
loadBalancingUtilization complex |
Параметры конфигурации автомасштабирования на основе балансировщика нагрузки. Возвращается: при успешном выполнении |
|
utilizationTarget string |
Доля использования ёмкости серверной части (задаётся в конфигурации балансировки нагрузки HTTP(S)), которую должен поддерживать автомасштабировщик. Должна быть положительным числом с плавающей запятой. Если значение не задано, по умолчанию используется 0.8. Возвращается: при успешном выполнении |
|
maxNumReplicas integer |
Максимальное количество экземпляров, до которого автомасштабировщик может увеличить группу. Этот параметр необходимо указать при создании или обновлении автомасштабировщика. Максимальное количество реплик не должно быть меньше минимального. Возвращается: при успешном выполнении |
|
minNumReplicas integer |
Минимальное количество реплик, до которого автомасштабировщик может уменьшить группу. Значение не может быть меньше 0. Если параметр не указан, автомасштабировщик выберет значение по умолчанию в зависимости от допустимого максимального количества экземпляров. Возвращается: при успешном выполнении |
|
mode string |
Определяет режим работы этой политики. Возвращается: при успешном выполнении |
|
scaleInControl complex |
Определяет параметры управления уменьшением масштаба, чтобы снизить риск увеличения задержки ответа и сбоев из-за резкого уменьшения масштаба. Возвращается: при успешном выполнении |
|
maxScaledInReplicas complex |
Вложенный объект ресурса. Возвращается: при успешном выполнении |
|
fixed integer |
Задаёт фиксированное количество экземпляров ВМ. Должно быть положительным целым числом. Возвращается: при успешном выполнении |
|
percent integer |
Задаёт процент экземпляров в диапазоне от 0 до 100 включительно. Например, укажите 80 для 80%. Возвращается: при успешном выполнении |
|
timeWindowSec integer |
Период, за который автомасштабировщик учитывает данные при вычислении рекомендаций, включая описанные выше указания по более медленному уменьшению масштаба. Возвращается: при успешном выполнении |
creationTimestamp string | Время создания в текстовом формате RFC3339. Возвращается: при успешном выполнении |
description string | Необязательное описание этого ресурса. Возвращается: при успешном выполнении |
id integer | Уникальный идентификатор ресурса. Возвращается: при успешном выполнении |
name string | Имя ресурса. Имя должно содержать от 1 до 63 символов и соответствовать регулярному выражению `[a-z]([-a-z0-9]*[a-z0-9])?`: первый символ должен быть строчной буквой, а все последующие символы — дефисом, строчной буквой или цифрой; последний символ не может быть дефисом. Возвращается: при успешном выполнении |
region string | URL региона, в котором находится группа экземпляров. Возвращается: при успешном выполнении |
target string | URL группы управляемых экземпляров, масштабируемой этим автомасштабировщиком. Возвращается: при успешном выполнении |
Ссылки на коллекцию
© 2012–2018 Michael DeHaan
© 2018–2025 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/projects/ansible/latest/collections/google/cloud/gcp_compute_region_autoscaler_module.html