Istio服务网格的可视化监控系统
文章目录
- Istio服务网格的可视化监控系统
-
- 1.Istio服务网格的可视化系统
- 2.在K8S集群中部署Istio自带的可视化系统
-
- 2.1.将Kiali服务的CRD资源单独分离
- 2.2.调整资源编排文件使用NodePort的方式
- 2.3.创建所有资源控制器
- 3.Kiali可视化系统简单使用
-
- 3.1.Kiali仪表盘概览
- 3.2.浏览微服务的架构图
- 3.3.查看某个命名空间下的程序列表
- 3.4.查看某个命名空间下的工作负载
- 3.5.查看某个命名空间下的Service资源
- 3.6.修改某个资源的编排文件
- 4.通过Prometheus查看Itsio的监控视图
-
- 4.1.在Grafana中查看Istio的监控视图
- 4.2.查看微服务的流量监控仪表盘
- 4.3.查看微服务的资源利用率
- 4.4.查看Istio中各个应用程序的展示大屏
- 5.使用Jaeger查看微服务之间的链路监控
-
- 5.1.观察微服务的链路状态
Kiali:在Kiali中可以浏览网格中部署的应用程序,包括微服务调用架构、流量监控图,还可以通过图形化界面修改Istio资源的编排文件。
Prometheus+Grafana:由Prometheus采集监控数据,Grafana将监控数据展示成仪表盘。
Jaeger:链路监控工具,可以追踪微服务调用之间的链路状态。
2.在K8S集群中部署Istio自带的可视化系统 2.1.将Kiali服务的CRD资源单独分离
如果不单独从kiali.yaml文件中拿出来的话,会影响kiali服务的创建。
1.进入编排文件所在的路径
[root@k8s-master ~]# cd istio-1.8.2/samples/addons/
[root@k8s-master addons]# ll
总用量 304
drwxr-xr-x 2 root root57 1月13 2021 extras
-rw-r--r-- 1 root root 240054 1月13 2021 grafana.yaml
-rw-r--r-- 1 root root2317 1月13 2021 jaeger.yaml
-rw-r--r-- 1 root root397 2月22 14:09 kiali-crb.yaml
-rw-r--r-- 1 root root35097 2月22 15:13 kiali.yaml
-rw-r--r-- 1 root root13250 1月13 2021 prometheus.yaml
-rw-r--r-- 1 root root5186 1月13 2021 README.md2.将kiali资源编排文件中的crb资源放到单独的文件中
#如果不单独拿出来会影响创建,直接从kiali.yaml中粘贴出来即可
[root@k8s-master addons]# cat kiali-crd.yaml
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
name: monitoringdashboards.monitoring.kiali.io
spec:
group: monitoring.kiali.io
names:
kind: MonitoringDashboard
listKind: MonitoringDashboardList
plural: monitoringdashboards
singular: monitoringdashboard
scope: Namespaced
versions:
- name: v1alpha1
served: true
storage: true
2.2.调整资源编排文件使用NodePort的方式
调整kiali、prometheus、jaeger的service资源编排文件,使用nodeport的方式映射服务。
1.kiali服务
[root@k8s-master addons]# vim kiali.yaml
apiVersion: v1
kind: Service
metadata:
name: kiali
···
selector:
app.kubernetes.io/name: kiali
app.kubernetes.io/instance: kiali-server
type: NodePort#在357行增加此参数2.prometheus服务
[root@k8s-master addons]# vim prometheus.yaml
type: NodePort#在377行修改3.grafana服务
[root@k8s-master addons]# vim grafana.yaml
type: NodePort#94行增加4.jaeger服务
[root@k8s-master addons]# vim jaeger.yaml
apiVersion: v1
kind: Service
metadata:
name: tracing
namespace: istio-system
labels:
app: jaeger
spec:
ports:
- name: http-query
port: 80
protocol: TCP
targetPort: 16686
selector:
app: jaeger
type: NodePort#72行
2.3.创建所有资源控制器
1.先创建crd字资源
[root@k8s-master addons]# kubectl apply -f kiali-crd.yaml -n istio-system
customresourcedefinition.apiextensions.k8s.io/monitoringdashboards.monitoring.kiali.io created2.然后再创建其他资源控制器
[root@k8s-master addons]# kubectl apply -f . -n istio-system
serviceaccount/grafana created
configmap/grafana created
service/grafana created
deployment.apps/grafana created
configmap/istio-grafana-dashboards created
configmap/istio-services-grafana-dashboards created
deployment.apps/jaeger created
service/tracing created
service/zipkin created
service/jaeger-collector created
customresourcedefinition.apiextensions.k8s.io/monitoringdashboards.monitoring.kiali.io unchanged
customresourcedefinition.apiextensions.k8s.io/monitoringdashboards.monitoring.kiali.io unchanged
serviceaccount/kiali created
configmap/kiali created
clusterrole.rbac.authorization.k8s.io/kiali-viewer created
clusterrole.rbac.authorization.k8s.io/kiali created
clusterrolebinding.rbac.authorization.k8s.io/kiali created
service/kiali created
deployment.apps/kiali created
monitoringdashboard.monitoring.kiali.io/envoy created
monitoringdashboard.monitoring.kiali.io/go created
monitoringdashboard.monitoring.kiali.io/kiali created
monitoringdashboard.monitoring.kiali.io/micrometer-1.0.6-jvm-pool created
monitoringdashboard.monitoring.kiali.io/micrometer-1.0.6-jvm created
monitoringdashboard.monitoring.kiali.io/micrometer-1.1-jvm created
monitoringdashboard.monitoring.kiali.io/microprofile-1.1 created
monitoringdashboard.monitoring.kiali.io/microprofile-x.y created
monitoringdashboard.monitoring.kiali.io/nodejs created
monitoringdashboard.monitoring.kiali.io/quarkus created
monitoringdashboard.monitoring.kiali.io/springboot-jvm-pool created
monitoringdashboard.monitoring.kiali.io/springboot-jvm created
monitoringdashboard.monitoring.kiali.io/springboot-tomcat created
monitoringdashboard.monitoring.kiali.io/thorntail created
monitoringdashboard.monitoring.kiali.io/tomcat created
monitoringdashboard.monitoring.kiali.io/vertx-client created
monitoringdashboard.monitoring.kiali.io/vertx-eventbus created
monitoringdashboard.monitoring.kiali.io/vertx-jvm created
monitoringdashboard.monitoring.kiali.io/vertx-pool created
monitoringdashboard.monitoring.kiali.io/vertx-server created
serviceaccount/prometheus created
configmap/prometheus created
clusterrole.rbac.authorization.k8s.io/prometheus created
clusterrolebinding.rbac.authorization.k8s.io/prometheus created
service/prometheus created
deployment.apps/prometheus created3.查看创建的资源
[root@k8s-master addons]# kubectl get pod,svc -n istio-system
NAMEREADYSTATUSRESTARTSAGE
pod/grafana-784c89f4cf-dnjlj1/1Running082s
pod/istio-ingressgateway-559f565fcd-jxn5b1/1Running111d
pod/istiod-545bb98448-vqf841/1Running011d
pod/jaeger-7f78b6fb65-89gwt1/1Running081s
pod/kiali-7476977cf9-mrw2g1/1Running079s
pod/prometheus-7bfddb8dbf-jp7qr2/2Running076sNAMETYPECLUSTER-IPEXTERNAL-IPPORT(S)AGE
service/grafanaNodePort10.96.240.1493000:30142/TCP94m
service/istio-ingressgatewayLoadBalancer10.107.107.20615021:32381/TCP,80:31105/TCP,443:30793/TCP,15012:32259/TCP,15443:31377/TCP11d
service/istiodClusterIP10.109.130.25215010/TCP,15012/TCP,443/TCP,15014/TCP11d
service/jaeger-collectorClusterIP10.106.34.19214268/TCP,14250/TCP94m
service/kialiNodePort10.101.98.19920001:30547/TCP,9090:32333/TCP94m
service/prometheusNodePort10.107.48.959090:32085/TCP94m
service/tracingNodePort10.106.52.22980:30821/TCP94m
service/zipkinClusterIP10.99.241.799411/TCP94m
3.Kiali可视化系统简单使用 浏览器访问任意集群节点的地址+kiali服务200001端口映射的NodePort端口:
http://192.168.20.10:30547/
无需账号密码即可登陆,但是不安全。
3.1.Kiali仪表盘概览
点击左侧的Overview即可跳转到kiali的仪表盘页面,在这里可以看到K8S集群中所有的Namespace列表。
如果出现了警告或者错误的提示,就表示命名空间下某个程序的资源编排文件写的有问题,根据提示按钮进入YAML的编辑页面,会显示出那些YAML有问题,删除或者修改即可。
![面试|Istio微服务治理网格的全方面可视化监控(微服务架构展示、资源监控、流量监控、链路监控)](http://img.readke.com/220801/22064L218-0.jpg)
文章图片
3.2.浏览微服务的架构图
kiali还支持观察微服务程序的架构图,包括程序访问的架构图、service资源的架构图、多版本类型的架构图、工作负载的架构图。
点击Graph进入图形浏览页面—>选择微服务所在的命名空间---->选择要查看的信息可以全部勾选—>选择查看的图形类型。
1)用户访问微服务程序的架构图
图形类型选择App graph,可以清晰的看到从istio的ingressgateway到具体微服务的架构图,请求首先达到productpage然后由productpage调用details微服务,再调用reviews微服务,reviews微服务会调用ratings微服务。
![面试|Istio微服务治理网格的全方面可视化监控(微服务架构展示、资源监控、流量监控、链路监控)](http://img.readke.com/220801/22064M2F-1.jpg)
文章图片
2)Service资源的架构图
kiali支持显示微服务程序Service资源调用关系的架构图,图形类型选择Service graph。
![面试|Istio微服务治理网格的全方面可视化监控(微服务架构展示、资源监控、流量监控、链路监控)](http://img.readke.com/220801/22064J946-2.jpg)
文章图片
3)微服务程序多版本的架构图
kiali支持显示微服务程序多个版本的架构图,图形类型选择Versioned app graph。
![面试|Istio微服务治理网格的全方面可视化监控(微服务架构展示、资源监控、流量监控、链路监控)](http://img.readke.com/220801/22064L4P-3.jpg)
文章图片
4)微服务程序工作负载的架构图
kiali可以展示各个微服务使用的deployment工作负载资源的架构图,类型选择Workload graph。
![面试|Istio微服务治理网格的全方面可视化监控(微服务架构展示、资源监控、流量监控、链路监控)](http://img.readke.com/220801/22064J451-4.jpg)
文章图片
3.3.查看某个命名空间下的程序列表
1)点击左侧的Applications,选择命名空间。
![面试|Istio微服务治理网格的全方面可视化监控(微服务架构展示、资源监控、流量监控、链路监控)](http://img.readke.com/220801/22064HC8-5.jpg)
文章图片
2)点击名称可跳转至详情页面。
![面试|Istio微服务治理网格的全方面可视化监控(微服务架构展示、资源监控、流量监控、链路监控)](http://img.readke.com/220801/22064M228-6.jpg)
文章图片
3.4.查看某个命名空间下的工作负载
1)点击左侧的Workloads,选择命名空间,即可显示这个命名空间下的所有Deployment控制器资源。
![面试|Istio微服务治理网格的全方面可视化监控(微服务架构展示、资源监控、流量监控、链路监控)](http://img.readke.com/220801/22064G196-7.jpg)
文章图片
2)点击名称即可跳转到详情页面,也可以看到Deployment资源关联的Pod资源。
![面试|Istio微服务治理网格的全方面可视化监控(微服务架构展示、资源监控、流量监控、链路监控)](http://img.readke.com/220801/22064K4B-8.jpg)
文章图片
3)点击logs还可以观察某个Pod的日志。
![面试|Istio微服务治理网格的全方面可视化监控(微服务架构展示、资源监控、流量监控、链路监控)](http://img.readke.com/220801/22064M043-9.jpg)
文章图片
4)在Inbound Metrics页面可以观察程序的流量监控图。
![面试|Istio微服务治理网格的全方面可视化监控(微服务架构展示、资源监控、流量监控、链路监控)](http://img.readke.com/220801/22064JZ2-10.jpg)
文章图片
3.5.查看某个命名空间下的Service资源
1)点击左侧的Services,然后选择命名空间。
![面试|Istio微服务治理网格的全方面可视化监控(微服务架构展示、资源监控、流量监控、链路监控)](http://img.readke.com/220801/22064LE8-11.jpg)
文章图片
2)点击名称可以跳转至详情页面,并且可以看到Service资源关联的Deployment资源。
![面试|Istio微服务治理网格的全方面可视化监控(微服务架构展示、资源监控、流量监控、链路监控)](http://img.readke.com/220801/22064I5U-12.jpg)
文章图片
3.6.修改某个资源的编排文件
Istio的流量管理需要通过配置VirtualService资源才可以实现,kiali可视化平台支持修改Istio各种资源的编排文件,保存后立即生效,方便我们修改各个资源的编排文件。
1)点击左侧的Istio Config,选择资源所在的Namespace,然后选择要修改的资源类型,选择后会匹配出符合类的资源。
![面试|Istio微服务治理网格的全方面可视化监控(微服务架构展示、资源监控、流量监控、链路监控)](http://img.readke.com/220801/22064L3Q-13.jpg)
文章图片
2)点击资源的名称会跳转至编辑页面,修改完成后点击保存即可。
![面试|Istio微服务治理网格的全方面可视化监控(微服务架构展示、资源监控、流量监控、链路监控)](http://img.readke.com/220801/22064H002-14.jpg)
文章图片
4.通过Prometheus查看Itsio的监控视图 浏览器访问:
http://192.168.20.10:30142/
4.1.在Grafana中查看Istio的监控视图
Grafana中集成了很多Istio的监控视图,方便我们浏览监控数据
![面试|Istio微服务治理网格的全方面可视化监控(微服务架构展示、资源监控、流量监控、链路监控)](http://img.readke.com/220801/22064M4c-15.jpg)
文章图片
Istio Control Plane Dashboard:控制面板仪表盘
Istio Mesh Dashboard:网格仪表盘,查看应用(服务)数据
Istio Performance Dashboard:查看Istio 自身(各组件)数据
Istio Service Dashboard:服务仪表盘
Istio Workload Dashboard:工作负载仪表盘
Istio Wasm Extension Dashboard
其中最主要的就是Istio Mesh Dashboard这张监控视图,这张图中包含了微服务的流量监控图
4.2.查看微服务的流量监控仪表盘
点击Istio Mesh Dashboard仪表盘,可以看到不同微服务程序的流量监控视图。
![面试|Istio微服务治理网格的全方面可视化监控(微服务架构展示、资源监控、流量监控、链路监控)](http://img.readke.com/220801/22064MK6-16.jpg)
文章图片
4.3.查看微服务的资源利用率
Istio Control Plane Dashboard仪表盘的主要展示资源利用率以及代理程序的连接信息监控图。
![面试|Istio微服务治理网格的全方面可视化监控(微服务架构展示、资源监控、流量监控、链路监控)](http://img.readke.com/220801/22064LB7-17.jpg)
文章图片
4.4.查看Istio中各个应用程序的展示大屏
Istio Service Dashboard这张监控图可以展示出各个程序Service资源的详细信息。
![面试|Istio微服务治理网格的全方面可视化监控(微服务架构展示、资源监控、流量监控、链路监控)](http://img.readke.com/220801/22064I439-18.jpg)
文章图片
Istio Workload Dashboard这张图可以展示出Deployment资源的详细视图。
![面试|Istio微服务治理网格的全方面可视化监控(微服务架构展示、资源监控、流量监控、链路监控)](http://img.readke.com/220801/22064K628-19.jpg)
文章图片
5.使用Jaeger查看微服务之间的链路监控 Jaeger是Uber开源的分布式追踪系统,用于微服务的监控和全链路追踪。
浏览器访问:
http://192.168.20.10:30821/jaeger/search
5.1.观察微服务的链路状态
在Service中选择要链路跟踪的服务,这里我们选择istio-ingressgateway,然后点击Find Traces开始链路跟踪,在右侧会显示出该服务下有哪些程序有链路跟踪信息。
![面试|Istio微服务治理网格的全方面可视化监控(微服务架构展示、资源监控、流量监控、链路监控)](http://img.readke.com/220801/22064I061-20.jpg)
文章图片
点击某个服务即可跳转到链路跟踪页面,点击流量条可以展开显示详细信息。
![面试|Istio微服务治理网格的全方面可视化监控(微服务架构展示、资源监控、流量监控、链路监控)](http://img.readke.com/220801/22064M400-21.jpg)
文章图片
【面试|Istio微服务治理网格的全方面可视化监控(微服务架构展示、资源监控、流量监控、链路监控)】先自我介绍一下,小编13年上师交大毕业,曾经在小公司待过,去过华为OPPO等大厂,18年进入阿里,直到现在。深知大多数初中级java工程师,想要升技能,往往是需要自己摸索成长或是报班学习,但对于培训机构动则近万元的学费,着实压力不小。自己不成体系的自学效率很低又漫长,而且容易碰到天花板技术停止不前。因此我收集了一份《java开发全套学习资料》送给大家,初衷也很简单,就是希望帮助到想自学又不知道该从何学起的朋友,同时减轻大家的负担。添加下方名片,即可获取全套学习资料哦
推荐阅读
- 面试|12个MySQL慢查询的原因分析
- Golang|深入理解Golang之context
- 面试|学习笔记 Golang 写入文件(io.WriteString、ioutil.WriteFile、file.Write、write.WriteString)
- Android云音乐|3.Android高仿网易云音乐-首页复杂发现界面布局和功能
- 浅谈大数据背景下数据库安全保障体系
- | 如何把 thinkphp5 的项目迁移到阿里云函数计算来应对流量洪峰()
- 跨全端SDK技术演进
- Helm Chart 多环境、多集群交付实践,透视资源拓扑和差异
- 1374. 生成每种字符都是奇数个的字符串 : 简单构造模拟题