首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Istio Service Mesh中的Envoy和Pilot调试指南

作者:John A. Joyce译者:狄卫华

原文地址:https://preliminary.istio.io/zh/help/ops/traffic-management/proxy-cmd/

本文来自 Istio 官方中文文档(由ServiceMesher 社区翻译)。如果您对该文档有任何问题,欢迎提出建议和贡献,https://preliminary.istio.io/zh/about/contribute/

此任务演示如何使用 和 命令。 命令允许您获取网格的概述并识别导致问题的代理。然后, 可用于检查 Envoy 配置并用于问题排查。

开始之前

部署 Istio 和 Bookinfo 的 Kubernetes 集群(例如,如安装步骤和 Bookinfo 安装步骤中所述使用 安装)。

或者

对于您在 Kubernetes 集群中运行的应用运行类似的命令。

网格概览

命令允许您获取网格的概述。如果你怀疑其中一个 sidecar 没有收到配置或不同步,那么代理状态会通知你。

如果此列表中缺少代理,则表示它当前未连接到 Pilot 实例,因此不会接收任何配置。

表示 Envoy 已经确认了 Pilot 上次发送给它的配置。

表示 Envoy 已经成功同步了集群中的所有端点。

表示 Pilot 没有发送任何信息给 Envoy。这通常是因为 Pilot 没有任何数据可以发送。

表示 Pilot 已向 Envoy 发送更新但尚未收到确认。这通常表明 Envoy 和 Pilot 之间的网络存在问题或 Istio 本身的错误。

检索 Envoy 和 Istio Pilot 之间的差异

命令还可用于通过提供代理 ID 来检索 Envoy 已加载的配置与 Pilot 要发送的配置之间的差异。这可以帮助您准确定位不同步的内容及其问题所在。

在这里,您可以看到监听器和路由匹配但集群并不同步。

Envoy 配置深度解析

命令可用于查看给定的 Envoy 实例的配置方式。然后,可以通过查看 Istio 配置和自定义资源来查明无法检测到的任何问题。要获取给定 pod 的集群、监听器或路由的基本摘要,请使用以下命令(在需要时更改监听器或路由的集群):

为了调试 Envoy,您需要了解 Envoy 集群/监听器/路由/端点以及它们之间如何进行交互。我们将使用带有 和过滤标志的 命令来跟踪 Envoy 以确定将请求从 pod 发送到了 的 reviews pod 上。

1. 如果您在 pod 上查询监听器摘要,您会注意到 Istio 会生成以下监听器:

上的监听器接收进出 pod 的所有流量,然后将请求移交给虚拟监听器。

每个 service IP 一个虚拟监听器,每个出站 TCP/HTTPS 流量一个非 HTTP 监听器。

每个 pod 入站流量暴露的端口一个虚拟监听器。

每个 出站 HTTP 流量的 HTTP 端口一个虚拟监听器。

2. 从上面的摘要中可以看出,每个 sidecar 都有一个绑定到 的监听器,IP tables 将 pod 的所有入站和出站流量路由到这里。此监听器把 设置为 true,这意味着它将请求交给最符合请求原始目标的监听器。如果找不到任何匹配的虚拟监听器,它会将请求发送给返回 404 的 。

3. 我们的请求是到 端口的 HTTP 出站请求,这意味着它被切换到 虚拟监听器。然后,此监听器在其配置的 RDS 中查找路由配置。在这种情况下,它将查找由 Pilot 配置的 RDS 中的路由 (通过 ADS)。

4. 9080 路由配置仅为每个服务提供虚拟主机。我们的请求正在前往 reviews 服务,因此 Envoy 将选择我们的请求与域匹配的虚拟主机。一旦在域上匹配,Envoy 会查找与请求匹配的第一条路径。在这种情况下,我们没有任何高级路由,因此只有一条路由匹配所有内容。这条路由告诉 Envoy 将请求发送到集群。

5. 此集群配置为从 Pilot(通过 ADS)检索关联的端点。因此,Envoy 将使用 字段作为密钥来查找端点列表并将请求代理到其中一个端点。

检查 Bootstrap 配置

到目前为止,我们已经查看了(主要)从 Pilot 检索到的配置,但是 Envoy 需要一些引导程序配置,其中包含可以找到 Pilot 的信息。要查看此内容,请使用以下命令:

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180810G09Y9100?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券