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

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
简介: 本系列前面的文章已经通过一个官方示例演示了如何部署应用到上述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,比较简单地集成到自己项目的微服务开发中。

相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
16天前
|
Kubernetes 容器
K8S的Service的LoadBanlance之Metallb解决方案
本文介绍了如何在Kubernetes中使用MetalLB来实现Service的LoadBalancer功能,包括MetalLB的部署、配置、以及通过创建地址池和部署服务来测试MetalLB的过程。
26 1
K8S的Service的LoadBanlance之Metallb解决方案
|
12天前
|
人工智能 Prometheus 监控
使用 NVIDIA NIM 在阿里云容器服务(ACK)中加速 LLM 推理
本文介绍了在阿里云容器服务 ACK 上部署 NVIDIA NIM,结合云原生 AI 套件和 KServe 快速构建高性能模型推理服务的方法。通过阿里云 Prometheus 和 Grafana 实现实时监控,并基于排队请求数配置弹性扩缩容策略,提升服务稳定性和效率。文章提供了详细的部署步骤和示例,帮助读者快速搭建和优化模型推理服务。
71 7
使用 NVIDIA NIM 在阿里云容器服务(ACK)中加速 LLM 推理
|
14天前
|
人工智能 Prometheus 监控
使用NVIDIA NIM在阿里云ACK中加速LLM推理
介绍在阿里云ACK集群上结合AI套件能力快速部署NVIDIA NIM模型推理服务,同时提供全面的监控指标和实现弹性伸缩。
使用NVIDIA NIM在阿里云ACK中加速LLM推理
|
16天前
|
Kubernetes 网络虚拟化 Docker
K8S镜像下载报错解决方案(使用阿里云镜像去下载kubeadm需要的镜像文件)
文章提供了一个解决方案,用于在无法直接访问Google镜像仓库的情况下,通过使用阿里云镜像来下载kubeadm所需的Kubernetes镜像。
40 3
K8S镜像下载报错解决方案(使用阿里云镜像去下载kubeadm需要的镜像文件)
|
14天前
|
Cloud Native 持续交付 Docker
云原生技术实践:Docker容器化部署教程
【9月更文挑战第4天】本文将引导你了解如何利用Docker这一云原生技术的核心工具,实现应用的容器化部署。文章不仅提供了详细的步骤和代码示例,还深入探讨了云原生技术背后的哲学,帮助你理解为何容器化在现代软件开发中变得如此重要,并指导你如何在实际操作中运用这些知识。
|
19天前
|
运维 Kubernetes 监控
自动化运维:使用Python脚本实现系统监控云原生技术实践:Kubernetes在现代应用部署中的角色
【8月更文挑战第31天】在现代IT运维管理中,自动化已成为提高效率和准确性的关键。本文将通过一个Python脚本示例,展示如何实现对服务器的自动监控,包括CPU使用率、内存占用以及磁盘空间的实时监测。这不仅帮助运维人员快速定位问题,也减轻了日常监控工作的负担。文章以通俗易懂的语言,逐步引导读者理解并实践自动化监控的设置过程。 【8月更文挑战第31天】本文旨在探索云原生技术的核心—Kubernetes,如何革新现代应用的开发与部署。通过浅显易懂的语言和实例,我们将一窥Kubernetes的强大功能及其对DevOps文化的影响。你将学会如何利用Kubernetes进行容器编排,以及它如何帮助你的
|
19天前
|
运维 Kubernetes Cloud Native
拥抱云原生:Kubernetes 在现代应用部署中的实践
【8月更文挑战第31天】在数字化转型的浪潮中,云原生技术成为推动企业创新和效率提升的关键力量。本文将深入探讨如何利用 Kubernetes,这一强大的容器编排工具,来部署和管理现代应用。我们将从基础架构搭建开始,一步步引导您配置集群,并通过实际代码示例演示如何部署一个简单的应用。无论您是云原生新手还是希望深化理解,这篇文章都将为您提供实操经验和理论知识的融合之旅。
|
19天前
|
Kubernetes Cloud Native 应用服务中间件
云原生技术入门与实践:Kubernetes的简易部署
【8月更文挑战第31天】云原生技术已成为现代软件部署的黄金标准,而Kubernetes作为其核心组件之一,在容器编排领域独领风骚。本文将引导您通过简单的步骤,快速部署一个Kubernetes集群,并运行一个简单的应用,让您轻松迈入云原生的世界。
|
19天前
|
Kubernetes Cloud Native 应用服务中间件
云原生入门:Kubernetes 和容器化技术的实践之旅
【8月更文挑战第31天】 在这篇文章中,我们将踏上一场探索云原生世界的旅程。我们将从基础的容器化技术讲起,逐步深入到Kubernetes这个强大的容器编排工具。文章会通过一个实际的例子,带领大家了解如何将一个简单的应用容器化并在Kubernetes集群上运行起来。无论你是云原生领域的新手,还是希望巩固知识的开发者,这篇文章都会为你提供一次实操的机会,让你对云原生有一个更加直观的认识。
|
19天前
|
Cloud Native 云计算 开发者
云原生技术实践:Docker容器化部署示例
【8月更文挑战第31天】本文通过深入浅出的方式,介绍了如何在云计算时代利用Docker容器技术实现应用的快速部署和高效管理。文章不仅解释了Docker的基本概念和优势,还提供了详细的操作步骤和代码示例,帮助初学者轻松入门。让我们一起探索云原生的世界,解锁应用部署的新姿势!

相关产品

  • 容器服务Kubernetes版