служба нагрузочного тестирования kubernetes (с сеткой службы istio)

#kubernetes #load-testing #istio

Вопрос:

При нагрузочном тестировании службы kubernetes, где маршрутизация выполняется через istio, все службы в кластере перестают отвечать на запросы. Это происходит, когда происходит 100% сбой службы, которая проходит нагрузочное тестирование.

Есть ли способ предотвратить это? Должны ли мы применить прерывание цепи istio?

Ответ №1:

Короче говоря, да. Схема автоматического выключателя была разработана для определения того, когда конечная точка реагирует медленно или не реагирует вообще.

Медленное реагирование конечных точек особенно проблематично, потому что, как вы уже выяснили, это может привести к задержке вашей системы. Автоматический выключатель-это прокси-сервер, который управляет потоком к конечной точке. Если конечная точка выходит из строя или работает слишком медленно (в зависимости от вашей конфигурации), прокси-сервер откроет канал для контейнера.

С connectionPool помощью параметров вы можете установить, сколько запросов вы хотите ожидать по сравнению с тем, который устанавливается. Если вы установите http1MaxPendingRequests значение 1 и maxRequestsPerConnection 1, любые дополнительные запросы, кроме этого, будут отклонены до тех пор, пока не будет обработан ожидающий запрос.

Еще одна полезная опция-обнаружение выбросов. Он обнаруживает неисправные экземпляры, а затем делает их недоступными в течение предварительно настроенного времени (иногда называемого окном сна). Пока контейнер находится в этот период времени, он исключен из маршрутизации и балансировки нагрузки и имеет время для восстановления, не будучи перегруженным дополнительными запросами.

     outlierDetection:
      consecutive5xxErrors: 7
      interval: 5m
      baseEjectionTime: 15m
 

Приведенная выше конфигурация просит систему сканировать хост каждые 5 минут, и в случае 7 последовательных сбоев он будет удален на 15 минут.