Ресурс google_compute_autoscaler
Синтаксис
Используется google_compute_autoscaler, чтобы протестировать ресурс Google Autoscaler.
Ресурс Beta
Этот ресурс имеет доступные поля beta. Чтобы получить доступ к этим полям, включите beta: true в конструктор ресурса.
Примеры
describe google_compute_autoscaler(project: 'chef-gcp-inspec', zone: 'zone', name: 'inspec-gcp-autoscaler') do
it { should exist }
its('target') { should match /\/inspec-gcp-igm$/ }
its('autoscaling_policy.max_num_replicas') { should eq '5' }
its('autoscaling_policy.min_num_replicas') { should eq '1' }
its('autoscaling_policy.cool_down_period_sec') { should eq '60' }
its('autoscaling_policy.cpu_utilization.utilization_target') { should eq '0.5' }
end
describe google_compute_autoscaler(project: 'chef-gcp-inspec', zone: 'zone', name: 'nonexistent') do
it { should_not exist }
end
Свойства
Свойства, к которым можно получить доступ из ресурса google_compute_autoscaler:
id- Уникальный идентификатор ресурса.
creation_timestamp- Дата создания в формате RFC3339.
name- Имя ресурса. Длина имени должна быть от 1 до 63 символов и соответствовать регулярному выражению
[a-z]([-a-z0-9]*[a-z0-9])?, что означает, что первый символ должен быть строчной буквой, а все последующие символы должны быть тире, строчной буквой или цифрой, за исключением последнего символа, который не может быть тире. description- Необязательное описание этого ресурса.
autoscaling_policy- Параметры конфигурации алгоритма автоматического масштабирования. Вы можете определить одну или несколько политик для автомасштабирования: cpuUtilization, customMetricUtilizations и loadBalancingUtilization. Если ни одна из них не указана, по умолчанию будет использоваться автомасштабирование на основе cpuUtilization до 0,6 или 60%.
min_num_replicas- Минимальное количество реплик, до которого автомасштабирование может уменьшить масштаб. Не может быть меньше 0. Если не указано, автомасштабирование выберет значение по умолчанию в зависимости от максимального разрешенного количества экземпляров.
max_num_replicas- Максимальное количество экземпляров, до которого автомасштабирование может увеличить масштаб. Требуется при создании или обновлении автомасштабирования. Максимальное количество реплик не должно быть меньше минимального.
cool_down_period_sec- Количество секунд, которое автомасштабирование должно ждать, прежде чем начать сбор информации с нового экземпляра. Это предотвращает автомасштабирование от сбора информации во время инициализации экземпляра, в ходе которой собранная информация будет ненадежной. Время ожидания автомасштабирования по умолчанию составляет 60 секунд. Время инициализации виртуальных машин может варьироваться из-за множества факторов. Рекомендуется протестировать, сколько времени может потребоваться для инициализации экземпляра. Для этого создайте экземпляр и замерьте процесс запуска.
cpu_utilization- Определяет политику использования ЦП, которая позволяет автомасштабированию масштабироваться на основе среднего использования ЦП группой управляемых экземпляров.
utilization_target- Целевое использование ЦП, которое должно поддерживать автомасштабирование. Должно быть числовым значением с плавающей точкой в диапазоне (0, 1]. Если не указано, по умолчанию является 0,6. Если уровень ЦП ниже целевого использования, автомасштабирование уменьшает количество экземпляров, пока не достигнет минимального количества экземпляров, которое вы указали, или пока средний уровень ЦП ваших экземпляров не достигнет целевого использования. Если среднее использование ЦП выше целевого, автомасштабирование увеличивает масштаб, пока не достигнет максимального количества экземпляров, которое вы указали, или пока среднее использование не достигнет целевого.
custom_metric_utilizations- Параметры конфигурации автомасштабирования на основе настраиваемого метрического показателя.
metric- Идентификатор (тип) метрики Stackdriver Monitoring. Метрика не может иметь отрицательных значений. Тип значения метрики должен быть INT64 или DOUBLE.
single_instance_assignment- (Только Beta) Если масштабирование основано на значении метрики на группу, которое представляет собой общее количество работы или использование ресурсов, установите это значение на величину, назначенную для одного экземпляра масштабируемой группы. Автомасштабирование будет поддерживать количество экземпляров пропорционально значению этой метрики, сама метрика не должна менять значение из-за изменения размера группы. Например, подходящая метрика для использования с целевым значением —
pubsub.googleapis.com/subscription/num_undelivered_messages, или настраиваемая метрика, экспортирующая общее количество запросов, поступающих на ваши экземпляры. Плохой пример — метрика, экспортирующая среднюю или медианную задержку, так как это значение не может включать часть, присваиваемую одному экземпляру, оно может быть лучше использовано с utilization_target. utilization_target- Целевое значение метрики, которое автомасштабирование должно поддерживать. Должно быть положительным значением. Метрика использования масштабирует количество виртуальных машин, обрабатывающих запросы, для увеличения или уменьшения пропорционально метрике. Например, хорошей метрикой для использования в качестве utilizationTarget является www.googleapis.com/compute/instance/network/received_bytes_count. Автомасштабирование будет работать, чтобы поддерживать это значение постоянным для каждого из экземпляров.
utilization_target_type- Определяет, как выражается целевое значение использования для метрики Stackdriver Monitoring.
Возможные значения:
- GAUGE
- DELTA_PER_SECOND
- DELTA_PER_MINUTE
filter- (Только Beta) Строка фильтра, которая будет использоваться как строка фильтра для вызова API Stackdriver Monitoring TimeSeries.list. Этот фильтр используется для выбора конкретной TimeSeries для автомасштабирования и для определения того, экспортирует ли метрика данные на экземпляр или на группу. Вы можете использовать только оператор AND для объединения селекторов. Вы можете использовать только оператор прямого сравнения (=) без каких-либо функций для каждого селектора. Вы можете указать метрику как в строке фильтра, так и в поле метрики. Однако, если метрика указана в обоих местах, она должна быть идентичной. Тип контролируемого ресурса определяет, какие значения ожидаются для метрики. Если это gce_instance, автомасштабирование ожидает, что метрика будет содержать отдельную TimeSeries для каждого экземпляра в группе. В таком случае вы не можете фильтровать по меткам ресурсов. Если тип ресурса — любое другое значение, автомасштабирование ожидает, что эта метрика будет содержать значения, которые относятся ко всей масштабируемой группе экземпляров, и может быть выполнено фильтрация по меткам ресурсов, чтобы направить автомасштабирование на правильную TimeSeries для масштабирования. Это называется метрикой группы для автомасштабирования. Если не указано, тип по умолчанию — gce_instance. Вы должны предоставить фильтр, который достаточно селективен, чтобы выбрать только одну TimeSeries для масштабируемой группы или для каждого из экземпляров (если вы используете тип ресурса gce_instance). Если при выполнении запроса возвращается несколько TimeSeries, автомасштабирование суммирует их соответствующие значения, чтобы получить своё значение масштабирования.
load_balancing_utilization- Параметры конфигурации автомасштабирования на основе балансировщика нагрузки.
utilization_target- Доля использования пропускной способности бэкенда (установленная в конфигурации балансировки HTTP(s)), которую должно поддерживать автомасштабирование. Должно быть положительным значением с плавающей точкой. Если не определено, по умолчанию является 0,8.
target- URL управляемой группы экземпляров, которую будет масштабировать автомасштабирование.
zone- URL зоны, в которой находится группа экземпляров.
Разрешения GCP
Убедитесь, что API Compute Engine включён для текущего проекта.
© Chef Software, Inc.
Licensed under the Creative Commons Attribution 3.0 Unported License.
The Chef™ Mark and Chef Logo are either registered trademarks/service marks or trademarks/servicemarks of Chef, in the United States and other countries and are used with Chef Inc's permission.
We are not affiliated with, endorsed or sponsored by Chef Inc.
https://docs.chef.io/inspec/resources/google_compute_autoscaler/