16.Kubernetes集群资源监控
Kubernetes集群资源监控
概述
监控指标
一个好的系统,主要监控以下内容
- 集群监控
- 节点资源利用率
- 节点数
- 运行Pods
- Pod监控
- 容器指标
- 应用程序【程序占用多少CPU、内存】
监控平台
使用普罗米修斯【prometheus】 + Grafana 搭建监控平台
prometheus【定时搜索被监控服务的状态】
- 开源的
- 监控、报警、数据库
- 以HTTP协议周期性抓取被监控组件状态
- 不需要复杂的集成过程,使用http接口接入即可
Grafana
- 开源的数据分析和可视化工具
- 支持多种数据源

部署prometheus
首先需要部署一个守护进程

---
apiVersion: apps/v1
kind: DaemonSet
metadata:
name: node-exporter
namespace: kube-system
labels:
k8s-app: node-exporter
spec:
selector:
matchLabels:
k8s-app: node-exporter
template:
metadata:
labels:
k8s-app: node-exporter
spec:
containers:
- image: prom/node-exporter
name: node-exporter
ports:
- containerPort: 9100
protocol: TCP
name: http
---
apiVersion: v1
kind: Service
metadata:
labels:
k8s-app: node-exporter
name: node-exporter
namespace: kube-system
spec:
ports:
- name: http
port: 9100
nodePort: 31672
protocol: TCP
type: NodePort
selector:
k8s-app: node-exporter
然后执行下面命令
kubectl create -f node-exporter.yaml
执行完,发现会报错

这是因为版本不一致的问题,因为发布的正式版本,而这个属于测试版本
所以我们找到第一行,然后把内容修改为如下所示
# 修改前
apiVersion: extensions/v1beta1
# 修改后 【正式版本发布后,测试版本不能使用】
apiVersion: apps/v1
创建完成后的效果

然后通过yaml的方式部署prometheus

- configmap:定义一个configmap:存储一些配置文件【不加密】
- prometheus.deploy.yaml:部署一个deployment【包括端口号,资源限制】
- prometheus.svc.yaml:对外暴露的端口
- rbac-setup.yaml:分配一些角色的权限
下面我们进入目录下,首先部署 rbac-setup.yaml
kubectl create -f rbac-setup.yaml

然后分别部署
# 部署configmap
kubectl create -f configmap.yaml
# 部署deployment
kubectl create -f prometheus.deploy.yml
# 部署svc
kubectl create -f prometheus.svc.yml
部署完成后,我们使用下面命令查看
kubectl get pods -n kube-system

在我们部署完成后,即可看到 prometheus 的 pod了,然后通过下面命令,能够看到对应的端口
kubectl get svc -n kube-system

通过这个,我们可以看到 prometheus 对外暴露的端口为 30003,访问页面即可对应的图形化界面
http://192.168.177.130:30003

在上面我们部署完prometheus后,我们还需要来部署grafana
kubectl create -f grafana-deploy.yaml
然后执行完后,发现下面的问题
error: unable to recognize "grafana-deploy.yaml": no matches for kind "Deployment" in version "extensions/v1beta1"
我们需要修改如下内容
# 修改
apiVersion: apps/v1
# 添加selector
spec:
replicas: 1
selector:
matchLabels:
app: grafana
component: core
修改完成后,我们继续执行上述代码
# 创建deployment
kubectl create -f grafana-deploy.yaml
# 创建svc
kubectl create -f grafana-svc.yaml
# 创建 ing
kubectl create -f grafana-ing.yaml
我们能看到,我们的grafana正在

配置数据源
下面我们需要开始打开 Grafana,然后配置数据源,导入数据显示模板
kubectl get svc -n kube-system

我们可以通过 ip + 30431 访问我们的 grafana 图形化页面

然后输入账号和密码:admin admin
进入后,我们就需要配置 prometheus 的数据源

和 对应的IP【这里IP是我们的ClusterIP】

设置显示数据的模板
选择Dashboard,导入我们的模板

然后输入 315 号模板

然后选择 prometheus数据源 mydb,导入即可

导入后的效果如下所示

