#istio #circuit-breaker #servicemesh
Вопрос:
Я читал документацию по автоматическому выключателю Istio. Я вижу, что для заданного интервала мы можем установить числовое значение consecutive5xxErrors
(и проверить несколько других настроек), чтобы действие по разрыву цепи вступило в силу.
Я хотел знать, можно ли каким-то образом выполнить разрыв цепи в Istio на основе % 5xxerrors
от обычных соединений?
Ответ №1:
Следуя документации, которую вы уже нашли:
Как вы можете видеть, существуют определенные поля для outlierDetection
:
consecutiveGatewayErrors
consecutive5xxErrors
interval
baseEjectionTime
maxEjectionPercent
minHealthPercent
Поле, которое заставит запрос не попадать в конкретный объект, выглядит следующим образом: consecutive5xxErrors
.
Как также можно увидеть в документации:
Поле | Тип | Описание | Требуемый |
---|---|---|---|
Последовательные ошибки 5XX | Значение uint32 | Количество ошибок 5xx до того, как хост будет удален из пула соединений. Когда доступ к вышестоящему хосту осуществляется через непрозрачное TCP-соединение, тайм-ауты подключения, ошибка/сбой подключения и события сбоя запроса квалифицируются как ошибка 5xx. По умолчанию эта функция имеет значение 5, но ее можно отключить, установив значение 0. | НЕТ |
Значение для него является фиксированным и не может быть использовано в процентах.
Я нашел запрос на функцию на странице github Istio
, которая, как мне кажется, ссылается на функцию, которую вы хотели бы запустить:
Я бы подумал, что вы могли бы попробовать использовать an EnvoyFilter
для изменения конфигурации Envoy
(не тестировали ее), так как Envoy
в ней есть некоторые поля, связанные с процентами неудач/успехов. Документация, которая должна вам помочь:
- Istio.io: Последние версии: Документы: Ссылка: Конфигурация: Сеть: Фильтр посланника
- Envoyproxy.io: Документы: Посланник: Последние: Введение: Обзор архитектуры: Восходящий поток: Процент сбоев
- Envoyproxy.io: Документы: Посланник: Последние версии: Api v3: Конфигурация: Кластер: v3: Обнаружение выбросов