Istio Circuit Breaker, кто его отключает?

В настоящее время я изучаю сервисную сетку Istio версии 1.6. Плоскость данных (прокси-серверы Envoy) настраивается плоскостью управления.

  1. Когда я настраиваю прерыватель цепи, создавая правило назначения, и автоматический выключатель размыкается, прокси-сервер на стороне клиента уже возвращает 503 или прокси-сервер на стороне сервера?
  2. Прокси-сервер sidecar на стороне клиента автоматически направляет запрос к другому доступному экземпляру службы или просто возвращает 503 в контейнер приложения?

Заранее спасибо!


person nikos    schedule 05.06.2020    source источник
comment
Технической документации на автоматический выключатель очень мало. Мне понадобится время, чтобы проверить, откуда отправляется ошибка 503. Между тем, в документации istio есть хороший пошаговый пример.   -  person Piotr Malec    schedule 05.06.2020


Ответы (1)


  1. В записях журнала вы можете проверить их, чтобы определить оба конца соединения, которые были прерваны автоматическим выключателем. IP-адреса обеих сторон соединения присутствуют в сообщении журнала из контейнера istio-proxy.
  {
  insertId: "..."
  labels: {
    k8s-pod/app: "circuitbreaker-jdwa8424"
    k8s-pod/pod-template-hash: "..."
  }
  logName: ".../logs/stdout"
  receiveTimestamp: "2020-06-09T05:59:30.209882320Z"
  resource: {
    labels: {
      cluster_name: "..."
      container_name: "istio-proxy"
      location: "..."
      namespace_name: "circuit"
      pod_name: "circuit-service-a31cb334d-66qeq"
      project_id: "..."
    }
    type: "k8s_container"
  }
  severity: "INFO"
  textPayload: "[2020-06-09T05:59:27.854Z] UO 0 0 0 "-" - - 172.207.3.243:443 10.1.13.216:36774 "
  timestamp: "2020-06-09TT05:59:28.071001549Z"
  }

Сообщение поступает из istio-proxy контейнера, в котором запущен Envoy, на который влияет CircuitBreaker политика, в которую был отправлен запрос. Также есть IP-адрес как источника, так и назначения соединения, которое было прервано.

  1. Он вернет 503. Существует возможность настроить повторные попытки, однако я это сделал не проверять его синергию с CircuitBreaker, и если повторная попытка действительно перейдет к другому модулю, если предыдущая вернула ошибку.

Также ознакомьтесь с наиболее подробным объяснением CircuitBreaker, которое мне удалось найти.

Надеюсь, это поможет.

person Piotr Malec    schedule 10.06.2020