部署Prometheus、Grafana、Zipkin、Kiali监控度量Istio

1. 模块简介

  • Prometheus 是一个开源的监控系统和时间序列数据库。Istio 使用 Prometheus 来记录指标,跟踪 Istio 和网格中的应用程序的健康状况。
  • Grafana 是一个用于分析和监控的开放平台。Grafana 可以连接到各种数据源,并使用图形、表格、热图等将数据可视化。通过强大的查询语言,你可以定制现有的仪表盘并创建更高级的可视化。通过 Grafana,我们可以监控 Istio 安装和服务网格中运行的应用程序的健康状况。
  • Zipkin 是一个分布式追踪系统。我们可以轻松地监控服务网格中发生的分布式事务,发现任何性能或延迟问题。为了让我们的服务参与分布式追踪,我们需要在进行任何下游服务调用时传播服务的 HTTP 头信息。尽管所有的请求都要经过 Istio sidecar,但 Istio 没有办法将出站请求与产生这些请求的入站请求联系起来。通过在应用程序中传播相关的头信息可以帮助 Zipkin 将这些跟踪信息拼接起来。
  • Kiali 是一个基于 Istio 的服务网格的管理控制台。它提供了仪表盘、可观察性,并让我们通过强大的配置和验证能力来操作网格。它通过推断流量拓扑来显示服务网格,并显示网格的健康状况。Kiali 提供了详细的指标,强大的验证,Grafana 访问,以及与 Jaeger 的分布式追踪的强大集成。

2. 部署Prometheus

2.1 安装Prometheus

2.1.1 拉取prometheus镜像

安装 Prometheus,直接采用 Istio 安装包中 /samples/addons 文件夹中的prometheus.yaml进行安装

cd /opt/istio-1.17.8/samples/addons/
ls -hl

在这里插入图片描述
打开prometheus.yaml或者grep image prometheus.yaml查看到,安装prometheus需要用到两个镜像:jimmidyson/configmap-reload:v0.5.0和prom/prometheus:v2.34.0
在这里插入图片描述
提前将镜像拉取下来,加载到各个节点,或者确保每个节点都可以正常下载镜像

docker pull jimmidyson/configmap-reload:v0.5.0
docker pull prom/prometheus:v2.34.0
docker save jimmidyson/configmap-reload:v0.5.0 -o configmap-reload-v0.5.0.img
docker save prom/prometheus:v2.34.0 -o prometheus-v2.34.0.img
docker load < configmap-reload-v0.5.0.img
docker load < prometheus-v2.34.0.img

2.1.2 安装prometheus

kubectl apply -f prometheus.yaml

在这里插入图片描述

2.1.3 检查prometheus是否运行

kubectl get deploy -n istio-system

在这里插入图片描述

kubectl get pod -n istio-system -o wide

在这里插入图片描述

2.1.4 启用prometheus dashboard

验证了通过使用 Istio CLI 中的 dashboard 命令,打开 Prometheus 仪表板存在问题,需要远程访问就不行了

istioctl dashboard prometheus

在这里插入图片描述
采用另一种方法,通过将prometheus这个service的类型从ClusterIP改成NodePort(type: NodePort)

kubectl get service -n istio-system -o wide
kubectl edit service prometheus -n istio-system
kubectl get service -n istio-system -o wide
kubectl get pods -o wide -A

在这里插入图片描述
通过上述命令输出可以得到prometheus ui地址,在浏览器中打开 http://172.19.0.243:31878/,进入 Prometheus 仪表盘,如下图所示:在这里插入图片描述

2.2 部署Nginx应用

2.2.1 编写nginx deploy文件

vim nginx.yaml

---
apiVersion: apps/v1
kind: Deployment
metadata:name: nginx
spec:replicas: 1selector:matchLabels:app: nginxtemplate:metadata:labels:app: nginxspec:containers:- name: nginximage: nginx:latestimagePullPolicy: IfNotPresentports:- containerPort: 80
---
apiVersion: v1
kind: Service
metadata:name: ngx-servicelabels:app: nginx
spec:type: NodePortselector:app: nginxports:- port: 80targetPort: 80nodePort: 32500

2.2.2 创建nginx应用

kubectl apply -f nginx.yaml

在这里插入图片描述

2.2.3 查看pod及svc服务

在这里插入图片描述

2.2.4 访问nginx

