google.cloud.gcp_compute_region_autoscaler – Создаёт GCP RegionAutoscaler
Примечание
Этот плагин входит в состав коллекции google.cloud (версия 1.0.2).
Для его установки используйте: ansible-galaxy collection install google.cloud.
Для использования в книге задач укажите: google.cloud.gcp_compute_region_autoscaler.
Описание
- Представляет ресурс Autoscaler.
- Autoscalers позволяют автоматически масштабировать виртуальные машины в управляемых группах виртуальных машин в соответствии с определённой политикой автоматического масштабирования.
Требования
Ниже перечислены требования, необходимые на хосте, на котором выполняется этот модуль.
- python >= 2.6
- requests >= 2.18.4
- google-auth >= 1.3.0
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии | |||
|---|---|---|---|---|---|
| auth_kind строка / обязательно |
| Тип используемых учетных данных. | |||
| autoscaling_policy словарь / обязательно | Параметры конфигурации алгоритма автоматического масштабирования. Вы можете определить одну или несколько политик для autoscaler: cpuUtilization, customMetricUtilizations и loadBalancingUtilization. Если ни одна из них не указана, по умолчанию будет производиться автоматическое масштабирование на основе cpuUtilization до 0,6 или 60%. | ||||
| cool_down_period_sec целое число | Значение по умолчанию: "60" | Количество секунд, которое autoscaler должен ждать, прежде чем начать сбор информации с новой машины. Это предотвращает сбор информации autoscaler во время инициализации машины, когда собранные показатели будут ненадежными. По умолчанию autoscaler ждет 60 секунд. Время инициализации виртуальных машин может варьироваться по многим причинам. Рекомендуется проверить, сколько времени занимает процесс инициализации. | |||
| cpu_utilization словарь | Определяет политику использования ЦП, которая позволяет autoscaler масштабировать количество виртуальных машин в управляемой группе в зависимости от среднего использования ЦП. | ||||
| utilization_target строка | Целевое значение использования ЦП, которое autoscaler должен поддерживать. Должно быть число с плавающей точкой в диапазоне (0, 1]. Если не указано, по умолчанию значение равно 0,6. Если уровень использования ЦП ниже целевого значения, autoscaler уменьшает количество машин до минимального количества машин, указанного вами, или до тех пор, пока среднее использование ЦП ваших машин не достигнет целевого значения. Если среднее использование ЦП выше целевого значения, autoscaler увеличивает количество машин до максимального количества машин, указанного вами, или до тех пор, пока среднее использование не достигнет целевого значения. | ||||
| custom_metric_utilizations список / элементы=словарь | Параметры конфигурации автоматического масштабирования на основе пользовательского метрики. | ||||
| metric строка / обязательно | Идентификатор (тип) метрики мониторинга Stackdriver. Метрика не может иметь отрицательных значений. Метрика должна иметь тип значения INT64 или DOUBLE. | ||||
| utilization_target строка | Целевое значение метрики, которое autoscaler должен поддерживать. Это должно быть положительное значение. Метрика использования масштабирует количество виртуальных машин, обрабатывающих запросы, для увеличения или уменьшения пропорционально метрике. Например, хорошей метрикой для использования в качестве utilizationTarget является www.googleapis.com/compute/instance/network/received_bytes_count. Autoscaler будет работать над поддержанием этого значения постоянным для каждой из машин. | ||||
| utilization_target_type строка | Определяет, как выражается целевое значение использования для метрики мониторинга Stackdriver. Некоторые допустимые значения включают: "GAUGE", "DELTA_PER_SECOND", "DELTA_PER_MINUTE" | ||||
| load_balancing_utilization словарь | Параметры конфигурации автоматического масштабирования на основе балансировщика нагрузки. | ||||
| utilization_target строка | Доля использования заднего плана (установленная в конфигурации балансировки HTTP(s)) которую autoscaler должен поддерживать. Должно быть положительным числом с плавающей точкой. Если не определено, значение по умолчанию равно 0,8. | ||||
| max_num_replicas целое число / обязательно | Максимальное количество машин, до которого autoscaler может масштабироваться. Это требуется при создании или обновлении autoscaler. Максимальное количество реплик не должно быть меньше минимального количества реплик. | ||||
| min_num_replicas целое число | Минимальное количество реплик, до которого autoscaler может масштабироваться вниз. Это не может быть меньше 0. Если не указано, autoscaler выберет значение по умолчанию в зависимости от максимального разрешённого количества машин. | ||||
| mode строка | Значение по умолчанию: "ON" | Определяет режим работы этой политики. Некоторые допустимые значения включают: "OFF", "ONLY_UP", "ON" | |||
| scale_in_control словарь | Определяет параметры управления масштабированием, чтобы снизить риск задержек отклика и сбоев из-за внезапных событий масштабирования вниз. | ||||
| max_scaled_in_replicas словарь | Вложенный ресурс. | ||||
| fixed целое число | Указывает фиксированное количество виртуальных машин. | ||||
| percent целое число | Указывает процент машин в диапазоне от 0 до 100%, включительно. Например, укажите 80 для 80%. | ||||
| time_window_sec целое число | Сколько времени назад autoscaling должен смотреть при расчете рекомендаций, чтобы учесть директивы о более медленном уменьшении масштаба, как описано выше. | ||||
| 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 учетной записи службы, если в качестве типа выбрана учетная запись службы. | ||||
| state строка |
| Существует ли заданный объект в GCP | |||
| target строка / обязательно | URL управляемой группы экземпляров, которую будет масштабировать autoscaler. | ||||
Примечания
Примечание
- Ссылка на 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 целое число | success | Количество секунд, которое автомасштабировщик должен ждать, прежде чем начать сбор информации с нового экземпляра. Это предотвращает сбор информации автомасштабировщиком при инициализации экземпляра, в течение которой собранные данные использования не будут надежными. По умолчанию автомасштабировщик ожидает 60 секунд. Время инициализации виртуальных машин может варьироваться из-за множества факторов. Рекомендуется протестировать время, необходимое для инициализации экземпляра. Для этого создайте экземпляр и замерьте процесс запуска. | |||
| cpuUtilization complex | success | Определяет политику использования ЦП, которая позволяет автомасштабировщику масштабироваться на основе среднего использования ЦП управляемой группы экземпляров. | |||
| utilizationTarget строка | success | Целевое значение использования ЦП, которое автомасштабировщик должен поддерживать. Должно быть число с плавающей запятой в диапазоне (0, 1]. Если не указано, значение по умолчанию равно 0,6. Если уровень ЦП ниже целевого значения использования, автомасштабировщик уменьшает количество экземпляров до минимального числа экземпляров, указанного вами, или до тех пор, пока среднее значение ЦП ваших экземпляров не достигнет целевого значения использования. Если среднее значение ЦП выше целевого значения использования, автомасштабировщик увеличивает количество экземпляров до максимального числа экземпляров, указанного вами, или до тех пор, пока среднее значение использования не достигнет целевого значения использования. | |||
| customMetricUtilizations complex | success | Параметры конфигурации автомасштабирования на основе пользовательского метрика. | |||
| metric строка | success | Идентификатор (тип) метрики мониторинга Stackdriver. Метрика не может иметь отрицательные значения. Тип значения метрики должен быть INT64 или DOUBLE. | |||
| utilizationTarget строка | success | Целевое значение метрики, которое автомасштабировщик должен поддерживать. Это должно быть положительное значение. Метрика использования масштабирует количество виртуальных машин, обрабатывающих запросы, для увеличения или уменьшения пропорционально метрике. Например, хорошей метрикой для использования в качестве utilizationTarget является www.googleapis.com/compute/instance/network/received_bytes_count. Автомасштабировщик будет стремиться поддерживать это значение постоянным для каждого из экземпляров. | |||
| utilizationTargetType строка | success | Определяет, как выражается целевое значение использования для метрики мониторинга Stackdriver. | |||
| loadBalancingUtilization complex | success | Параметры конфигурации автомасштабирования на основе балансировщика нагрузки. | |||
| utilizationTarget строка | success | Доля использования ресурсов бэкенда (установленная в конфигурации балансировщика HTTP(s)) которую автомасштабировщик должен поддерживать. Должно быть положительное значение с плавающей запятой. Если не определено, значение по умолчанию равно 0,8. | |||
| maxNumReplicas целое число | success | Максимальное количество экземпляров, до которого автомасштабировщик может масштабироваться. Это необходимо при создании или обновлении автомасштабировщика. Максимальное количество реплик не должно быть меньше минимального числа реплик. | |||
| minNumReplicas целое число | success | Минимальное количество реплик, до которого автомасштабировщик может масштабироваться вниз. Это не может быть меньше 0. Если не указано, автомасштабировщик выберет значение по умолчанию, в зависимости от максимального разрешенного числа экземпляров. | |||
| mode строка | success | Определяет режим работы для этой политики. | |||
| scaleInControl complex | success | Определяет управление уменьшением масштаба, чтобы снизить риск задержек отклика и сбоев из-за внезапных событий уменьшения масштаба. | |||
| maxScaledInReplicas complex | success | Вложенный ресурс объекта. | |||
| fixed целое число | success | Устанавливает фиксированное количество виртуальных машин. Это должно быть целое положительное число. | |||
| percent целое число | success | Устанавливает процент экземпляров в диапазоне от 0 до 100%, включительно. Например, укажите 80 для 80%. | |||
| timeWindowSec целое число | success | Сколько времени назад автомасштабирование должно искать при вычислении рекомендаций, чтобы включить указания относительно более медленного уменьшения масштаба, как описано выше. | |||
| creationTimestamp строка | success | Дата и время создания в формате RFC3339. | |||
| description строка | success | Необязательное описание этого ресурса. | |||
| id целое число | success | Уникальный идентификатор ресурса. | |||
| name строка | success | Имя ресурса. Длина имени должна составлять от 1 до 63 символов и соответствовать регулярному выражению `[a-z]([-a-z0-9]*[a-z0-9])?`, что означает, что первый символ должен быть строчной буквой, а все последующие символы должны быть дефисом, строчной буквой или цифрой, за исключением последнего символа, который не может быть дефисом. | |||
| region строка | success | URL региона, в котором находится группа экземпляров. | |||
| target строка | success | URL управляемой группы экземпляров, которую будет масштабировать этот автомасштабировщик. | |||
Авторы
- Google Inc. (@googlecloudplatform)
© 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/google/cloud/gcp_compute_region_autoscaler_module.html