前言

该存储库收集 Kubernetes 清单、Grafana仪表板和Prometheus 规则,结合文档和脚本,使用Prometheus Operator提供易于操作的端到端 Kubernetes 集群监控。

这个项目的内容是用jsonnet写的。

兼容性

支持以下 Kubernetes 版本并在我们在各自分支中针对这些版本进行测试时正常工作。但请注意,其他版本可能有效!

这个项目的内容是用jsonnet写的。这个项目既可以被描述为一个包,也可以被描述为一个库。

此包中包含的组件:

这个堆栈用于集群监控,因此它被预先配置为从所有 Kubernetes 组件收集指标。除此之外,它还提供一组默认的仪表板和警报规则。许多有用的仪表板和警报来自kubernetes-mixin 项目,与该项目类似,它提供可组合的 jsonnet 作为库,供用户根据自己的需要进行定制。

先决条件

您将需要一个 Kubernetes 集群,仅此而已!默认情况下,假定 kubelet 使用令牌身份验证和授权,否则 Prometheus 需要一个客户端证书,这使它可以完全访问 kubelet,而不仅仅是指标。令牌认证和授权允许更细粒度和更容易的访问控制。

这意味着 kubelet 配置必须包含这些标志:

  • --authentication-token-webhook=true此标志启用ServiceAccount令牌可用于对 kubelet 进行身份验证。这也可以通过将 kubelet 配置值设置为 来authentication.webhook.enabled启用true
  • --authorization-mode=Webhook此标志使 kubelet 将使用 API 执行 RBAC 请求,以确定是否允许请求实体(在本例中为 Prometheus)访问资源,特别是该项目的/metrics端点。这也可以通过将 kubelet 配置值设置为 来authorization.mode启用Webhook

该堆栈通过部署Prometheus Adapter提供资源指标。此适配器是一个扩展 API 服务器,Kubernetes 需要启用此功能,否则适配器没有效果,但仍会部署。

一、首先部署k8s集群

参考地址:https://www.cnblogs.com/yangzp/p/16911078.html

[root@master ~]# kubectl get node
NAME STATUS ROLES AGE VERSION
master Ready control-plane 21h v1.26.0
node1 Ready <none> 21h v1.26.0
node2 Ready <none> 21h v1.26.0

二、下载kube-Prometheus文件

官网地址:https://github.com/prometheus-operator/kube-prometheus/tags

下载:

wget https://github.com/prometheus-operator/kube-prometheus/archive/refs/tags/v0.11.0.zip

解压:

unzip v0.11.0.zip

三、安装

kubectl create -f manifests/setup

待定前面的容器启动后执行

kubectl create -f manifests/

注:等待所有容器启动成功后,即可访问!

安装过程中可能会有个别镜像下载失败的情况,可以使用以下方法单独下载:

1、查看pod状态
kubectl describe pod {podname} -n monitoring(名称空间)
2、在dockerhub上面搜索需要下载的镜像到指定服务器,网址:https://hub.docker.com/
3、修改镜像tag
格式:docker image tag 源镜像:tag 目标镜像:tag

次此出现:

docker pull v5cn/prometheus-adapter:v0.9.1
docker image tag v5cn/prometheus-adapter:v0.9.1 k8s.gcr.io/prometheus-adapter/prometheus-adapter:v0.9.1
docker pull landv1001/kube-state-metrics:v2.5.0
docker image tag landv1001/kube-state-metrics:v2.5.0 k8s.gcr.io/kube-state-metrics/kube-state-metrics:v2.5.0  

四、访问

端口转发grafana:
nohup kubectl --address 0.0.0.0 --namespace monitoring port-forward svc/grafana 3000 > nohupcmd.out 2>&1 &

查看所有pod状态:

