Устранение неполадок при запуске Envoy Proxy
Прокси Envoy, также известный как istio-proxy при использовании в качестве sidecar в вашем workload-поде, перехватывает весь входящий и исходящий трафик в вашем поде внутри service mesh.
Если под не запускается или трафик работает некорректно, используйте следующие инструменты и методы для устранения неполадок:
PostStarHookError
Если вы столкнулись с ошибкой PostStarHookError и сообщение об ошибке для пода содержит что-то вроде:
Это означает, что прокси не может стать готовым в течение заданного периода времени (30s). Вот распространённые причины этой ошибки:
Недостаточные лимиты CPU или памяти для sidecar
Когда:
- На хост-машине высокая нагрузка
- Частота CPU недостаточна
- Слишком много сервисов в service mesh
- и т.д.
Тогда sidecar не может обработать конфигурацию xDS от istiod в разумные сроки (30s).
Действие: Увеличьте лимиты CPU и памяти для sidecar.
Брандмауэр
Service mesh требует, чтобы трафик 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 плагины могут вызвать непредсказуемое поведение в service mesh. Поэтому, если sidecar Istio кажется зависшим при запуске, сначала проверьте подозрительные EnvoyFilters.
Альтернативно, если для workload или глобально установлен WASM плагин, удалите его, чтобы проверить, функционирует ли прокси Istio корректно после этого.