google.cloud.gcp_compute_region_autoscaler – Создаёт GCP RegionAutoscaler
Примечание
Этот плагин входит в состав коллекции google.cloud (версия 1.0.1).
Для его установки используйте: ansible-galaxy collection install google.cloud.
Чтобы использовать его в книге задач, укажите: google.cloud.gcp_compute_region_autoscaler.
Обзор
- Представляет ресурс Автомасштабирования.
- Автомасштабирование позволяет автоматически масштабировать виртуальные машины в управляемых группах виртуальных машин в соответствии с политикой автоматического масштабирования, которую вы определили.
Требования
Ниже перечислены требования, необходимые на хосте, на котором выполняется этот модуль.
- python >= 2.6
- requests >= 2.18.4
- google-auth >= 1.3.0
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии | ||
|---|---|---|---|---|
| auth_kind строка / обязательно |
| Тип используемых учетных данных. | ||
| autoscaling_policy словарь / обязательно | Параметры конфигурации алгоритма автоматического масштабирования. Можно определить одну или несколько политик для автомасштабирования: cpuUtilization, customMetricUtilizations и loadBalancingUtilization. Если ни одна из этих политик не указана, по умолчанию автомасштабирование будет происходить на основе cpuUtilization до 0,6 или 60%. | |||
| cool_down_period_sec целое число | Значение по умолчанию: "60" | Количество секунд, которое автомасштабировщик должен ждать, прежде чем начать сбор информации с новой виртуальной машины. Это предотвращает сбор информации автомасштабировщиком, когда виртуальная машина находится в процессе инициализации, во время которой собранные данные использования не будут надёжными. По умолчанию автомасштабировщик ждёт 60 секунд. Время инициализации виртуальных машин может варьироваться из-за множества факторов. Рекомендуется проверить, сколько времени может потребоваться для инициализации виртуальной машины. Для этого создайте виртуальную машину и замерьте процесс запуска. | ||
| cpu_utilization словарь | Определяет политику использования ЦП, которая позволяет автомасштабировщику масштабироваться на основе среднего использования ЦП управляемой группы виртуальных машин. | |||
| utilization_target строка | Целевое использование ЦП, которое автомасштабировщик должен поддерживать. Должно быть число с плавающей точкой в диапазоне (0, 1]. Если не указано, значение по умолчанию составляет 0,6. Если уровень ЦП ниже целевого использования, автомасштабировщик уменьшает количество виртуальных машин до минимального количества виртуальных машин, указанного вами, или до тех пор, пока среднее использование ЦП виртуальных машин не достигнет целевого значения. Если среднее использование ЦП выше целевого значения, автомасштабировщик увеличивает количество виртуальных машин до максимального количества виртуальных машин, указанного вами, или до тех пор, пока среднее использование не достигнет целевого значения. | |||
| custom_metric_utilizations список / элементы=словарь | Параметры конфигурации автомасштабирования на основе пользовательского метрики. | |||
| metric строка / обязательно | Идентификатор (тип) метрики мониторинга Stackdriver. Метрика не может иметь отрицательных значений. Метрика должна иметь тип значения INT64 или DOUBLE. | |||
| utilization_target строка | Целевое значение метрики, которое автомасштабировщик должен поддерживать. Это должно быть положительное значение. Метрика использования масштабирует количество виртуальных машин, обрабатывающих запросы, чтобы увеличить или уменьшить пропорционально метрике. Например, хорошей метрикой для использования в качестве utilizationTarget является www.googleapis.com/compute/instance/network/received_bytes_count. Автомасштабировщик будет стремиться поддерживать это значение постоянным для каждой из виртуальных машин. | |||
| utilization_target_type строка | Определяет, как выражается целевое значение использования для метрики мониторинга Stackdriver. Некоторые допустимые значения: "GAUGE", "DELTA_PER_SECOND", "DELTA_PER_MINUTE" | |||
| load_balancing_utilization словарь | Параметры конфигурации автомасштабирования на основе балансировщика нагрузки. | |||
| utilization_target строка | Доля использования пропускной способности бэкенда (установлена в конфигурации балансировщика HTTP(s)) которую автомасштабировщик должен поддерживать. Должно быть положительным числом с плавающей точкой. Если не определено, значение по умолчанию — 0,8. | |||
| max_num_replicas целое число / обязательно | Максимальное количество виртуальных машин, до которого может масштабироваться автомасштабировщик. Это требуется при создании или обновлении автомасштабировщика. Максимальное количество реплик не должно быть меньше минимального количества реплик. | |||
| min_num_replicas целое число | Минимальное количество реплик, до которого может уменьшаться автомасштабировщик. Не может быть меньше 0. Если не указано, автомасштабировщик выберет значение по умолчанию, в зависимости от максимального разрешённого количества виртуальных машин. | |||
| mode строка | Значение по умолчанию: "ON" | Определяет режим работы для этой политики. Некоторые допустимые значения: "OFF", "ONLY_UP", "ON" | ||
| description строка | Необязательное описание этого ресурса. | |||
| env_type строка | Указывает, в какой среде Ansible выполняется этот модуль. Это следует устанавливать только если вам это необходимо. Это изменяет только строку User Agent для всех запросов к API. | |||
| name строка / обязательно | Имя ресурса. Длина имени должна составлять от 1 до 63 символов и соответствовать регулярному выражению `[a-z]([-a-z0-9]*[a-z0-9])?`, что означает, что первый символ должен быть строчной буквой, а все последующие символы должны быть дефисом, строчной буквой или цифрой, за исключением последнего символа, который не может быть дефисом. | |||
| project строка | Проект Google Cloud Platform, который нужно использовать. | |||
| region строка / обязательно | URL региона, в котором расположена группа виртуальных машин. | |||
| scopes список / элементы=строка | Массив используемых областей. | |||
| service_account_contents jsonarg | Содержимое файла JSON учетной записи службы, либо в словаре, либо в виде JSON-строки, представляющей его. | |||
| service_account_email строка | Необязательный адрес электронной почты учетной записи службы, если выбран machineaccount, и пользователь не хочет использовать адрес электронной почты по умолчанию. | |||
| service_account_file путь | Путь к файлу JSON учетной записи службы, если выбран тип serviceaccount. | |||
| state строка |
| Существует ли данный объект в GCP | ||
| target строка / обязательно | 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. - Для аутентификации можно установить 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 | success | Параметры конфигурации алгоритма автоматического масштабирования. Вы можете определить одну или несколько политик для автоматического масштабирования: cpuUtilization, customMetricUtilizations и loadBalancingUtilization. Если ни один из этих параметров не указан, по умолчанию автоматическое масштабирование будет выполняться на основе cpuUtilization со значением 0,6 или 60%. | ||
| coolDownPeriodSec integer | success | Количество секунд, которое автоматический масштабировщик должен ждать, прежде чем начать сбор информации с нового экземпляра. Это предотвращает сбор информации автоматическим масштабировщиком, когда экземпляр инициализируется, в течение которого собранные показатели будут ненадёжны. По умолчанию автоматический масштабировщик ждёт 60 секунд. Время инициализации виртуальных машин может варьироваться из-за множества факторов. Рекомендуется протестировать, сколько времени может потребоваться для инициализации экземпляра. Для этого создайте экземпляр и измерьте время процесса запуска. | ||
| cpuUtilization complex | success | Определяет политику использования ЦП, которая позволяет автоматическому масштабировщику масштабировать на основе среднего использования ЦП группы управляемых экземпляров. | ||
| utilizationTarget string | success | Целевое использование ЦП, которое должен поддерживать автоматический масштабировщик. Должно быть число с плавающей точкой в диапазоне (0, 1]. Если не указано, значение по умолчанию равно 0,6. Если уровень ЦП ниже целевого значения использования, автоматический масштабировщик уменьшает количество экземпляров до минимального заданного вами числа экземпляров или пока среднее использование ЦП ваших экземпляров не достигнет целевого значения. Если среднее использование ЦП выше целевого значения, автоматический масштабировщик увеличивает число экземпляров до максимального заданного вами числа экземпляров или пока среднее использование не достигнет целевого значения. | ||
| customMetricUtilizations complex | success | Параметры конфигурации автоматического масштабирования на основе пользовательского метрики. | ||
| metric string | success | Идентификатор (тип) метрики Stackdriver Monitoring. Метрика не может иметь отрицательные значения. Метрика должна иметь тип значения INT64 или DOUBLE. | ||
| utilizationTarget string | success | Целевое значение метрики, которое автоматический масштабировщик должен поддерживать. Это значение должно быть положительным. Метрика использования масштабирует количество виртуальных машин, обрабатывающих запросы, для увеличения или уменьшения пропорционально метрике. Например, хорошей метрикой для использования в качестве utilizationTarget является www.googleapis.com/compute/instance/network/received_bytes_count. Автоматический масштабировщик будет стремиться поддерживать это значение постоянным для каждого экземпляра. | ||
| utilizationTargetType string | success | Определяет, как выражается целевое значение использования для метрики Stackdriver Monitoring. | ||
| loadBalancingUtilization complex | success | Параметры конфигурации автоматического масштабирования на основе балансировщика нагрузки. | ||
| utilizationTarget string | success | Доля использования ресурсов бэкенда (установленная в конфигурации балансировки HTTP(s)) которую должен поддерживать автоматический масштабировщик. Должно быть положительным значением с плавающей точкой. Если не определено, значение по умолчанию равно 0,8. | ||
| maxNumReplicas integer | success | Максимальное количество экземпляров, до которого автоматический масштабировщик может масштабироваться. Требуется при создании или обновлении автоматического масштабировщика. Максимальное количество реплик не должно быть ниже минимального количества реплик. | ||
| minNumReplicas integer | success | Минимальное количество реплик, до которого автоматический масштабировщик может масштабироваться вниз. Не может быть меньше 0. Если не указано, автоматический масштабировщик выберет значение по умолчанию, в зависимости от максимального разрешенного количества экземпляров. | ||
| mode string | success | Определяет режим работы этой политики. | ||
| creationTimestamp string | success | Дата и время создания в формате RFC3339. | ||
| description string | success | Необязательное описание этого ресурса. | ||
| id integer | success | Уникальный идентификатор ресурса. | ||
| name string | success | Имя ресурса. Длина имени должна составлять 1-63 символа и соответствовать регулярному выражению `[a-z]([-a-z0-9]*[a-z0-9])?`, что означает, что первый символ должен быть строчной буквой, а все последующие символы должны быть тире, строчной буквой или цифрой, за исключением последнего символа, который не может быть тире. | ||
| region string | success | URL региона, в котором находится группа экземпляров. | ||
| target string | success | URL управляемой группы экземпляров, которую будет масштабировать этот автоматический масштабировщик. | ||
Авторы
- Google Inc. (@googlecloudplatform)
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.10/collections/google/cloud/gcp_compute_region_autoscaler_module.html