【问题标题】:How do I debug an Istio envoy connectivity issue?如何调试 Istio 特使连接问题?
【发布时间】:2020-05-11 00:06:11
【问题描述】:

我刚刚设置了一个基于 GKE (Google Cloud) 的 Istio Kubernetes 集群,并且在集群中遇到了一些连接问题。

在从外部世界访问外部 ip 时,我从网关收到 503 Service Unavailable

< HTTP/1.1 503 Service Unavailable
< date: Fri, 24 Jan 2020 16:17:27 GMT
< server: istio-envoy
< content-length: 0 

值得注意的是,它肯定会击中集群。但是,我不知道下一步该去哪里查看为什么该服务显示不可用。

istioctl proxy-status 给出了这个可能是相关的:

istio-ingressgateway-5599b67bcb-5ztp6.istio-system     SYNCED     STALE (Never Acknowledged)     SYNCED     SYNCED     istio-pilot-69c7dc4578-mtm8m     1.1.3*

【问题讨论】:

  • 来自与您的 pod 一起运行的 ingress gateway pod 和 istio 代理容器的日志
  • 我在网关里得到了很多这样的东西...2020-01-24T15:32:37.124384Z info Envoy proxy is NOT ready: failed retrieving Envoy stats: Get http://127.0.0.1:15000/stats?usedonly: net/http: request canceled (Client.Timeout exceeded while awaiting headers) 2020-01-24T15:32:37.898271Z info Envoy proxy is ready
  • 代理只是将这个垃圾邮件发送到日志[2020-01-24 14:29:09.537][12][warning][misc] [external/envoy/source/common/protobuf/utility.cc:174] Using deprecated option 'envoy.api.v2.Listener.use_original_dst' from file lds.proto. This configuration will be removed from Envoy soon. Please see https://www.envoyproxy.io/docs/envoy/latest/intro/deprecated for details.
  • 两个日志都是信息和警告..我很惊讶没有错误日志
  • 是的,我的想法完全正确。有趣的是,即使在访问集群时,我也得到了零日志记录(我希望有所收获)。

标签: networking kubernetes google-kubernetes-engine istio


【解决方案1】:

我的 livenessProbe 和 readynessProbe 似乎与 Istio 的检查有冲突。我注意到一个使代理停止运行的特使错误,因为管理端口与服务端口相同。这对我来说也是新的,但看起来我可能需要为 Kubernetes 领域的活跃/就绪指定一个额外的端口,这样 Istio 就不会抱怨了。

https://github.com/istio/istio/blob/c992106720b19a93ffbf3641913885fddd9c82e3/pilot/proxy/envoy/config.go#L1020

我禁用了 helm/kube liveness/readyness 检查,一切都变得生动起来。

【讨论】:

    【解决方案2】:

    您能否与我们分享您的部署,以检查您是否遇到 Sidecar 问题,或者该问题是否与您的副本有关。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-06-24
      • 2022-06-10
      • 1970-01-01
      • 2019-08-09
      • 2019-07-26
      • 2021-11-30
      • 2011-01-04
      • 1970-01-01
      相关资源
      最近更新 更多