[root@master ~]# kubectl get pod -A -owide
NAMESPACE NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
calico-apiserver calico-apiserver-5c555fdcd5-9vh74 1/1 Running 1 (98s ago) 22h 10.244.219.68 master <none> <none>
calico-apiserver calico-apiserver-5c555fdcd5-n8tsb 1/1 Running 12 (5m41s ago) 100m 10.244.166.148 node1 <none> <none>
calico-system calico-kube-controllers-8cd47c9d7-n2vb4 1/1 Running 1 (98s ago) 107m 10.244.219.70 master <none> <none>
calico-system calico-node-8xm5f 1/1 Running 31 (5m38s ago) 22h 192.168.1.156 node1 <none> <none>
calico-system calico-node-hcqvd 1/1 Running 1 (98s ago) 22h 192.168.1.155 master <none> <none>
calico-system calico-node-n2qbs 1/1 Running 17 (97m ago) 22h 192.168.1.157 node2 <none> <none>
calico-system calico-typha-6b47dbb5c8-6b86d 1/1 Running 15 (97m ago) 22h 192.168.1.157 node2 <none> <none>
calico-system calico-typha-6b47dbb5c8-cwwx6 1/1 Running 27 (5m39s ago) 22h 192.168.1.156 node1 <none> <none>
kube-system coredns-5bbd96d687-rg486 1/1 Running 1 (98s ago) 107m 10.244.219.69 master <none> <none>
kube-system coredns-5bbd96d687-tf9dm 1/1 Running 3 (17m ago) 100m 10.244.166.147 node1 <none> <none>
kube-system etcd-master 1/1 Running 1 (98s ago) 22h 192.168.1.155 master <none> <none>
kube-system kube-apiserver-master 1/1 Running 1 (98s ago) 22h 192.168.1.155 master <none> <none>
kube-system kube-controller-manager-master 1/1 Running 1 (98s ago) 22h 192.168.1.155 master <none> <none>
kube-system kube-proxy-8qqg5 1/1 Running 0 22h 192.168.1.156 node1 <none> <none>
kube-system kube-proxy-9qpck 1/1 Running 0 22h 192.168.1.157 node2 <none> <none>
kube-system kube-proxy-zjpwx 1/1 Running 1 (98s ago) 22h 192.168.1.155 master <none> <none>
kube-system kube-scheduler-master 1/1 Running 1 (98s ago) 22h 192.168.1.155 master <none> <none>
monitoring alertmanager-main-0 2/2 Running 0 97m 10.244.104.24 node2 <none> <none>
monitoring alertmanager-main-1 2/2 Running 1 (43m ago) 102m 10.244.166.141 node1 <none> <none>
monitoring alertmanager-main-2 2/2 Running 0 97m 10.244.104.25 node2 <none> <none>
monitoring blackbox-exporter-78b4bfdf67-kssjd 3/3 Running 0 100m 10.244.166.145 node1 <none> <none>
monitoring grafana-86c9f7b457-g9c4n 1/1 Running 0 100m 10.244.166.143 node1 <none> <none>
monitoring kube-state-metrics-f4d87bdfb-gx6ms 3/3 Running 0 100m 10.244.166.146 node1 <none> <none>
monitoring node-exporter-8fgqt 2/2 Running 0 4h30m 192.168.1.157 node2 <none> <none>
monitoring node-exporter-kcx59 2/2 Running 0 4h30m 192.168.1.156 node1 <none> <none>
monitoring node-exporter-nqnhn 2/2 Running 2 (98s ago) 4h30m 192.168.1.155 master <none> <none>
monitoring prometheus-adapter-8694794d86-8bfsk 1/1 Running 13 (5m38s ago) 107m 10.244.166.140 node1 <none> <none>
monitoring prometheus-adapter-8694794d86-x4grw 1/1 Running 0 100m 10.244.104.26 node2 <none> <none>
monitoring prometheus-k8s-0 2/2 Running 9 (5m42s ago) 102m 10.244.166.142 node1 <none> <none>
monitoring prometheus-k8s-1 2/2 Running 0 96m 10.244.104.27 node2 <none> <none>
monitoring prometheus-operator-867dbbcfd9-mkmdp 2/2 Running 0 100m 10.244.166.144 node1 <none> <none>
tigera-operator tigera-operator-7795f5d79b-nrrjg 1/1 Running 28 (109s ago) 22h 192.168.1.156 node1 <none> <none>

浏览器访问:

http://master主机IP:3000

4.1 导入Prometheus Dashboard

grafana访问地址:https://grafana.com/grafana/dashboards/

 

五、卸载

kubectl delete --ignore-not-found=true -f manifests/ -f manifests/setup

  

