Случайная «ошибка восходящего соединения или отключение / сброс перед заголовками» между службами с Istio 1.3 - PullRequest
0 голосов
/ 11 февраля 2020

Итак, эта проблема возникает случайным образом (кажется) и между разными службами.

Например, у нас есть служба A, которая должна общаться со службой B, и иногда мы получаем эту ошибку, но после какое-то время ошибка исчезает. И эта ошибка не случается слишком часто.

Когда это происходит, мы видим журнал ошибок в сервисе A, выбрасывающий сообщение «ошибка восходящего соединения», но не в сервисе B. Поэтому мы думаем, что это может быть связано с колясками.

Одна вещь, которую мы замечаем, состоит в том, что в службе B мы получаем много этих сообщений об ошибках в контейнере istio-proxy:

[src/istio/mixerclient/report_batch.cc:109] Mixer Report failed with: UNAVAILABLE:upstream connect error or disconnect/reset before headers. reset reason: connection failure

И согласно документации, когда приходит запрос, посланник спрашивает Mixer, все ли в порядке (авторизация и прочее), и если Mixer не отвечает, запрос не выполняется. Вот почему существует опция с именем policyCheckFailOpen. Мы имеем это в false, я думаю, это нормальное значение по умолчанию, мы не хотим, чтобы запрос проходил через go, если Mixer не может быть достигнут, но почему нет?

disablePolicyChecks: true
policyCheckFailOpen: false
controlPlaneSecurityEnabled: false

ПРИМЕЧАНИЕ: istio- политика работает с коляской istio-proxy. Это правильно?

Мы не видим этой ошибки в каком-либо другом сервисе, который также может не работать.

Еще один журнал, который я часто вижу, и этот происходит во всех сервисах, не работает как root с fsGroup, определенной в файлах YAML:

watchFileEvents: "/etc/certs": MODIFY|ATTRIB
watchFileEvents: "/etc/certs/..2020_02_10_09_41_46.891624651": MODIFY|ATTRIB
watchFileEvents: notifying

Один из выводов, который я преследую, касается значений по умолчанию CircleBreakers. Может ли это быть связано с этим?

Спасибо

1 Ответ

0 голосов
/ 11 февраля 2020

Вы видите ошибку из-за невозможности установить sh соединение с istio-policy

Основано на этой проблеме github

Члены сообщества добавляют сюда два ответа, которые могут помочь вам в вашей проблеме


Если mTLS включен глобально, убедитесь, что вы установили controlPlaneSecurityEnabled: true


Я столкнулся с той же проблемой, затем прочитал о выборе протокола . Я понял, что имя порта в определении сервиса должно начинаться, например, с http-. Это исправило проблему для меня. А также . если проблема не устранена, вам может потребоваться проверить tls-проверку пакетов и решить ее с помощью правил назначения и политик.


istio-policy работает с istio прокси коляска. Это правильно?

Да, я только что проверил, и это с коляской.


Дайте мне знать, если это поможет.

...