Ресурс google_compute_region_backend_service
Синтаксис
Для тестирования ресурса Google RegionBackendService используется google_compute_region_backend_service
Ресурс бета-версии
Этот ресурс содержит поля бета-версии. Для получения этих полей включите beta: true в конструктор ресурса
Примеры
describe google_compute_region_backend_service(project: 'chef-gcp-inspec', region: 'europe-west2', name: 'inspec-gcp-region-backend-service') do
it { should exist }
its('description') { should eq 'A regional description' }
its('protocol') { should eq 'TCP' }
its('timeout_sec') { should eq '15' }
end
describe google_compute_region_backend_service(project: 'chef-gcp-inspec', region: 'europe-west2', name: 'nonexistent') do
it { should_not exist }
end
Свойства
Свойства, доступные из ресурса google_compute_region_backend_service:
affinity_cookie_ttl_sec- Срок действия cookie в секундах, если session_affinity равен GENERATED_COOKIE. Если значение равно 0, cookie не сохраняется и действует только до закрытия сеанса браузера (или эквивалента). Максимально допустимое значение TTL составляет один день. Если схема балансировки нагрузки — INTERNAL, это поле не используется.
backends- Набор бэкендов, обслуживающих этот RegionBackendService.
balancing_mode- Указывает режим балансировки для этого бэкенда.
Возможные значения:
- UTILIZATION
- RATE
- CONNECTION
capacity_scaler- Множитель, применяемый к максимальной пропускной способности группы (на основе UTILIZATION, RATE или CONNECTION). ~>ПРИМЕЧАНИЕ: Это поле не может быть задано для внутренних региональных бэкенд-служб (по умолчанию loadBalancingScheme), но требуется для бэкенд-служб, отличных от INTERNAL. Общий capacity_scaler для всех бэкендов должен быть отличным от нуля. Значение 0 означает, что группа полностью отключена, предлагая 0% своей доступной пропускной способности. Допустимый диапазон [0.0,1.0].
description- Необязательное описание этого ресурса. Укажите это свойство при создании ресурса.
failover- Это поле указывает, является ли это бэкендом для аварийного переключения. Для данного RegionBackendService можно настроить более одного бэкенда для аварийного переключения.
group- Полный URL ресурса группы экземпляров или ресурса группы сетевых конечных точек. В случае группы экземпляров это определяет список экземпляров, которые обслуживают трафик. Виртуальные машины-члены каждой группы экземпляров должны находиться в той же зоне, что и сама группа экземпляров. Два бэкенда в бэкенд-службе не могут использовать один и тот же ресурс группы экземпляров. Для групп сетевых конечных точек это определяет список конечных точек. Все конечные точки группы сетевых конечных точек должны размещаться на экземплярах, расположенных в той же зоне, что и группа сетевых конечных точек. Бэкенд-службы не могут смешивать группы экземпляров и группы сетевых конечных точек. Когда
load_balancing_schemeравен INTERNAL, поддерживаются только группы экземпляров. Обратите внимание, что вы должны указать ресурс группы экземпляров или группы сетевых конечных точек с помощью полного URL, а не частичного URL. max_connections- Максимальное количество одновременных подключений для группы. Может использоваться с режимами балансировки CONNECTION или UTILIZATION. Не может быть задано для внутренних бэкенд-служб. Для режима CONNECTION необходимо задать либо maxConnections, либо maxConnectionsPerInstance или maxConnectionsPerEndpoint, соответствующие типу группы.
max_connections_per_instance- Максимальное количество одновременных подключений, которые может обрабатывать один бэкенд-экземпляр. Не может быть задано для внутренних бэкенд-служб. Используется для расчета емкости группы. Может использоваться в режимах балансировки CONNECTION или UTILIZATION. Для режима CONNECTION необходимо задать либо maxConnections, либо maxConnectionsPerInstance.
max_connections_per_endpoint- Максимальное количество одновременных подключений, которые может обрабатывать одна сетевая конечная точка бэкенда. Не может быть задано для внутренних бэкенд-служб. Используется для расчета емкости группы. Может использоваться в режимах балансировки CONNECTION или UTILIZATION. Для режима CONNECTION необходимо задать либо maxConnections, либо maxConnectionsPerEndpoint.
max_rate- Максимальное количество запросов в секунду (RPS) группы. Не может быть задано для внутренних бэкенд-служб. Может использоваться с режимами балансировки RATE или UTILIZATION, но требуется в режиме RATE. Необходимо задать либо maxRate, либо maxRatePerInstance или maxRatePerEndpoint, соответствующие типу группы.
max_rate_per_instance- Максимальное количество запросов в секунду (RPS), которое может обработать один бэкенд-экземпляр. Используется для расчета емкости группы. Может использоваться в любом режиме балансировки. Для режима RATE необходимо задать либо maxRate, либо maxRatePerInstance. Не может быть задано для внутренних бэкенд-служб.
max_rate_per_endpoint- Максимальное количество запросов в секунду (RPS), которое может обработать одна сетевая конечная точка бэкенда. Используется для расчета емкости группы. Может использоваться в любом режиме балансировки. Для режима RATE необходимо задать либо maxRate, либо maxRatePerEndpoint. Не может быть задано для внутренних бэкенд-служб.
max_utilization- Используется, когда balancingMode равен UTILIZATION. Это отношение определяет целевую загрузку ЦП для группы. Допустимый диапазон [0.0, 1.0]. Не может быть задано для внутренних бэкенд-служб.
circuit_breakers- Настройки, контролирующие объем подключений к бэкенд-службе. Это поле применимо только тогда, когда
load_balancing_schemeустановлено в INTERNAL_MANAGED, аprotocolустановлено в HTTP, HTTPS или HTTP2.connect_timeout- (Только для бета-версии) Таймаут для новых сетевых подключений к хостам.
seconds- Продолжительность времени с разрешением в секунду. Должно быть от 0 до 315 576 000 000 включительно.
nanos- Продолжительность времени, которая является дробной частью секунды с разрешением в наносекунды. Продолжительности меньше одной секунды представляются с полем 0 секунд и положительным полем nanos. Должно быть от 0 до 999 999 999 включительно.
max_requests_per_connection- Максимальное количество запросов для одного бэкенд-подключения. Этот параметр соблюдается как реализациями HTTP/1.1, так и HTTP/2. Если не указано, ограничений нет. Установка этого параметра в 1 фактически отключит keep-alive.
max_connections- Максимальное количество подключений к кластеру бэкенда. По умолчанию 1024.
max_pending_requests- Максимальное количество ожидающих запросов в кластере бэкенда. По умолчанию 1024.
max_requests- Максимальное количество параллельных запросов в кластере бэкенда. По умолчанию 1024.
max_retries- Максимальное количество параллельных повторных попыток в кластере бэкенда. По умолчанию 3.
consistent_hash- Балансировка нагрузки на основе консистентного хэширования может использоваться для обеспечения мягкого сродства сеансов на основе заголовков HTTP, cookie или других свойств. Эта политика балансировки нагрузки применима только для HTTP-соединений. Сродство с конкретным целевым хостом будет утеряно, когда один или несколько хостов добавлены/удалены из целевой службы. Это поле определяет параметры, контролирующие консистентное хэширование. Это поле применимо только в следующих случаях:
load_balancing_schemeустановлено в INTERNAL_MANAGED,protocolустановлено в HTTP, HTTPS или HTTP2 иlocality_lb_policyустановлено в MAGLEV или RING_HASH http_cookie- Хеширование основано на HTTP-cookie. Это поле описывает HTTP-cookie, который будет использоваться в качестве ключа хэширования для балансировщика консистентного хэширования. Если cookie отсутствует, он будет сгенерирован. Это поле применимо, если sessionAffinity установлено в HTTP_COOKIE.
ttl- Срок действия cookie.
seconds- Продолжительность времени с разрешением в секунду. Должно быть от 0 до 315 576 000 000 включительно.
nanos- Продолжительность времени, которая является дробной частью секунды с разрешением в наносекунды. Продолжительности меньше одной секунды представляются с полем 0 секунд и положительным полем nanos. Должно быть от 0 до 999 999 999 включительно.
name- Имя cookie.
path- Путь для установки cookie.
http_header_name- Хеширование основано на значении указанного поля заголовка. Это поле применимо, если sessionAffinity установлено в HEADER_FIELD.
minimum_ring_size- Минимальное количество виртуальных узлов для использования для кольца хэширования. Более крупные кольца приводят к более точной распределению нагрузки. Если количество хостов в пуле балансировки нагрузки больше размера кольца, каждому хосту будет назначен один виртуальный узел. По умолчанию 1024.
connection_draining- Настройки для отключения подключений.
draining_timeout_sec- Время, в течение которого экземпляр будет отключен (не будет принимать новые подключения, но все еще будет работать для завершения начатых).
creation_timestamp- Время создания в формате RFC3339.
description- Необязательное описание этого ресурса.
failover_policy- Политика для аварийного переключения.
disable_connection_drain_on_failover- При аварийном переключении или возвращении к исходному состоянию это поле указывает, будет ли выполняться отключение подключений. Установка этого значения в true имеет следующий эффект: подключения к старому активному пулу не отключаются. Подключения к новому активному пулу используют таймаут 10 минут (в настоящее время фиксировано). Установка в false имеет следующий эффект: у обоих подключений (старых и новых) будет таймаут отключения 10 минут. Это может быть установлено в true только в случае, если протокол TCP. По умолчанию false.
drop_traffic_if_unhealthy- Этот параметр используется только в том случае, если в первичных и резервных группах экземпляров не обнаружено здоровых виртуальных машин. Если установлено в true, трафик отбрасывается. Если установлено в false, новые подключения отправляются через все виртуальные машины в основной группе. По умолчанию false.
failover_ratio- Значение поля должно быть в диапазоне [0, 1]. Если соотношение здоровых виртуальных машин в первичном бэкенде находится на этом уровне или ниже, трафик, поступающий на IP-адрес балансировки нагрузки, будет направлен на бэкенд для аварийного переключения. В случае, если failoverRatio не задано или все виртуальные машины в резервном бэкенде неисправны, трафик будет направлен обратно в первичный бэкенд в режиме «принудительного» направления, где трафик будет распределен по здоровым виртуальным машинам с наилучшим результатом или по всем виртуальным машинам, когда ни одна виртуальная машина не здорова. Это поле используется только с балансировкой нагрузки L4.
fingerprint- Отпечаток этого ресурса. Хэш содержимого, хранящегося в этом объекте. Это поле используется в оптимистической блокировке.
health_checks- Набор URL-адресов ресурсов HealthCheck для проверки работоспособности этого RegionBackendService. В настоящее время может быть указана не более одной проверки работоспособности, и проверка работоспособности требуется.
id- Уникальный идентификатор ресурса.
load_balancing_scheme- Указывает, для какой балансировки нагрузки будет использоваться эта региональная бэкенд-служба. Бэкенд-служба, созданная для одного типа балансировки, не может быть использована с другими.
Возможные значения:
- INTERNAL
- INTERNAL_MANAGED
locality_lb_policy
- Алгоритм распределения нагрузки, используемый в пределах области локальности.
Возможные значения:
- ROUND*ROBIN
- Это простая политика, в которой каждый работоспособный бэкенд выбирается по кругу.
- LEAST_REQUEST
- Алгоритм O(1), который выбирает два случайных работоспособных хоста и выбирает хост с меньшим количеством активных запросов.
- RING_HASH
- Балансировщик нагрузки с кольцевым/модульным хешированием реализует согласованное хеширование для бэкендов. Алгоритм обладает свойством, что добавление/удаление хоста из набора из N хостов затрагивает только 1/N запросов.
- RANDOM
- Балансировщик нагрузки выбирает случайный работоспособный хост.
- ORIGINAL_DESTINATION
- Хост бэкенда выбирается на основе метаданных подключения клиента, т. е. подключения открываются к тому же адресу, что и целевой адрес входящего подключения до того, как подключение было перенаправлено балансировщику нагрузки.
- MAGLEV
- используется как замена балансировщику нагрузки ring hash. Maglev не так стабилен, как ring hash, но имеет более быстрые времена построения таблиц и выбора хостов. Для получения дополнительной информации о Maglev, обратитесь к https://ai.google/research/pubs/pub44824. Это поле применимо только тогда, когда
load_balancing_schemeустановлено в INTERNAL_MANAGED, аprotocolустановлено в HTTP, HTTPS или HTTP2.
name- Имя ресурса. Предоставляется клиентом при создании ресурса. Имя должно иметь длину от 1 до 63 символов и соответствовать RFC1035. То есть имя должно иметь длину от 1 до 63 символов и соответствовать регулярному выражению
[a-z]([-a-z0-9]*[a-z0-9])?, что означает, что первый символ должен быть строчной буквой, а все последующие символы должны быть тире, строчной буквой или цифрой, за исключением последнего символа, который не может быть тире. outlier_detection- Настройки, управляющие удалением неисправных хостов из пула балансировки нагрузки. Это поле применимо только тогда, когда
load_balancing_schemeустановлено в INTERNAL_MANAGED, аprotocolустановлено в HTTP, HTTPS или HTTP2.base_ejection_time- Базовое время, на которое хост удаляется. Фактическое время равно базовому времени, умноженному на количество раз, когда хост был удален. По умолчанию составляет 30000 мс или 30 с.
seconds- Продолжительность времени с разрешением в секунду. Должно быть от 0 до 315 576 000 000 включительно.
nanos- Продолжительность времени, которая является дробью секунды с разрешением в наносекунды. Продолжительности меньше одной секунды представлены с 0
secondsполем и положительнымnanosполем. Должно быть от 0 до 999 999 999 включительно.
consecutive_errors- Количество ошибок перед удалением хоста из пула подключений. При доступе к хосту бэкенда через HTTP код ответа 5xx считается ошибкой. По умолчанию 5.
consecutive_gateway_failure- Количество последовательных сбоев шлюза (статусы 502, 503, 504 или ошибки подключения, сопоставленные с одним из этих кодов статуса) перед удалением хоста из-за последовательного сбоя шлюза. По умолчанию 5.
enforcing_consecutive_errors- Вероятность того, что хост будет удален, когда обнаружен статус выброса при последовательных кодах 5xx. Это значение может быть использовано для отключения удаления или постепенного его повышения. По умолчанию 100.
enforcing_consecutive_gateway_failure- Вероятность того, что хост будет удален, когда обнаружен статус выброса при последовательных сбоях шлюза. Это значение может быть использовано для отключения удаления или постепенного его повышения. По умолчанию 0.
enforcing_success_rate- Вероятность того, что хост будет удален, когда обнаружен статус выброса по статистике успеха. Это значение может быть использовано для отключения удаления или постепенного его повышения. По умолчанию 100.
interval- Интервал времени между анализом удаления. Это может привести как к новым удалениям, так и к возвращению хостов в рабочее состояние. По умолчанию 10 секунд.
seconds- Продолжительность времени с разрешением в секунду. Должно быть от 0 до 315 576 000 000 включительно.
nanos- Продолжительность времени, которая является дробью секунды с разрешением в наносекунды. Продолжительности меньше одной секунды представлены с 0
secondsполем и положительнымnanosполем. Должно быть от 0 до 999 999 999 включительно.
max_ejection_percent- Максимальный процент хостов в пуле балансировки нагрузки для службы бэкенда, которые могут быть удалены. По умолчанию 10%.
success_rate_minimum_hosts- Количество хостов в кластере, которое должно иметь достаточный объем запросов для обнаружения выбросов успеха. Если количество хостов меньше этого значения, обнаружение выбросов по статистике успеха не выполняется для любого хоста в кластере. По умолчанию 5.
success_rate_request_volume- Минимальное количество общих запросов, которые должны быть собраны за один интервал (как определено продолжительностью интервала выше), чтобы включить этот хост в обнаружение выбросов на основе статистики успеха. Если объем ниже этого значения, обнаружение выбросов по статистике успеха не выполняется для этого хоста. По умолчанию 100.
success_rate_stdev_factor- Этот коэффициент используется для определения порога удаления для удаления выбросов по статистике успеха. Порог удаления — это разница между средней скоростью успеха и произведением этого коэффициента и стандартного отклонения средней скорости успеха: среднее значение - (stdev * success_rate_stdev_factor). Этот коэффициент делится на тысячу, чтобы получить двойное значение. То есть, если желаемый коэффициент равен 1,9, значение runtime должно быть 1900. По умолчанию 1900.
port_name- Именованный порт на группе экземпляров бэкенда, представляющий порт для связи с виртуальными машинами бэкенда в этой группе. Требуется, когда loadBalancingScheme равен EXTERNAL, INTERNAL_MANAGED или INTERNAL_SELF_MANAGED, а бэкенды являются группами экземпляров. Имя порта должно быть определено на каждой группе экземпляров бэкенда. Этот параметр не имеет значения, если бэкенды являются NEG. API устанавливает значение по умолчанию «http», если оно не указано. Должен быть опущен, если loadBalancingScheme равен INTERNAL (внутренняя балансировка TCP/UDP-соединений).
protocol- Протокол, используемый RegionBackendService для связи с бэкендами. По умолчанию HTTP. ПРИМЕЧАНИЕ: HTTP2 допустим только для типов бета-балансировщиков HTTP/2 и может привести к ошибкам при использовании с API GA.
Возможные значения:
- HTTP
- HTTPS
- HTTP2
- SSL
- TCP
- UDP
session_affinity- Тип сродства сеансов для использования. По умолчанию NONE. Сродство сеансов не применимо, если протокол UDP.
Возможные значения:
- NONE
- CLIENT
- IP
- CLIENT*IP_PORT_PROTO
- CLIENT*IP_PROTO
- GENERATED*COOKIE
- HEADER_FIELD
- HTTP_COOKIE
timeout_sec- Сколько секунд ожидать бэкенд, прежде чем считать запрос неудачным. По умолчанию 30 секунд. Допустимый диапазон [1, 86400].
log_config- Это поле обозначает параметры ведения журнала для трафика балансировщика нагрузки, обслуживаемого данной службой бэкенда. Если ведение журнала включено, журналы будут экспортированы в Stackdriver.
enable- Включить или выключить ведение журнала для трафика балансировщика нагрузки, обслуживаемого данной службой бэкенда.
sample_rate- Это поле может быть указано только в том случае, если ведение журнала включено для данной службы бэкенда. Значение поля должно быть в [0, 1]. Это настраивает частоту выборки запросов к балансировщику нагрузки, где 1.0 означает, что все запросы, которые должны быть зарегистрированы, будут сообщены, а 0.0 означает, что ни один запрос, который должен быть зарегистрирован, не будет сообщен. Значение по умолчанию 1.0.
network- URL сети, к которой принадлежит данная служба бэкенда. Это поле может быть указано только в том случае, если схема балансировки нагрузки установлена в INTERNAL.
region- Ссылка на регион, в котором находится региональная служба бэкенда.
Разрешения 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_region_backend_service/