阿里云Kubernetes Service Mesh实践进行时(5): 遥测数据收集、查询及可视化

本文涉及的产品
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: 本系列前面的文章已经通过一个官方示例演示了如何部署应用到上述Istio环境中,并演示了如何设置智能路由、分布式追踪等,本文则是继续使用此示例来尝试 Istio 的遥测数据收集、查询及可视化等功能。
+关注继续查看

概述

注意:在使用阿里云Kubernetes容器服务Istio 1.0的过程中,如果遇到类似CRD版本问题,请参考我们提供的问题分析。 我们会持续更新遇到的问题及其解决方法。

本系列文章已经通过一个官方示例演示了如何部署应用到上述Istio环境中,并演示了如何设置智能路由、分布式追踪等。

阿里云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 的遥测数据收集、查询及可视化等功能。

Prometheus 是 CNCF下的一款开源的为云原生应用程序提供实时监控、警报和时间序列数据库功能的系统。
图片.png

收集遥测数据

首先请参照官方文档中定义的Metrics和日志配置内容,创建一个YAML文件new_telemetry.yaml

使用 istioctl 命令创建新配置,如下:

istioctl create -f samples/bookinfo/new_telemetry.yaml
Created config metric/istio-system/doublerequestcount at revision 2611607
Created config prometheus/istio-system/doublehandler at revision 2611608
Created config rule/istio-system/doubleprom at revision 2611609
Created config logentry/istio-system/newlog at revision 2611610
Created config stdio/istio-system/newhandler at revision 2611611
Created config rule/istio-system/newlogstdio at revision 2611612

在Kubernetes环境中,执行以下命令验证prometheus服务是否已正常运行:

kubectl -n istio-system get svc prometheus
NAME         TYPE        CLUSTER-IP    EXTERNAL-IP   PORT(S)    AGE
prometheus   ClusterIP   172.21.9.66   <none>        9090/TCP   16h

查询遥测数据

确保prometheus服务已正常运行之后,在浏览器中打开BookInfo应用程序的URL: http://{EXTERNAL-IP}/productpage,或者执行多次: curl http://{EXTERNAL-IP}/productpage

执行以下命令打开Prometheus UI:

kubectl -n istio-system port-forward $(kubectl -n istio-system get pod -l app=prometheus -o jsonpath='{.items[0].metadata.name}') 9090:9090 &

Mixer内置了一个Prometheus适配器,并开放了一个服务用于收集监控信息。 Prometheus插件是一个Prometheus服务器,它预置了数据抓取配置,可以从Mixer收集metrics。 它提供了一个持久存储和查询Istio metrics的机制。

配置好的Prometheus插件有三部分:

  • istio-mesh(istio-mixer.istio-system:42422): 所有Mixer产生的mesh metrics;
  • mixer(istio-mixer.istio-system:9093): 所有特定的Mixer metrics。 用于监控Mixer自身;
  • envoy(istio-mixer.istio-system:9102): 由envoy生成原始统计信息;

图片.png

有关查询Prometheus的更多信息,请阅读官方文档

Prometheus 自带了 Web Console,可以进行任何 PromQL 查询和调试工作,非常方便,例如:

图片.png

通过上图不难发现,Prometheus 自带的 Web 界面比较简单,适用于及时查询数据,方便 PromeQL 调试。

它并不是像常见的 Dashboard,在一个页面尽可能展示多的数据,下一节讲述如何使用Grafana来可视化这些数据。

使用Grafana可视化遥测数据

在Kubernetes环境中,执行以下命令验证Grafana服务是否已正常运行:

kubectl -n istio-system get svc grafana
NAME         TYPE        CLUSTER-IP    EXTERNAL-IP   PORT(S)    AGE
....

执行以下命令打开Grafana UI:

kubectl -n istio-system port-forward $(kubectl -n istio-system get pod -l app=grafana -o jsonpath='{.items[0].metadata.name}') 3000:3000 &

Grafana插件是一个预先配置好的Grafana实例,基于基础镜像(grafana/grafana:4.1.2),在其中加入了Prometheus数据源,以及安装了Istio Dashboard。Istio和Mixer的初始安装中就会初始化一个缺省的对所有服务生效的全局Metrics。Istio Dashboard就是依赖这一默认Istio metrics配置和Prometheus插件来完成工作的,如下所示展现了不同的仪表板页面。

Istio Dashboard:
图片.png

Mixer Dashboard:
图片.png

Pilot Dashboard:
图片.png

总结