根据上面查看的信息,访问http://172.19.0.247:32500/
在这里插入图片描述

3. 部署Grafana

3.1 安装Grafana

3.1.1 拉取grafana镜像

安装 Grafana ,直接采用 Istio 安装包中 /samples/addons 文件夹中的grafana.yaml进行安装,确保在部署 Grafana 之前部署 Promeheus 插件,因为 Grafana 使用 Prometheus 作为其数据源。

cd /opt/istio-1.17.8/samples/addons/
ls -hl

在这里插入图片描述
打开grafana.yaml或者grep image grafana.yaml查看到,安装grafana需要用到的镜像:grafana/grafana:9.0.1

在这里插入图片描述

提前将镜像拉取下来,加载到各个节点,或者确保每个节点都可以正常下载镜像

docker pull grafana/grafana:9.0.1
docker save docker.io/grafana/grafana:9.0.1 -o grafana-9.0.1.img
docker load < grafana-9.0.1.img

3.1.2 安装grafana

kubectl apply -f grafana.yaml

在这里插入图片描述

3.1.3 检查grafana是否运行

kubectl get deploy -n istio-system

在这里插入图片描述

kubectl get pod -n istio-system -o wide

在这里插入图片描述

3.1.4 启用grafana dashboard

验证了通过使用 Istio CLI 中的 dashboard 命令,打开 grafana 仪表板存在问题,需要远程访问就不行了

istioctl dashboard grafana 

在这里插入图片描述

采用另一种方法,通过将grafana 这个service的类型从ClusterIP改成NodePort(type: NodePort)

kubectl get service -n istio-system -o wide
kubectl edit service grafana -n istio-system
kubectl get service -n istio-system -o wide
kubectl get pods -o wide -A

在这里插入图片描述

通过上述命令输出可以得到grafana ui地址,在浏览器中打开 http://172.19.0.247:31936,进入 grafana 仪表盘,如下图所示:
在这里插入图片描述
点击搜索框和 istio 文件夹,查看已安装的仪表盘,如下图所示:
在这里插入图片描述

3.2 Istio Grafana仪表盘

3.2.1 Istio 控制平面仪表盘(Istio Control Plane Dashboard)

从 Istio 控制平面仪表盘,我们可以监控 Istio 控制平面的健康和性能
在这里插入图片描述

Istio Control Plane Dashboard 仪表盘将向我们展示控制平面的资源使用情况(内存、CPU、磁盘、Go routines),以及关于 Pilot、Envoy 和 Webhook 的信息。

3.2.2 Istio 网格仪表盘(Istio Mesh Dashboard)

网格仪表盘为我们提供了在网格中运行的所有服务的概览。仪表盘包括全局请求量、成功率以及 4xx 和 5xx 响应的数量
在这里插入图片描述

3.2.3 Istio 性能仪表盘(Istio Performance Dashboard)

性能仪表盘向我们展示了 Istio 主要组件在稳定负载下的资源利用率

3.2.4 Istio 服务仪表盘(Istio Service Dashboard)

服务仪表盘允许我们在网格中查看服务的细节。

我们可以获得关于请求量、成功率、持续时间的信息,以及显示按来源和响应代码、持续时间和大小的传入请求的详细图表
在这里插入图片描述

3.2.5 Istio Wasm 扩展仪表盘(Istio Wasm Extension Dashboard)

Istio Wasm 扩展仪表盘显示与 WebAssembly 模块有关的指标。从这个仪表盘,我们可以监控活动的和创建的 Wasm 虚拟机,关于获取删除 Wasm 模块和代理资源使用的数据。
在这里插入图片描述

3.2.6 工作负载仪表盘(Istio Workload Dashboard)

这个仪表盘为我们提供了一个工作负载的详细指标分类
在这里插入图片描述

4. 部署Zipkin

4.1 安装Zipkin

4.1.1 拉取Zipkin 镜像

安装 Zipkin ,直接采用 Istio 安装包中 /samples/addons/extras文件夹中的zipkin.yaml进行安装。

cd /opt/istio-1.17.8/samples/addons/extras 
ls -hl

在这里插入图片描述

打开zipkin.yaml或者grep image zipkin.yaml查看到,安装zipkin需要用到的镜像:openzipkin/zipkin-slim:2.23.14
在这里插入图片描述

