本文导读
一、集群资源监控概述
Kubernetes 集群对资源的监控指标主要有集群监控和 Pod 监控两大部分。
1. 集群监控
即对 k8s 集群本身的监控,主要监控以下内容。
节点资源利用率
:集群中每个节点的 CPU 资源使用情况、利用率等;节点数
:比如说集群共有三个节点,有两个处于忙碌状态,一个节点处于空闲状态,那么在资源分配时就需要节点数进行考虑;集群中运行的pods
:每个节点中运行的 pod 数量等。
2. Pod 监控
Pod 监控,监控集群中运行的 pod 以及容器,主要监控以下内容。
容器指标
:pod 中运行的容器数量及状态等;应用程序
:对容器中运行的应用程序进行监控,可知晓当前集群的运行情况;
二、监控平台搭建所需组件概述
搭建监控平台需要使用 Prometheus 和 Grafana 两个组件。以下一一介绍:
Prometheus(普罗米修斯) 是一套开源组件,可以做到监控、报警功能且集成了时间序列数据库。其基本原理是通过 http 协议周期性抓取被监控组件的状态,这样做的好处是任意组件只要提供 http 接口就可以接入监控系统,不需要任何 sdk 或者其他的复杂集成过程。
Grafana 是一个开源的数据分析和可视化工具,有着非常好的图表和布局展示,包含功能齐全的度量仪表盘和图形编辑器。支持 graphite、zabbix、influxDB 和 OpenTSDB 作为数据源。它在此处的作用也就是以可视化的形式展现“普罗米修斯”抓取的状态。
Grafana 在往期文章已有详细介绍和操作演示,详情参见 Grafana 工具使用详解
组件工作示意图如下:
三、搭建监控平台
提示:搭建过程中所需文件均已在文末附下载地址,需要自取即可。
1. 部署 Prometheus
第一步:创建一个目录,用于存放我们需要的 yaml 文件;
[root@master ~]# mkdir pg[root@master ~]# cd pg[root@master pg]#
上传 yaml 文件至此目录,我使用的是Xftp 7 工具;
上传后如下:
第二步:部署守护进程,也就文件中的 node-exporter.yaml 文件;
[root@master pg]# kubectl create -f node-exporter.yaml
daemonset.apps/node-exporter created
The Service "node-exporter" is invalid: spec.ports[0].nodePort: Invalid value: 31672: provided port is already allocated
[root@master pg]#
第三步:部署 prometheus 目录下的其他 yaml 文件;
[root@master pg]# ls
grafana node-exporter.yaml prometheus
[root@master pg]# cd prometheus/[root@master prometheus]# ls
configmap.yaml prometheus.deploy.yml prometheus.svc.yml rbac-setup.yaml
[root@master prometheus]# kubectl create -f rbac-setup.yaml
clusterrole.rbac.authorization.k8s.io/prometheus created
serviceaccount/prometheus created
clusterrolebinding.rbac.authorization.k8s.io/prometheus created
[root@master prometheus]# kubectl create -f configmap.yaml
configmap/prometheus-config created
[root@master prometheus]# kubectl create -f prometheus.deploy.yml
deployment.apps/prometheus created
[root@master prometheus]# kubectl create -f prometheus.svc.yml
service/prometheus created
[root@master prometheus]#
部署完成后,查看 pods,可以看到 prometheus 已存在,部署完成。
2. 部署 Grafana
部署方式同上,进入 Grafana 目录后,分别执行 yaml 文件;
[root@master pg]# ls
grafana node-exporter.yaml prometheus
[root@master pg]# cd grafana/[root@master grafana]# ls
grafana-deploy.yaml grafana-ing.yaml grafana-svc.yaml
[root@master grafana]# kubectl create -f grafana-deploy.yaml
deployment.apps/grafana-core created
[root@master grafana]# kubectl create -f grafana-svc.yaml
service/grafana created
[root@master grafana]# kubectl create -f grafana-ing.yaml
ingress.extensions/grafana created
[root@master grafana]#
部署完成后,查看 pods,可以看到 grafana 已存在,部署完成。
3. 打开 Grafana,添加数据源和显示模板
首先
kubectl get svc -n kube-system
查看访问 grafana 所需要的端口号;
可以看到 grafana 端口号为 30708,接下来在本地浏览器使用
宿主机IP:30708
即可访问 grafana 应用。
关于 Grafana 应用的相关操作(添加数据源、添加仪表盘等)往期文章已有详细介绍,参见 Grafana 工具使用详解。
搭建监控平台所需 yaml 文件下载地址:
链接:搭建监控平台所需 yaml 文件
提取码:0214
版权归原作者 敬 之 所有, 如有侵权,请联系我们删除。