google.cloud.gcp_compute_autoscaler – Создаёт балансировщик масштабирования GCP
Примечание
Этот плагин входит в коллекцию google.cloud (версия 1.0.2).
Для его установки используйте: ansible-galaxy collection install google.cloud.
Чтобы использовать его в playbook, укажите: google.cloud.gcp_compute_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 секунд. Время инициализации виртуальных машин может варьироваться из-за многочисленных факторов. Рекомендуется протестировать, сколько времени может занять инициализация экземпляра. Для этого создайте экземпляр и замерьте процесс запуска. алиасы: cooldownPeriod | |||
| cpu_utilization словарь | Определяет политику использования ЦП, которая позволяет автомасштабировщику масштабироваться на основе среднего использования ЦП группы управляемых экземпляров. | ||||
| utilization_target строка | Целевое использование ЦП, которое автомасштабировщик должен поддерживать. Должно быть число с плавающей точкой в диапазоне (0, 1]. Если не указано, значение по умолчанию равно 0,6. Если уровень ЦП ниже целевого использования, автомасштабировщик уменьшает количество экземпляров до минимального заданного количества экземпляров или до тех пор, пока среднее использование ЦП ваших экземпляров не достигнет целевого значения. Если среднее использование ЦП превышает целевое значение, автомасштабировщик увеличивает количество экземпляров до максимального заданного количества экземпляров или до тех пор, пока среднее использование не достигнет целевого значения. алиасы: target | ||||
| custom_metric_utilizations список / элементы=словарь | Параметры конфигурации автомасштабирования на основе пользовательского метрического показателя. алиасы: metric | ||||
| metric строка / обязательно | Идентификатор (тип) метрики мониторинга Stackdriver. Метрика не может иметь отрицательных значений. Тип значения метрики должен быть INT64 или DOUBLE. алиасы: name | ||||
| utilization_target строка | Целевое значение метрики, которую должен поддерживать автомасштабировщик. Это значение должно быть положительным. Метрика использования масштабирует количество виртуальных машин, обрабатывающих запросы, для увеличения или уменьшения пропорционально метрическому показателю. Например, хорошей метрикой для использования в качестве utilizationTarget является www.googleapis.com/compute/instance/network/received_bytes_count. Автомасштабировщик будет стремиться поддерживать это значение постоянным для каждого экземпляра. алиасы: target | ||||
| utilization_target_type строка | Определяет, как выражается целевое значение использования для метрики мониторинга Stackdriver. Некоторые допустимые значения включают: "GAUGE", "DELTA_PER_SECOND", "DELTA_PER_MINUTE" алиасы: type | ||||
| load_balancing_utilization словарь | Параметры конфигурации автомасштабирования на основе балансировщика нагрузки. | ||||
| utilization_target строка | Доля использования ресурсов бэкенда (установленная в конфигурации балансировки HTTP(s)) которую автомасштабировщик должен поддерживать. Должно быть положительным числом с плавающей точкой. Если не определено, значение по умолчанию равно 0.8. алиасы: target | ||||
| max_num_replicas целое число / обязательно | Максимальное количество экземпляров, до которого автомасштабировщик может масштабироваться вверх. Требуется при создании или обновлении автомасштабировщика. Максимальное число реплик не должно быть меньше минимального числа реплик. алиасы: maxReplicas | ||||
| min_num_replicas целое число | Минимальное количество реплик, до которого автомасштабировщик может масштабироваться вниз. Не может быть меньше 0. Если не указано, автомасштабировщик выберет значение по умолчанию в зависимости от максимального разрешенного количества экземпляров. алиасы: minReplicas | ||||
| mode строка | Значение по умолчанию: "ON" | Определяет режим работы данной политики. Некоторые допустимые значения включают: "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. - Для аутентификации можно установить auth_kind с помощью переменной окружения
GCP_AUTH_KIND. - Для аутентификации можно установить scopes с помощью переменной окружения
GCP_SCOPES. - Значения переменных окружения будут использоваться только в том случае, если значения в playbook не заданы.
- Параметры 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%. | |||
| coolDownPeriodSec целое число | успешно | Количество секунд, которое автомасштабировщик должен ждать, прежде чем начать сбор информации с нового экземпляра. Это предотвращает сбор информации автомасштабировщиком, когда экземпляр инициализируется, во время которого собранные данные использования не будут надежными. Время ожидания автомасштабировщиком по умолчанию составляет 60 секунд. Время инициализации виртуальной машины может варьироваться из-за множества факторов. Рекомендуется проверить, сколько времени может потребоваться для инициализации экземпляра. Для этого создайте экземпляр и замерьте процесс запуска. | |||
| cpuUtilization сложный | успешно | Определяет политику использования ЦП, которая позволяет автомасштабировщику масштабировать на основе среднего использования ЦП управляемой группы экземпляров. | |||
| utilizationTarget строка | успешно | Целевое использование ЦП, которое должен поддерживать автомасштабировщик. Должно быть число с плавающей запятой в диапазоне (0, 1]. Если не указано, значение по умолчанию равно 0,6. Если уровень ЦП ниже целевого значения использования, автомасштабировщик уменьшает количество экземпляров, пока не достигнет минимального количества экземпляров, указанного вами, или пока средний ЦП ваших экземпляров не достигнет целевого значения использования. Если средний ЦП выше целевого значения использования, автомасштабировщик увеличивает его, пока не достигнет максимального количества экземпляров, указанного вами, или пока среднее использование не достигнет целевого значения. | |||
| customMetricUtilizations сложный | успешно | Параметры конфигурации автомасштабирования на основе пользовательского метрики. | |||
| metric строка | успешно | Идентификатор (тип) метрики мониторинга Stackdriver. Метрика не может иметь отрицательные значения. Метрика должна иметь тип значения INT64 или DOUBLE. | |||
| utilizationTarget строка | успешно | Целевое значение метрики, которое должен поддерживать автомасштабировщик. Это должно быть положительное значение. Метрика использования масштабирует количество виртуальных машин, обрабатывающих запросы, для увеличения или уменьшения пропорционально метрике. Например, хорошей метрикой для использования в качестве utilizationTarget является www.googleapis.com/compute/instance/network/received_bytes_count. Автомасштабировщик будет работать, чтобы поддерживать это значение постоянным для каждого из экземпляров. | |||
| utilizationTargetType строка | успешно | Определяет, как выражается целевое значение использования для метрики мониторинга Stackdriver. | |||
| loadBalancingUtilization сложный | успешно | Параметры конфигурации автомасштабирования на основе балансировщика нагрузки. | |||
| utilizationTarget строка | успешно | Доля использования пропускной способности бэкенда (установленная в конфигурации балансировки HTTP(s)) которую автомасштабировщик должен поддерживать. Должно быть положительное число с плавающей запятой. Если не определено, значение по умолчанию равно 0,8. | |||
| maxNumReplicas целое число | успешно | Максимальное количество экземпляров, до которого автомасштабировщик может масштабироваться. Это обязательно при создании или обновлении автомасштабировщика. Максимальное количество реплик не должно быть меньше минимального количества реплик. | |||
| minNumReplicas целое число | успешно | Минимальное количество реплик, до которого автомасштабировщик может масштабироваться вниз. Это не может быть меньше 0. Если не указано, автомасштабировщик выберет значение по умолчанию в зависимости от максимального количества разрешенных экземпляров. | |||
| mode строка | успешно | Определяет режим работы этой политики. | |||
| scaleInControl сложный | успешно | Определяет управление масштабированием вниз, чтобы снизить риск задержки ответа и сбоев из-за внезапных событий масштабирования вниз. | |||
| maxScaledInReplicas сложный | успешно | Вложенный ресурс объекта. | |||
| 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 зоны, в которой расположена группа экземпляров. | |||
Авторы
- 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_autoscaler_module.html