Устранение неполадок при запуске Envoy Proxy

Прокси Envoy, также известный как istio-proxy при использовании в качестве sidecar в вашем workload-поде, перехватывает весь входящий и исходящий трафик в вашем поде внутри сервисной сетки.

Если под не запускается или трафик работает некорректно, используйте следующие инструменты и методы для устранения неполадок:

Содержание

PostStarHookError

Если вы столкнулись с ошибкой PostStarHookError и сообщение об ошибке для пода содержит что-то вроде:

Error: timeout waiting for Envoy proxy to become ready.

Это означает, что прокси не может стать готовым в течение заданного периода времени (30s). Вот распространённые причины этой ошибки:

Недостаточные лимиты CPU или памяти для Sidecar

Когда:

  • На хост-машине высокая нагрузка
  • Частота CPU недостаточна
  • В сервисной сетке слишком много сервисов
  • и т.д.

Тогда sidecar не может обработать конфигурацию xDS от istiod в разумные сроки (30 секунд).

Действие: Увеличьте лимиты CPU и памяти для sidecar.

Брандмауэр

Сервисная сетка требует, чтобы трафик sidecar имел доступ к сервисам в namespace istio-system.

Если в логах istio-proxy вы видите сообщения с указанием "cannot connect to istiod", проверьте конфигурацию брандмауэра на вашей платформе и обратитесь к администратору платформы для разрешения трафика workload в namespace istio-system:

Конкретная конфигурация зависит от CNI, используемого на вашей платформе:

  • (Общее) NetworkPolicy
  • (Calico) NetworkPolicy, GlobalNetworkPolicy в projectcalico.org/v3
  • (Cilium/KubeOVN) CiliumNetworkPolicy

Однако в редких случаях (например, HuaweiCloud CCE & Ubuntu 22.04) из-за бага, вызванного CCE VPC CNI, нельзя использовать initContainer istio-init для перехвата сетевого трафика. В этом случае используйте Istio CNI для настройки перехвата.

Проблемные WASM / EnvoyFilter плагины

WASM и EnvoyFilters — мощные, но потенциально нарушающие работу функции в Istio.

Неправильно настроенные WASM или EnvoyFilter плагины могут вызывать непредсказуемое поведение в сервисной сетке. Поэтому, если sidecar Istio кажется зависшим при запуске, сначала проверьте подозрительные EnvoyFilters.

Альтернативно, если для workload или глобально установлен WASM плагин, удалите его, чтобы проверить, работает ли прокси Istio корректно после этого.