gcp_compute_autoscaler – Создаёт балансировщик масштабирования GCP
Новая версия с 2.9.
Описание
- Представляет ресурс балансировщика масштабирования.
- Балансировщики масштабирования позволяют автоматически масштабировать виртуальные машины в управляемых группах виртуальных машин в соответствии с политикой масштабирования, которую вы определяете.
Требования
Ниже приведены требования к хосту, на котором выполняется этот модуль.
- 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. Некоторые допустимые значения включают: "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 | |||
| 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: имя-ресурса` в задачу gcp_compute_instance_group_manager и затем установить это поле target в "{{ имя-ресурса }}" | |||
| zone строка / обязательно | URL зоны, в которой находится группа экземпляров. | |||
Примечания
Примечание
- Ссылка на API: https://cloud.google.com/compute/docs/reference/rest/v1/autoscalers
- Группы автоматического масштабирования виртуальных машин: https://cloud.google.com/compute/docs/autoscaler/
- для аутентификации можно установить service_account_file с помощью переменной среды c(gcp_service_account_file).
- для аутентификации можно установить service_account_contents с помощью переменной среды c(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
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
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
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
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
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. Либо GAUGE, DELTA_PER_SECOND, или DELTA_PER_MINUTE. | ||
| loadBalancingUtilization сложный | успех | Параметры конфигурации автоматического масштабирования на основе балансировщика нагрузки. | ||
| utilizationTarget строка | успех | Доля использования емкости бэкенда (установленная в конфигурации HTTP(s) балансировщика) , которую автоматический масштабировщик должен поддерживать. Должно быть положительное число с плавающей точкой. Если не определено, по умолчанию является 0,8. | ||
| maxNumReplicas целое число | успех | Максимальное количество виртуальных машин, до которых автоматический масштабировщик может масштабироваться. Требуется при создании или обновлении автоматического масштабировщика. Максимальное количество реплик не должно быть меньше минимального. | ||
| minNumReplicas целое число | успех | Минимальное количество реплик, до которого автоматический масштабировщик может масштабироваться. Не может быть меньше 0. Если не указано, автоматический масштабировщик выберет значение по умолчанию в зависимости от максимального допустимого количества виртуальных машин. | ||
| creationTimestamp строка | успех | Дата и время создания в формате RFC3339. | ||
| description строка | успех | Необязательное описание данного ресурса. | ||
| id целое число | успех | Уникальный идентификатор ресурса. | ||
| name строка | успех | Имя ресурса. Длина имени должна составлять 1-63 символа и соответствовать регулярному выражению `[a-z]([-a-z0-9]*[a-z0-9])?`, что означает, что первый символ должен быть строчной буквой, а все последующие символы должны быть дефисом, строчной буквой или цифрой, за исключением последнего символа, который не может быть дефисом. | ||
| target словарь | успех | URL управляемой группы виртуальных машин, которую будет масштабировать автоматический масштабировщик. | ||
| zone строка | успех | URL зоны, в которой находится группа виртуальных машин. | ||
Статус
- Данный модуль не гарантирует обратной совместимости интерфейса. [превью]
- Данный модуль поддерживается сообществом Ansible. [сообщество]
Авторы
- 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.9/modules/gcp_compute_autoscaler_module.html