概述
注意:在使用阿里云Kubernetes容器服务Istio 1.0的过程中,如果遇到类似CRD版本问题,请参考我们提供的问题分析。 我们会持续更新遇到的问题及其解决方法。
随着微服务、云和容器化架构的出现,构建系统的方式也随之改变,应用程序是分布式的,而且瞬息万变。底层的基础设施和网络服务愈加健壮,应用程序层需要跟上技术的发展步伐。因此,大多数的故障都将来自应用程序层或者是不同应用程序之间的复杂交互。
这种复杂性增加了把系统状态可视化的难度,可观测性的概念以及如何选择恰当的工具洞察也越来越受到社区的重视。简单来说,可以将可观测性视为监控的超集,即包括监控、预警/可视化、分布式系统跟踪、日志聚合和分析。
本系列文章已经通过一个官方示例演示了如何部署应用到上述Istio环境中,并演示了如何设置智能路由、分布式追踪以及Istio 的遥测数据收集、查询及可视化等功能,也基于此示例演示了如何在Istio中使用故障诊断与检测工具Weave Scope。
阿里云Kubernetes Service Mesh实践进行时(1): Istio初体验
阿里云Kubernetes Service Mesh实践进行时(2): 通过示例深入Istio
阿里云Kubernetes Service Mesh实践进行时(3): 智能路由
阿里云Kubernetes Service Mesh实践进行时(4): 分布式追踪
阿里云Kubernetes Service Mesh实践进行时(5): 遥测数据收集、查询及可视化
阿里云Kubernetes Service Mesh实践进行时(6): 故障诊断与检测工具Weave Scope
阿里云Kubernetes Service Mesh实践进行时(7): 可观测性分析服务Kiali
本文则是重点介绍如何在Istio中使用可观测性分析服务Kiali。
体验Kiali服务
在Kubernetes环境中,执行以下命令验证Kiali服务是否已正常运行:
kubectl -n istio-system get svc kiali
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
....
点击左侧的 服务
,在右侧点击创建的Kiali服务提供的访问地址,如下所示:
实时了解服务状态
打开页面,可以查看服务的概况,或者专注于一个特殊的微服务细节;这样便于轻松发现并纠正问题,确保你的容器化服务应用的稳定与性能,如下图所示:
服务 reviews
的具体内容,包括了标签、端口号、健康状态信息、pods、deployments、以及virtual services等,如下图所示:
在Kiali中查看Metrics时,需要将Grafana服务(
grafana
)的类型设置为LoadBalancer
。
Istio配置
点击Kiali页面中的 Istio Config
,可以查看整个Istio中具体的配置内容细节,包括创建的资源类型,如Virtual Service、 Rule、Destination Rule等,如下图所示。
点击每一项,可以查看具体的配置内容,如下图显示了Virtual Service reviews
的配置内容:
分布式追踪集成
Kiali页面中集成了Jaeger UI,点击Kiali页面中的 Distributed Tracing
,可以查看分布式服务追踪信息的结果。Kiali充分利用Jaeger现有的能力,具体的分布式追踪介绍可以参见本系列中的第四篇文章。
在Kiali中集成Jaeger UI时,需要将Jaeger查询服务(
jaeger-query
)的类型设置为LoadBalancer
。
总结
我们可以利用阿里云Kubernetes容器服务,快速搭建一套用于连接、管理以及安全化微服务的开放平台Istio,为应用引入和配置多个相关服务。本系列文章已经通过一个官方示例演示了如何部署应用到上述Istio环境中,并演示了如何设置智能路由、分布式追踪以及Istio 的遥测数据收集、查询及可视化等功能,也基于此示例演示了如何在Istio中使用故障诊断与检测工具Weave Scope。本文则是重点介绍如何在Istio中使用可观测性分析服务Kiali。
欢迎大家使用阿里云上的容器服务,快速搭建微服务的开放治理平台Istio,比较简单地集成到自己项目的微服务开发中。