Kubernetes 1.26.0 集群部署Prometheus监控的更多相关文章

  1. 基于k8s集群部署prometheus监控ingress nginx

    目录 基于k8s集群部署prometheus监控ingress nginx 1.背景和环境概述 2.修改prometheus配置 3.检查是否生效 4.配置grafana图形 基于k8s集群部署pro ...

  2. 基于k8s集群部署prometheus监控etcd

    目录 基于k8s集群部署prometheus监控etcd 1.背景和环境概述 2.修改prometheus配置 3.检查是否生效 4.配置grafana图形 基于k8s集群部署prometheus监控 ...

  3. redis3.0集群部署和测试

    redis3.0集群部署和测试 环境介绍 两台Centos7的虚拟机模拟6个节点,A台3个master节点,B台3个slave节点A地址:172.16.81.140B地址:172.16.81.141r ...

  4. 二进制方式部署Kubernetes 1.6.0集群(开启TLS)

    本节内容: Kubernetes简介 环境信息 创建TLS加密通信的证书和密钥 下载和配置 kubectl(kubecontrol) 命令行工具 创建 kubeconfig 文件 创建高可用 etcd ...

  5. Redis 3.0.0 集群部署

    简述: 1.0.1:redis cluster的现状 目前redis支持的cluster特性 1):节点自动发现 2):slave->master 选举,集群容错 3):Hot reshardi ...

  6. Hadoop 2.6.0 集群部署

    Hadoop的集群部署和单节点部署类似,配置文件不同,另外需要修改网络方面的配置 首先,准备3台虚拟机,系统为CentOS 6.6,其中一台为namenode 剩余两台为 datanode: 修改主机 ...

  7. hadoop 2.2.0 集群部署 坑

    注意fs.defaultFS为2..0新的变量,代替旧的:fs.default.name hadoop 2.2.0 集群启动命令:bin/hdfs namenode -formatsbin/start ...

  8. kubernetes 1.4.5集群部署

    2016/11/16 23:39:58 环境: centos7 [fu@centos server]$ uname -a Linux centos 3.10.0-327.el7.x86_64 #1 S ...

  9. k8s-1.15.0集群部署+dashboard

    环境:外网环境硬件master-centos7.4  2核4G node1-centos7.4     2核4Gnode2-centos7.4     2核4G软件:三台服务器 :docker-19. ...

  10. Kubeadm搭建高可用(k8s)Kubernetes v1.24.0集群

    文章转载自:https://i4t.com/5451.html 背景 Kubernetes 1.24新特性 从kubelet中移除dockershim,自1.20版本被弃用之后,dockershim组 ...

随机推荐

  1. Array.from() ------来自❀ 前端宇宙 ❀公众号。

    JavaScript 中有一个这样的函数: Array.from:允许在 JavaScript 集合(如: 数组.类数组对象.或者是字符串.map .set 等可迭代对象) 上进行有用的转换. 1. ...

  2. 前端向后端发送请求(FormData),你们不要吐槽我,有的时候我也不想写注释

    JSON对象转成formData对象,formData对象转成JSON 在向后端请求时,如果上传的数据里存在file文件对象,需要用到表单提交,这时候我们需要将JSON对象,转成formData对象, ...

  3. 写出单个字符到文件-flush方法和close方法的区别

    写出单个字符到文件 flush方法和close方法的区别 因为内置缓冲区的原因,如果不关闭输出流,无法写出字符到文件中.但是关闭的流对象,是无法继续写出数据的.如果我们既想写出数据,又想继续使用流,就 ...

  4. java基础(六):面向对象

    面向对象 面向对象:以类的方式组织代码,以对象组织数据 特性: 封装 继承 多态 类:抽象概念 对象:具体事物 面向对象是java学习的重中之重,毕竟java就是一个面向对象的语言~ 类 = 属性+方 ...

  5. NodeJS 实战系列:DevOps 尚未解决的问题

    本文将通过展示 NodeJS 应用里环境变量的提取过程,来一窥 DevOps 技术是如何应用在现在云平台上的运维工作中的.同时我也想让大家在这里看到 DevOps 的另外一面,即它并非全能,从本地开发 ...

  6. (二) MdbCluster分布式内存数据库——分布式架构1

    (二) MdbCluster分布式内存数据库--分布式架构1   分布式架构是MdbCluster的核心关键,业界有很多相关的实现,却很少有文章详细的解释每个架构实现背后的细节和这么做的原因.在Mdb ...

  7. ICSharpCode.SharpZipLib.Zip 解析时报错System.NotSupportedException: No data is available for encoding 936

    分析原因 利用ICSharpCode.SharpZipLib.Zip进行APK解析时,因为APK内编译的名称为中文,查询微软开发文档936为gb2312中文编码 微软开发文档地址https://doc ...

  8. 《价值流动-Project To Product》读后感

    背景:2022年8月,在这家公司已经任职满两年.这两年我最大的成就就是基于Scrum模式推行了敏捷项目管理,并取得了一定的成果.但是,在推行了两年后新的问题也产生了.例如: 1,项目管理上,项目经理缺 ...

  9. spark数据清洗

    spark数据清洗 1.Scala常用语法 运用maven创建项目,需要导入如下依赖: <dependency> <groupId>org.apache.spark</g ...

  10. charles初级使用

    使用charles抓包 一 charles简介 charles 是一个http proxy,是一个中间人,位于客户端Cilent和服务器Server中间. Client发送给Server的请求会经过c ...