【云原生 • Kubernetes】集群资源监控概述、监控平台的搭建


【云原生 • Kubernetes】集群资源监控概述、监控平台的搭建_第1张图片

本文导读

    • 一、集群资源监控概述
      • 1. 集群监控
      • 2. Pod 监控
    • 二、监控平台搭建所需组件概述
    • 三、搭建监控平台
      • 1. 部署 Prometheus
      • 2. 部署 Grafana
      • 3. 打开 Grafana,添加数据源和显示模板


一、集群资源监控概述

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 工具使用详解

组件工作示意图如下:

【云原生 • Kubernetes】集群资源监控概述、监控平台的搭建_第2张图片

三、搭建监控平台

提示:搭建过程中所需文件均已在文末附下载地址,需要自取即可。

1. 部署 Prometheus

第一步:创建一个目录,用于存放我们需要的 yaml 文件;

[root@master ~]# mkdir pg
[root@master ~]# cd pg
[root@master pg]# 

上传 yaml 文件至此目录,我使用的是Xftp 7 工具;

【云原生 • Kubernetes】集群资源监控概述、监控平台的搭建_第3张图片
上传后如下:

在这里插入图片描述

第二步:部署守护进程,也就文件中的 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 已存在,部署完成。

【云原生 • Kubernetes】集群资源监控概述、监控平台的搭建_第4张图片

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 已存在,部署完成。

【云原生 • Kubernetes】集群资源监控概述、监控平台的搭建_第5张图片

3. 打开 Grafana,添加数据源和显示模板

首先 kubectl get svc -n kube-system 查看访问 grafana 所需要的端口号;

【云原生 • Kubernetes】集群资源监控概述、监控平台的搭建_第6张图片

可以看到 grafana 端口号为 30708,接下来在本地浏览器使用 宿主机IP:30708 即可访问 grafana 应用。

关于 Grafana 应用的相关操作(添加数据源、添加仪表盘等)往期文章已有详细介绍,参见 Grafana 工具使用详解。


搭建监控平台所需 yaml 文件下载地址:

链接:搭建监控平台所需 yaml 文件
提取码:0214


你可能感兴趣的:(云原生,-,入门到实战,kubernetes,云原生,容器,k8s)