提前将镜像拉取下来,加载到各个节点,或者确保每个节点都可以正常下载镜像

docker pull openzipkin/zipkin-slim:2.23.14
docker save openzipkin/zipkin-slim:2.23.14  -o zipkin-slim-2.23.14.img
docker load < zipkin-slim-2.23.14.img

4.1.2 安装zipkin

kubectl apply -f zipkin.yaml

在这里插入图片描述

4.1.3 检查zipkin是否运行

kubectl get deploy -n istio-system

在这里插入图片描述

kubectl get pod -n istio-system -o wide

在这里插入图片描述

4.1.4 启用zipkin dashboard

验证了通过使用 Istio CLI 中的 dashboard 命令,打开 zipkin仪表板存在问题,需要远程访问就不行了

istioctl dashboard zipkin

在这里插入图片描述

采用另一种方法,通过将zipkin这个service的类型从ClusterIP改成NodePort(type: NodePort)

kubectl get service -n istio-system -o wide
kubectl edit service zipkin -n istio-system
kubectl get service -n istio-system -o wide
kubectl get pods -o wide -A

在这里插入图片描述

通过上述命令输出可以得到zipkin ui地址,在浏览器中打开 http://172.19.0.243:31768,进入 zipkin仪表盘,如下图所示:
在这里插入图片描述

5. 部署Kiali

5.1 安装Kiali

5.1.1 拉取Kiali镜像

安装 Kiali,直接采用 Istio 安装包中 /samples/addons文件夹中的kiali.yaml进行安装。

cd /opt/istio-1.17.8/samples/addons/
ls -hl

在这里插入图片描述

打开kiali.yaml或者grep image kiali.yaml查看到,安装kiali需要用到的镜像:quay.io/kiali/kiali:v1.63
在这里插入图片描述

提前将镜像拉取下来,加载到各个节点,或者确保每个节点都可以正常下载镜像

docker pull quay.io/kiali/kiali:v1.63
docker save quay.io/kiali/kiali:v1.63  -o kiali-v1.63.img
docker load < kiali-v1.63.img

5.1.2 安装kiali

kubectl apply -f kiali.yaml

在这里插入图片描述

注意: 修改kiali.yaml中的imagePullPolicy策略,将Always修改为IfNotPresent,可采用离线的镜像

5.1.3 检查kiali是否运行

kubectl get deploy -n istio-system

在这里插入图片描述

kubectl get pod -n istio-system -o wide

在这里插入图片描述

5.1.4 启用kiali dashboard

验证了通过使用 Istio CLI 中的 dashboard 命令,打开 zipkin仪表板存在问题,需要远程访问就不行了

istioctl dashboard kiali 

在这里插入图片描述

采用另一种方法,通过将zipkin这个service的类型从ClusterIP改成NodePort(type: NodePort)

kubectl get service -n istio-system -o wide
kubectl edit service kiali -n istio-system
kubectl get service -n istio-system -o wide
kubectl get pods -o wide -A

在这里插入图片描述

通过上述命令输出可以得到kiali ui地址,在浏览器中打开 http://172.19.0.247:30965,进入 zipkin仪表盘,如下图所示:
在这里插入图片描述
Kiali 可以生成一个像下图这样的服务图
在这里插入图片描述

该图向我们展示了服务的拓扑结构,并将服务的通信方式可视化。它还显示了入站和出站的指标,以及通过连接 Jaeger 和 Grafana(如果安装了)的追踪。图中的颜色代表服务网格的健康状况。红色或橙色的节点可能需要注意。组件之间的边的颜色代表这些组件之间的请求的健康状况。节点形状表示组件的类型,如服务、工作负载或应用程序。

节点和边的健康状况会根据用户的偏好自动刷新。该图也可以暂停以检查一个特定的状态,或回放以重新检查一个特定的时期。

Kiali 提供创建、更新和删除 Istio 配置的操作,由向导驱动。我们可以配置请求路由、故障注入、流量转移和请求超时,所有这些都来自用户界面。如果我们有任何现有的 Istio 配置已经部署,Kiali 可以验证它并报告任何警告或错误。

此文仅记录各模块的安装部署

6. 参考文献

https://www.cnblogs.com/zhangmingcheng/p/15700249.html
https://www.cnblogs.com/renshengdezheli/p/16836943.html
https://www.jiagou.com/post/43-istio-config/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/462910.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深入理解Redis的四种模式