我们可以利用阿里云Kubernetes容器服务,快速搭建一套用于连接、管理以及安全化微服务的开放平台Istio,为应用引入和配置多个相关服务。本系列前面的文章已经通过一个官方示例演示了如何部署应用到上述Istio环境中,并演示了如何设置智能路由、分布式追踪等,本文则是继续使用此示例来尝试 Istio 的遥测数据收集、查询及可视化等功能。 欢迎大家使用阿里云上的容器服务,快速搭建微服务的开放治理平台Istio,比较简单地集成到自己项目的微服务开发中。

相关实践学习
容器服务Serverless版ACK Serverless 快速入门:在线魔方应用部署和监控
通过本实验,您将了解到容器服务Serverless版ACK Serverless 的基本产品能力,即可以实现快速部署一个在线魔方应用,并借助阿里云容器服务成熟的产品生态,实现在线应用的企业级监控,提升应用稳定性。
云原生实践公开课
课程大纲 开篇:如何学习并实践云原生技术 基础篇: 5 步上手 Kubernetes 进阶篇:生产环境下的 K8s 实践 相关的阿里云产品:容器服务&nbsp;ACK 容器服务&nbsp;Kubernetes&nbsp;版(简称&nbsp;ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情:&nbsp;https://www.aliyun.com/product/kubernetes
相关文章
|
12月前
|
人工智能 缓存 Kubernetes
Kubernetes在AI/大数据领域的 最新进展与大规模实践
根据在[CNCC 2022开源分布式云原生系统技术发展](https://ccf.org.cn/cncc2022/schedule_d_4075)论坛的演讲整理。 ![](https://ata2-img.oss-cn-zhangjiakou.aliyuncs.com/neweditor/08cde176-d1d3-49ae-a1f7-cc025d3f06f3.png) 在云计算技术快速发展的过
804 0
Kubernetes在AI/大数据领域的最新进展与大规模实践
|
12月前
|
Kubernetes Cloud Native 物联网
《workshop专场--容器、消息&IoT专场-开发者动手实践营-容器、消息和IoT-PouchContainer + Kubernetes 云原生业务支持实践》电子版地址
workshop专场--容器、消息&IoT专场-开发者动手实践营-容器、消息和IoT-PouchContainer + Kubernetes 云原生业务支持实践
118 0
《workshop专场--容器、消息&IoT专场-开发者动手实践营-容器、消息和IoT-PouchContainer + Kubernetes 云原生业务支持实践》电子版地址
|
12月前
|
Kubernetes SDN 容器
多租户Kubernetes实践:从容器运行时到SDN
多租户Kubernetes实践:从容器运行时到SDN
101 0
多租户Kubernetes实践:从容器运行时到SDN
|
12月前
|
存储 Kubernetes Cloud Native
KCNA考试 第五章:kubernetes学习实践(2)
KCNA考试 第五章:kubernetes学习实践(2)
KCNA考试 第五章:kubernetes学习实践(2)
|
12月前
|
Kubernetes 负载均衡 数据可视化
KCNA考试 第五章:kubernetes学习实践(1)
KCNA考试 第五章:kubernetes学习实践(1)
KCNA考试 第五章:kubernetes学习实践(1)
|
12月前
|
存储 Kubernetes 负载均衡
Kubernetes 【负载均衡器】 MetalLB 实践
Kubernetes 【负载均衡器】 MetalLB 实践
|
12月前
|
存储 Kubernetes 网络协议
Kubernetes ImagePolicyWebhook与ValidatingAdmissionWebhook【1】动手实践感受区别所在
Kubernetes ImagePolicyWebhook与ValidatingAdmissionWebhook【1】动手实践感受区别所在
|
12月前
|
Kubernetes 容器
《基于Kubernetes的互联网Ingress实践》电子版地址
基于Kubernetes的互联网Ingress实践
109 0
《基于Kubernetes的互联网Ingress实践》电子版地址
|
运维 资源调度 Kubernetes
基于Kubernetes的VM服务实践
近年来,容器已成为云原生应用程序架构的同义词。它们重新定义了打包、分发、部署和管理应用程序的方式。但是,容器本身就是已有Linux技术的重新兴起,只不过这些技术以一种新的、更有用的方式结合在一起。 虽然许多组织正在将基于虚拟机(VM)的应用程序迁移到容器,但虚拟化在数据中心和公有云中仍然普遍存在。我们还看到虚拟化技术以新的方式与容器和Kubernetes结合在一起,为新问题提供创新的解决方案。换句话说,虚拟机也正在成为云原生架构的一部分——这就是容器原生虚拟化。Kubernetes的基石仍然是Linux容器的编排和管理,以创建一个功能强大的分布式系统,用于跨混合云环境部署应用。
114 0
基于Kubernetes的VM服务实践
|
Kubernetes 容器
相关产品
容器服务Kubernetes版
推荐文章
更多