Модуль google.cloud.gcp_compute_autoscaler — создание автоскейлера GCP
Примечание
Этот модуль входит в коллекцию google.cloud (версия 1.13.0).
Возможно, эта коллекция уже установлена, если вы используете пакет 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 string | Токен доступа OAuth2, если тип учетных данных — accesstoken. |
auth_kind string / обязательный | Тип используемых учетных данных. Варианты:
|
autoscaling_policy dictionary / обязательный | Параметры конфигурации алгоритма автомасштабирования. Для автоскейлера можно задать одну или несколько политик: cpuUtilization, customMetricUtilizations и loadBalancingUtilization. Если ни одна из них не указана, по умолчанию автомасштабирование будет выполняться на основе cpuUtilization до значения 0.6, или 60%. |
|
cool_down_period_sec псевдонимы: cooldownPeriod integer |
Количество секунд, которое автоскейлер должен выждать, прежде чем начать собирать информацию о новом экземпляре. Это не позволяет автоскейлеру собирать информацию во время инициализации экземпляра, когда собранные данные об использовании ресурсов могут быть ненадежными. По умолчанию автоскейлер ожидает 60 секунд. Время инициализации виртуальной машины может различаться по многим причинам. Рекомендуется проверить, сколько времени занимает инициализация экземпляра. Для этого создайте экземпляр и засеките время запуска. По умолчанию: |
|
cpu_utilization dictionary |
Задает политику использования ЦП, позволяющую автоскейлеру масштабировать группу на основе среднего использования ЦП управляемой группы экземпляров. |
|
predictive_method string |
Указывает, включено ли прогнозное автомасштабирование на основе метрики ЦП. Допустимые значения: - NONE (по умолчанию). Прогнозный метод не используется. Автоскейлер масштабирует группу в соответствии с текущей потребностью на основе метрик в реальном времени. - OPTIMIZE_AVAILABILITY. Прогнозное автомасштабирование повышает доступность, отслеживая ежедневные и еженедельные шаблоны нагрузки и заранее увеличивая масштаб в ожидании спроса. По умолчанию: |
|
utilization_target псевдонимы: target string |
Целевое использование ЦП, которое должен поддерживать автоскейлер. Должно быть числом с плавающей запятой в диапазоне (0, 1]. Если значение не указано, по умолчанию используется 0.6. Если уровень использования ЦП ниже целевого значения, автоскейлер уменьшает количество экземпляров, пока не достигнет указанного минимального количества экземпляров или пока среднее использование ЦП экземплярами не достигнет целевого значения. Если среднее использование ЦП выше целевого значения, автоскейлер увеличивает количество экземпляров, пока не достигнет указанного максимального количества экземпляров или пока среднее использование не достигнет целевого значения. |
|
custom_metric_utilizations псевдонимы: metric list / элементы=dictionary |
Параметры конфигурации автомасштабирования на основе пользовательской метрики. |
|
metric псевдонимы: name string / обязательный |
Идентификатор (тип) метрики Stackdriver Monitoring. Метрика не может иметь отрицательные значения. Тип значения метрики должен быть INT64 или DOUBLE. |
|
utilization_target псевдонимы: target string |
Целевое значение метрики, которое должен поддерживать автоскейлер. Оно должно быть положительным. Метрика использования ресурсов масштабирует количество виртуальных машин, обрабатывающих запросы, пропорционально увеличивая или уменьшая его в зависимости от метрики. Например, в качестве utilizationTarget можно использовать метрику www.googleapis.com/compute/instance/network/received_bytes_count. Автоскейлер будет поддерживать постоянное значение этой метрики для каждого экземпляра. |
|
utilization_target_type псевдонимы: type string |
Определяет способ представления целевого значения использования для метрики Stackdriver Monitoring. Допустимые варианты: «GAUGE», «DELTA_PER_SECOND», «DELTA_PER_MINUTE» |
|
load_balancing_utilization dictionary |
Параметры конфигурации автомасштабирования на основе балансировщика нагрузки. |
|
utilization_target псевдонимы: target string |
Доля использования емкости серверной части (заданной в конфигурации балансировки нагрузки HTTP(S)), которую должен поддерживать автоскейлер. Должно быть положительным числом с плавающей запятой. Если значение не задано, по умолчанию используется 0.8. |
|
max_num_replicas псевдонимы: maxReplicas integer / обязательный |
Максимальное количество экземпляров, до которого автоскейлер может увеличить группу. Этот параметр необходимо указать при создании или обновлении автоскейлера. Максимальное количество реплик не должно быть меньше минимального. |
|
min_num_replicas псевдонимы: minReplicas 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, который следует использовать. |
scopes list / элементы=string | Массив используемых областей доступа |
service_account_contents jsonarg | Содержимое JSON-файла учетной записи службы в виде словаря или JSON-строки, представляющей его. |
service_account_email string | Необязательный адрес электронной почты учетной записи службы, если выбран machineaccount и пользователь не хочет использовать адрес по умолчанию. |
service_account_file path | Путь к JSON-файлу учетной записи службы, если в качестве типа выбран serviceaccount. |
state string | Должен ли указанный объект существовать в GCP Варианты:
|
target dictionary / обязательный | URL управляемой группы экземпляров, масштабируемой этим автоскейлером. Это поле представляет ссылку на ресурс InstanceGroupManager в GCP. Его можно указать двумя способами. Во-первых, можно передать словарь с ключом ‘selfLink’ и значением selfLink ресурса. Также можно добавить `register: name-of-resource` к задаче gcp_compute_instance_group_manager, а затем задать для поля target значение “{{ name-of-resource }}” |
zone string / обязательный | 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 complex | Параметры конфигурации алгоритма автомасштабирования. Для автомасштабировщика можно задать одну или несколько политик: cpuUtilization, customMetricUtilizations и loadBalancingUtilization. Если ни одна из них не задана, по умолчанию автомасштабирование выполняется на основе cpuUtilization до значения 0.6, или 60%. Возвращается: при успехе |
|
coolDownPeriodSec integer |
Количество секунд, в течение которых автомасштабировщик должен подождать, прежде чем начать собирать информацию о новом экземпляре. Это не позволяет автомасштабировщику собирать информацию во время инициализации экземпляра, когда собранные данные об использовании ресурсов могут быть ненадёжными. По умолчанию автомасштабировщик ждёт 60 секунд. Время инициализации виртуальных машин может различаться из-за множества факторов. Рекомендуем проверить, сколько времени может занять инициализация экземпляра. Для этого создайте экземпляр и измерьте время запуска. Возвращается: при успехе |
|
cpuUtilization complex |
Задаёт политику использования CPU, которая позволяет автомасштабировщику изменять размер группы управляемых экземпляров на основе среднего использования CPU. Возвращается: при успехе |
|
predictiveMethod string |
Указывает, включено ли прогнозирующее автомасштабирование на основе метрики CPU. Допустимые значения: - NONE (по умолчанию). Прогнозирующий метод не используется. Автомасштабировщик изменяет размер группы с учётом текущей нагрузки на основе метрик в реальном времени. - OPTIMIZE_AVAILABILITY. Прогнозирующее автомасштабирование повышает доступность: отслеживает ежедневные и еженедельные шаблоны нагрузки и заранее увеличивает масштаб с учётом ожидаемого спроса. Возвращается: при успехе |
|
utilizationTarget string |
Целевое использование CPU, которое должен поддерживать автомасштабировщик. Значение должно быть числом с плавающей точкой в диапазоне (0, 1]. Если значение не задано, по умолчанию используется 0.6. Если уровень использования CPU ниже целевого, автомасштабировщик уменьшает количество экземпляров, пока не достигнет заданного минимального количества экземпляров или пока среднее использование CPU экземплярами не достигнет целевого значения. Если среднее использование CPU выше целевого, автомасштабировщик увеличивает количество экземпляров, пока не достигнет заданного максимального количества экземпляров или пока среднее использование не достигнет целевого значения. Возвращается: при успехе |
|
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])?`, то есть первый символ должен быть строчной латинской буквой, а все последующие символы — дефисом, строчной латинской буквой или цифрой, за исключением последнего символа, который не может быть дефисом. Возвращается: при успехе |
target dictionary | URL-адрес группы управляемых экземпляров, масштаб которой будет изменять этот автомасштабировщик. Возвращается: при успехе |
zone 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_autoscaler_module.html