可视化您的服务网格
此任务向您展示如何可视化 Istio 服务网格的不同方面。
在此任务中,您将安装 Kiali 插件并使用基于 Web 的图形用户界面查看服务网格的服务图和 Istio 配置对象。
此任务使用 Bookinfo 示例应用程序作为整个示例。此任务假定 Bookinfo 应用程序已安装在 bookinfo 命名空间中。
开始之前
按照 Kiali 安装 文档将 Kiali 部署到您的集群中。
生成图形
要验证服务是否在您的集群中运行,请运行以下命令
$ kubectl -n istio-system get svc kiali要确定 Bookinfo URL,请按照说明确定 Bookinfo 入口
GATEWAY_URL。要向服务网格发送流量,您有三个选项
在您的 Web 浏览器中访问
http://$GATEWAY_URL/productpage多次使用以下命令
$ curl http://$GATEWAY_URL/productpage如果您在系统中安装了
watch命令,请使用以下命令持续发送请求$ watch -n 1 curl -o /dev/null -s -w %{http_code} $GATEWAY_URL/productpage
要打开 Kiali UI,请在您的 Kubernetes 环境中执行以下命令
$ istioctl dashboard kiali在您登录后立即显示的**概述**页面中查看服务网格的概述。**概述**页面显示服务网格中所有具有服务的命名空间。以下屏幕截图显示了一个类似的页面
示例概述 要查看命名空间图,请在 Bookinfo 概览卡片的 kebab 菜单中选择“图表”选项。kebab 菜单位于卡片的右上角,看起来像三个垂直点。点击它以查看可用选项。页面看起来类似于
示例图表 该图表表示在一段时间内流经服务网格的流量。它是使用 Istio 遥测生成的。
要查看指标摘要,请选择图表中的任何节点或边,以在右侧的摘要详细信息面板中显示其指标详细信息。
要使用不同的图表类型查看服务网格,请从“图表类型”下拉菜单中选择图表类型。有几种图表类型可供选择:应用程序、版本化应用程序、工作负载、服务。
应用程序图表类型将应用程序的所有版本聚合到单个图表节点中。以下示例显示了一个表示 reviews 应用程序三个版本的单个 reviews 节点。请注意,已禁用“显示服务节点”显示选项。
示例应用程序图表 版本化应用程序图表类型为应用程序的每个版本显示一个节点,但特定应用程序的所有版本都分组在一起。以下示例显示了包含三个节点的 reviews 组框,这些节点表示 reviews 应用程序的三个版本。
示例版本化应用程序图表 工作负载图表类型为服务网格中的每个工作负载显示一个节点。此图表类型不需要您使用
app和version标签,因此如果您选择不在组件上使用这些标签,这可能是您选择的图表类型。示例工作负载图表 服务图表类型显示网格中服务流量的高级聚合。
示例服务图表
检查 Istio 配置
左侧菜单选项将引导至 应用程序、工作负载、服务和 Istio 配置的列表视图。以下屏幕截图显示了 Bookinfo 命名空间的 服务信息
示例详细信息
流量切换
您可以使用 Kiali 流量切换向导来定义要路由到两个或多个工作负载的请求流量的特定百分比。
查看
bookinfo图表的 版本化应用程序图表。确保您已启用 流量分布边缘标签 显示选项以查看路由到每个工作负载的流量百分比。
确保您已启用显示 服务节点 显示选项以查看图表中的服务节点。
Bookinfo 图表选项 通过单击
ratings服务(三角形)节点,将焦点放在bookinfo图表中的ratings服务上。请注意,ratings服务流量均匀地分布到两个ratings工作负载v1和v2(50% 的请求路由到每个工作负载)。显示流量百分比的图表 单击侧面板中找到的 ratings 链接以转到
ratings服务的详细视图。这也可以通过在ratings服务节点上进行二次点击并从上下文菜单中选择“详细信息”来完成。从 操作下拉菜单中,选择 流量切换以访问流量切换向导。
服务操作菜单 拖动滑块以指定要路由到每个工作负载的流量百分比。对于
ratings-v1,将其设置为 10%;对于ratings-v2,将其设置为 90%。加权路由向导 单击 预览按钮以查看向导将生成的 YAML。
路由向导预览 单击 创建按钮并确认以应用新的流量设置。
单击左侧导航栏中的 图表以返回到
bookinfo图表。请注意,ratings服务节点现在带有虚拟服务图标。向
bookinfo应用程序发送请求。例如,要每秒发送一个请求,如果您的系统上安装了watch,则可以执行此命令$ watch -n 1 curl -o /dev/null -s -w %{http_code} $GATEWAY_URL/productpage几分钟后,您会注意到流量百分比将反映新的流量路由,从而确认您的新流量路由已成功将 90% 的所有流量请求路由到
ratings-v2。90% 的 Ratings 流量路由到 ratings-v2
验证 Istio 配置
Kiali 可以验证您的 Istio 资源以确保它们遵循正确的约定和语义。在您的 Istio 资源配置中检测到的任何问题都可以标记为错误或警告,具体取决于不正确配置的严重性。有关 Kiali 执行的所有验证检查的列表,请参阅Kiali 验证页面。
强制执行服务端口名称的无效配置以查看 Kiali 如何报告验证错误。
将
details服务的端口名称从http更改为foo$ kubectl patch service details -n bookinfo --type json -p '[{"op":"replace","path":"/spec/ports/0/name", "value":"foo"}]'通过单击左侧导航栏上的 服务导航到 服务列表。
如果尚未选择,请从 命名空间下拉菜单中选择
bookinfo。注意
details行的 配置列中显示的错误图标。显示无效配置的服务列表 单击 名称列中的 details 链接以导航到服务详细信息视图。
将鼠标悬停在错误图标上以显示描述错误的工具提示。
描述无效配置的服务详细信息 将端口名称更改回
http以更正配置并将bookinfo恢复到其正常状态。$ kubectl patch service details -n bookinfo --type json -p '[{"op":"replace","path":"/spec/ports/0/name", "value":"http"}]'显示有效配置的服务详细信息
查看和编辑 Istio 配置 YAML
Kiali 提供了一个 YAML 编辑器,用于查看和编辑 Istio 配置资源。YAML 编辑器还将在检测到不正确的配置时提供验证消息。
在
bookinfoVirtualService 中引入错误$ kubectl patch vs bookinfo -n bookinfo --type json -p '[{"op":"replace","path":"/spec/gateways/0", "value":"bookinfo-gateway-invalid"}]'单击左侧导航栏上的
Istio 配置以导航到 Istio 配置列表。如果尚未选择,请从 命名空间下拉菜单中选择
bookinfo。注意提醒您存在配置问题的错误图标。
Istio 配置列表错误配置 单击
bookinfo行的 配置列中的错误图标以导航到bookinfo虚拟服务视图。YAML 选项卡已预先选择。请注意与之关联的验证检查通知的行上的颜色突出显示和图标。
YAML 编辑器显示验证通知 将鼠标悬停在红色图标上以查看工具提示消息,该消息会告知您触发错误的验证检查。有关错误原因以及如何解决错误的更多详细信息,请在Kiali 验证页面上查找验证错误消息。
YAML 编辑器显示错误工具提示 将虚拟服务
bookinfo重置回其原始状态。$ kubectl patch vs bookinfo -n bookinfo --type json -p '[{"op":"replace","path":"/spec/gateways/0", "value":"bookinfo-gateway"}]'
其他功能
Kiali 具有比此任务中审查的更多功能,例如与 Jaeger 追踪的集成。
有关这些附加功能的更多详细信息,请参阅Kiali 文档。
为了更深入地探索 Kiali,建议您完成Kiali 教程。
清理
如果您不打算执行任何后续任务,请从集群中删除 Bookinfo 示例应用程序和 Kiali。
要删除 Bookinfo 应用程序,请参阅Bookinfo 清理说明。
要从 Kubernetes 环境中删除 Kiali
$ kubectl delete -f https://raw.githubusercontent.com/istio/istio/release-1.24/samples/addons/kiali.yaml


