Redis是一个内存数据存储系统&#xff0c;支持多种不同的部署模式。以下是Redis的四种主要部署模式。 1、单机模式 单机模式是最简单的部署模式&#xff0c;Redis将数据存储在单个节点上。这个节点包括一个Redis进程和一个持久化存储。单机模式非常适合小型应用程序或者开发和…

uln2003驱动28BYJ-48步进电机

欢迎入群共同学习交流 时间记录&#xff1a;2024/11/2 一、模块解析 1.uln2003 E脚&#xff1a;接GND COM脚&#xff1a;接VCC外部电源 1-7B&#xff1a;输入引脚 1-7C&#xff1a;输出引脚&#xff0c;输入与输出反向 无法输出高电平&#xff0c;外围电路需要接上拉电路…

使用 PyCharm 构建 FastAPI 项目:零基础入门 Web API 开发

使用 PyCharm 构建 FastAPI 项目&#xff1a;零基础入门 Web API 开发 本文提供了一份完整的 FastAPI 入门指南&#xff0c;涵盖从环境搭建、依赖安装到创建并运行一个简单的 FastAPI 应用的各个步骤。通过 FastAPI 和 Uvicorn&#xff0c;开发者可以快速构建现代化的 Web API…

SAP ABAP开发学习——BAPI

目录 业务对象 概念 ​编辑业务对象浏览 BAPI BAPI的浏览 BAPI的调用 BAPI的确认和返回 BAPI的创建 MM/SD常用BAPI 附加&#xff1a;长文本修改 业务对象 概念 业务对象浏览 进入SWO3查看 双击BUS2012 双击下图上方红色位置可以看到BAPI方法的内容 BAPI BAPI(Busines…

《高频电子线路》 —— 电感三端LC振荡器

文章内容来源于【中国大学MOOC 华中科技大学通信&#xff08;高频&#xff09;电子线路精品公开课】&#xff0c;此篇文章仅作为笔记分享。 电感三端LC振荡器 基本原理&#xff08;哈特莱电路&#xff09; 在高频下直流电阻对交流电相阻抗无穷大&#xff0c;相当于开路。谐振回…

它真能替代Express?tinyhttp用速度和轻量征服开发者

它真能替代Express&#xff1f;tinyhttp用速度和轻量征服开发者 如果你是个 Express 粉丝&#xff0c;又经常为它的历史遗留问题头疼&#xff0c;那么有个好消息要告诉你&#xff1a;tinyhttp 来啦&#xff01;这款专注于轻量、快速的 Web 框架正在以一种更现代的方式挑战 Expr…

【时间之外】IT人求职和创业应知【25】

目录 新闻一&#xff1a;AI流量变现财富峰会在深圳举办 新闻二&#xff1a;江苏省加快释放数据要素价值&#xff0c;推动数据产业发展 新闻三&#xff1a;全国大中城市巡回招聘温州站&#xff08;民营企业专场&#xff09;举办 认知决定你的赚钱能力。以下是今天可能影响你求…

qt QGroupBox详解

1、概述 QGroupBox是Qt框架中的一个容器控件&#xff0c;主要用于组织和管理一组相关的控件&#xff08;如按钮、复选框、文本框等&#xff09;&#xff0c;并为这些控件提供一个框架和标题。通过使用QGroupBox&#xff0c;可以创建具有逻辑分组和视觉层次结构的用户界面&…

从 vue 源码看问题 — vue 初始化都做了什么事?

前言 最近想要对 Vue2 源码进行学习&#xff0c;主要目的就是为了后面在学习 Vue3 源码时&#xff0c;可以有一个更好的对比和理解&#xff0c;所以这个系列暂时不会涉及到 Vue3 的内容&#xff0c;但是 Vue3 的核心模块和 Vue2 是一致的&#xff0c;只是在实现上改变了方式、…

nginx系列--(一)--调试环境搭建

辅助脚本&#xff1a; #!/bin/bash mkdir -p $(pwd)/nginxhome # 生成 Makefile,--prefix need a absolute path --with-stream表示要包括stream模块 auto/configure --prefix$(pwd)/nginxhome --with-stream # lsof -i tcp:10086 && fuser -k 10086/tcp ||true # 定…

Qt/C++地图导航app/支持qml/手机运行/输入起点终点规划路径/模拟轨迹移动