16.Kubernetes集群资源监控的更多相关文章
- K8S从入门到放弃系列-(16)Kubernetes集群Prometheus-operator监控部署
Prometheus Operator不同于Prometheus,Prometheus Operator是 CoreOS 开源的一套用于管理在 Kubernetes 集群上的 Prometheus 控 ...
- 高可用Kubernetes集群-14. 部署Kubernetes集群性能监控平台
参考文档: Github介绍:https://github.com/kubernetes/heapster Github yaml文件: https://github.com/kubernetes/h ...
- Kubernetes集群的监控报警策略最佳实践
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/M2l0ZgSsVc7r69eFdTj/article/details/79652064 本文为Kub ...
- Prometheus 监控K8S集群资源监控
Prometheus 监控K8S集群中Pod 目前cAdvisor集成到了kubelet组件内,可以在kubernetes集群中每个启动了kubelet的节点使用cAdvisor提供的metrics接 ...
- (转)实验文档4:kubernetes集群的监控和日志分析
改造dubbo-demo-web项目为Tomcat启动项目 Tomcat官网 准备Tomcat的镜像底包 准备tomcat二进制包 运维主机HDSS7-200.host.com上:Tomcat8下载链 ...
- 使用 Elastic 技术栈构建 K8S 全栈监控 -2: 用 Metricbeat 对 Kubernetes 集群进行监控
文章转载自:https://www.qikqiak.com/post/k8s-monitor-use-elastic-stack-2/ 操作步骤 git clone https://github.co ...
- 常用的清理 Kubernetes 集群资源命令
1. Kubernetes 基础对象清理 清理 Evicted 状态的 Pod kubectl get pods --all-namespaces -o wide | grep Evicted | a ...
- 如何扩展单个Prometheus实现近万Kubernetes集群监控?
引言 TKE团队负责公有云,私有云场景下近万个集群,数百万核节点的运维管理工作.为了监控规模如此庞大的集群联邦,TKE团队在原生Prometheus的基础上进行了大量探索与改进,研发出一套可扩展,高可 ...
- 高可用Kubernetes集群-15. 部署Kubernetes集群统一日志管理
参考文档: Github:https://github.com/kubernetes/kubernetes/tree/master/cluster/addons/fluentd-elasticsear ...
- Kubernetes集群
Kubernetes已经成为当下最火热的一门技术,未来一定也会有更好的发展,围绕着云原生的周边产物也越来越多,使得上云更加便利更加有意义,本文主要讲解一些蔚来汽车从传统应用落地到Kubernetes集 ...
随机推荐
- [WPF]数据绑定时为何会出现StringFormat失效
在数据绑定过程中,我们经常会使用StringFormat对要显示的数据进行格式化,以便获得更为直观的展示效果,但在某些情况下格式化操作并未生效,例如 Button的 Content属性以及ToolTi ...
- uni-app之camera组件-人脸拍摄
小程序录制视频:10-30秒:需要拍摄人脸,大声朗读数字(123456)这种. 1.camera组件 camera页面内嵌的区域相机组件.注意这不是点击后全屏打开的相机 camera只支持小程序使用: ...
- 「Docker学习系列教程」基础篇小总结及高级篇预告
通过前面十来篇的学习,我们已经把docker基础篇学习完了.这篇文章,咱们就来小总结下基础篇学习的东西以及介绍接下来高级篇中,将会学习到哪些知识点. 基础篇总结: 第一篇, 凯哥就介绍了怎么 ...
- 手把手教你安装Jupyter Notebook(保姆级教程)
来源于:https://blog.csdn.net/weixin_43855159/article/details/137738714 1. 什么是Jupyter Notebook Jupyter N ...
- Lucas定理入门
前置结论 如果 \(p\) 为素数,有以下结论: \(a^p \equiv a \pmod p\) 即费马小定理 \[C_{p}^i \equiv \begin{cases} 1 & i=0 ...
- 【YashanDB知识库】用户密码带@字符时exp和imp无法使用
[问题分类]数据导入导出 [关键字]YAS-00404.数据导入导出.密码.特殊字符@.exp.imp [问题描述] 当用户密码带@字符时,使用exp和imp导入导出数据,使用转义符仍然出现报错 且y ...
- 【YashanDB知识库】数据库审计shutdown immediate操作导致数据库异常退出
[问题分类]功能使用 [关键字]数据库审计,shutdown immediate [问题描述]审计shutdown immediate 操作,数据库作主从切换时会导致数据库异常退出. [问题原因分析] ...
- 示例python 批量操作excel统计销售榜品牌及销售额
示例统计销售榜品牌及销售额 import pandas as pd import numpy as np import os os.chdir('F:\\50mat\源数据1000张表格') name ...
- Angular Material 18+ 高级教程 – CDK Drag and Drop
前言 CDK Drag and Drop 和 CDK Scrolling 都是在 Angular Material v7 中推出的. 它们有一个巧妙的共同点,那就是与 Material Design ...
- Angular Material 18+ 高级教程 – Material Ripple
介绍 Ripple (波纹) 是 Material Design 中一个标志性的特色. 点击 button 会溅起水波的感觉. 参考 Docs – Ripples When to use it? 一般 ...