Итак, эта проблема возникает случайным образом (кажется) и между разными службами.
Например, у нас есть служба 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. Может ли это быть связано с этим?
Спасибо