Spec-Zone.ru › Ansible 2.11

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
строка / обязательно
    Варианты:
  • application
  • machineaccount
  • serviceaccount
Тип используемых учетных данных.
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
строка
    Варианты:
  • present ←
  • absent
Должен ли заданный объект существовать в 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API