一、前言说明 搞Qt地图开发这块&#xff0c;随着研究的深入&#xff0c;用户的需求变化&#xff0c;最近又需要在手机上运行&#xff0c;由于本地图组件依赖浏览器控件&#xff0c;而手机安卓上的Qt并没有带qwebengine控件&#xff0c;怎么办呢&#xff0c;不断的努力验证下&a…

使用VS Code 安装VUE.js开发环境的搭建并创建第一个项目

初步掌握VUE.js开发环境的搭建并创建第一个项目的操作方法和实验步骤 题目 安装Visual Studio Code。安装VS Code汉化插件。安装Vue官方支持插件。使用VS Code运行第一个HTML页面。安装Node.js并验证其版本。验证npm版本。配置npm的下载镜像源。配置Yarn的下载镜像源。使用Vi…

记本地第一次运行seatunnel示例项目

前置 静态源码编译通过&#xff1a;https://blog.csdn.net/u011924665/article/details/143372464 参考 seatunnel官方的开发环境搭建文档&#xff1a;https://seatunnel.incubator.apache.org/zh-CN/docs/2.3.5/contribution/setup 安装scala 下载scala 去官网下载&…

Maven下载安装配置(环境、本地仓库、阿里云、jdk、idea)(Win11)

目录 Maven3.9.9工具参考下载安装配置环境变量配置验证是否安装完成本地仓库位置存放配置阿里云镜像加速配置jdk版本 配置 idea Maven3.9.9 工具 系统&#xff1a;Windows 11 环境&#xff1a;JDK-8 软件&#xff1a;IDEA-2024.2.1 参考 本人写的《JDK安装与环境配置&#…

袁庭新陕西理工大学演讲——AIGC时代面临的机遇与挑战

大家好&#xff0c;我是袁庭新。分享一篇我在陕西理工大学给计算机专业、人工智能专业和网络工程专业的演讲内容。 各位计算机学院的小伙伴们&#xff0c;大家好啊&#xff01;欢迎各位来到今天的分享会&#xff0c;非常荣幸能在这里和大家相聚。今天在这里&#xff0c;我要与大…

以客户为导向在开源 AI 智能名片 2 + 1 链动模式 S2B2C 商城小程序内容创作中的实践与价值

摘要&#xff1a;本文深入探讨了在开源 AI 智能名片 2 1 链动模式 S2B2C 商城小程序相关内容创作中以客户为导向的方法和意义。阐述了如何在创作过程中通过与客户对话和转换客户视角来优化内容&#xff0c;以提升该小程序在市场中的竞争力和用户接受度。 一、引言 在数字化商…

QT——TCP网络调试助手

目录 一.项目展示 ​编辑 二.开发流程 三.QTcpServer、QTcpSocket、QUdpSocket类的学习 1.QTcpServer服务端 2.QTcpSocket客户端 3.Udp通信 四.网络调试助手 1.首先我们实现当用户选择不同协议类型时不同的UI组件如何切换 2.实现打开/关闭按键图片的切换 方式一&…

【CSS3】css开篇基础(5)

1.❤️❤️前言~&#x1f973;&#x1f389;&#x1f389;&#x1f389; Hello, Hello~ 亲爱的朋友们&#x1f44b;&#x1f44b;&#xff0c;这里是E绵绵呀✍️✍️。 如果你喜欢这篇文章&#xff0c;请别吝啬你的点赞❤️❤️和收藏&#x1f4d6;&#x1f4d6;。如果你对我的…

C++学习路线(数据库部分)二

类型 整形类型 整数类型是数据库中最基本的数据类型。标准SQL中支持INTEGER和SMALLINT这两种数据类型。MySQL数据库除了支持这两种类型以外&#xff0c;还扩展支持了TINYINT、MEDIUMINT和BIGINT。下表从不同整数类型的字节数、取值范围等方面进行对比。 类型名称后面的小括号…

IDEA中通义灵码的使用技巧

大家好&#xff0c;我是 V 哥。在日常写代码的过程中&#xff0c;通过 AI 工具辅助开发已是当下程序员惯用的方式&#xff0c;V 哥在使用了众多的 AI 工具后&#xff0c;多数情况下&#xff0c;选择通义灵码来辅助开发&#xff0c;尤其是解释代码和生成单元测试功能甚是好用&am…