k8s部署-54-如何完善k8s中Prometheus(普罗米修斯)监控项目呢?本文带你了解

Posted 公号运维家

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了k8s部署-54-如何完善k8s中Prometheus(普罗米修斯)监控项目呢?本文带你了解相关的知识,希望对你有一定的参考价值。


我们现在已经搭建好prometheus(普罗米修斯)监控了,那么是不是Prometheus中有些参数需要调整修改呢?默认都是正确的吗?我们接下来看看。

1、查看监控内容

浏览器登录我们的​​prometheus​​(普罗米修斯)监控系统;

http://prometheus.yunweijia.com

然后点击​​status​​​中的​​Targets​​菜单,显示如下图;

k8s部署-54-如何完善k8s中Prometheus(普罗米修斯)监控项目呢?本文带你了解_vim

然后我们可看到有些是不可以监控到的,比如​​k8s​​​中的一些组件​​controller-manager​​​、​​etcd​​​等都无法检测到,当然了,无法检测到是因为我们的安装方式是二进制,如果是别的​​kubespary​​​,亦或者是​​kubeadm​​的方式,就不会存在这些问题了,那么我们也是需要解决这个问题的,看看如何解决吧。

k8s部署-54-如何完善k8s中Prometheus(普罗米修斯)监控项目呢?本文带你了解_运维工程_02

2、​​Prometheus​​​监控二进制安装​​k8s​​的一些组件

(1)prometheus监控controller-manager的修改

[root@node1 ~]# cd prometheus-operator/
[root@node1 prometheus-operator]# ls
charts Chart.yaml ci CONTRIBUTING.md crds hack README.md requirements.lock requirements.yaml templates values.yaml
[root@node1 prometheus-operator]# vim values.yaml
# 搜索 kubeControllerManager 字样,我的在 758 行
# 修改成如下信息
kubeControllerManager:
enabled: true
endpoints:
- 192.168.112.130 # 这里进行了修改,写上了我们两个master的主节点
- 192.168.112.131
https: false # 配置成https的请求方式
[root@node1 prometheus-operator]#

(2)prometheus监控etcd的修改

监控​​etcd​​​的话,需要通过​​https​​​的方式,那么我们需要实现做一些准备工作,比如创建一个​​secret​​并声明证书之类的;

首先我们看下证书所在位置;

[root@node1 ~]# ls /etc/etcd/
ca.pem kubernetes-key.pem kubernetes.pem
[root@node1 ~]#

创建一个​​secret​​;

[root@node1 ~]# kubectl create secret generic etcd-certs --from-file=/etc/etcd/ca.pem --from-file=/etc/etcd/kubernetes-key.pem --from-file=/etc/etcd/kubernetes.pem
secret/etcd-certs created
[root@node1 ~]#

查看一个该​​secret​​​的​​yaml​​文件,确认是否无误;

[root@node1 ~]# kubectl get secret etcd-certs -o yaml
apiVersion: v1
data:
ca.pem: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUR4RENDQXF5Z0F3SUJBZ0lVZUJ0Wi93ZzUwUzYvN0l6eUFmTmpDOHNxSktNd0RRWUpLb1pJaHZjTkFRRUwKQlFBd2FERUxNQWtHQTFVRUJoTUNWVk14RHpBTkJnTlZCQWdUQms5eVpXZHZiakVSTUE4R0ExVUVCeE1JVUc5eQpkR3hoYm1ReEV6QVJCZ05WQkFvVENrdDFZbVZ5Ym1WMFpYTXhDekFKQmdOVkJBc1
# ---省略部分展现---
# ---省略部分展现---
# ---省略部分展现---
manager: kubectl-create
operation: Update
time: "2022-05-04T15:16:57Z"
name: etcd-certs
namespace: default
resourceVersion: "814232"
selfLink: /api/v1/namespaces/default/secrets/etcd-certs
uid: e414a5ef-2e7a-4ffb-bdcd-d02daecb4482
type: Opaque
[root@node1 ~]#

从上面看,应该没有什么问题哈;

修改监控项;

[root@node1 ~]# cd prometheus-operator/
[root@node1 prometheus-operator]# vim values.yaml
# 搜索 kubeEtcd 字样,我的在891行
kubeEtcd:
enabled: true
endpoints:
- 192.168.110.130 # 将三个etcd节点的IP地址,配置上
- 192.168.110.131
- 192.168.110.132
serviceMonitor:
interval: ""
scheme: https # 访问方式改成 http
insecureSkipVerify: false
serverName: ""
# 以下文件的存放位置为 /etc/prometheus/secrets/ + 上面创建的secret的名字 + 具体证书名字
caFile: "/etc/prometheus/secrets/etcd-certs/ca.pem" # 指定ca
certFile: "/etc/prometheus/secrets/etcd-certs/kubernetes.pem" # 指定cert
keyFile: "/etc/prometheus/secrets/etcd-certs/kubernetes-key.pem" # 指定key

# 搜索 prometheus 字样,在这个配置段落中找一个 secrets:[],我的在 1675 行左右
secrets:
- etcd-certs # 这里添加上我们上面创建的 secret 的名字
[root@node1 prometheus-operator]#

(3)prometheus监控Scheduler的修改

修改​​Scheduler​​的端口号和绑定IP;

# 需要注意,我们有两个节点,都需要进行修改哈
[root@node1 ~]# vim /etc/systemd/system/kube-scheduler.service
# 两个参数修改如下
--bind-address=0.0.0.0 \\
--port=10251 \\
[root@node1 ~]# systemctl daemon-reload
[root@node1 ~]# systemctl restart kube-scheduler

修改监控项;

[root@node1 prometheus-operator]# vim values.yaml 
# 搜索 kubeScheduler 字样,我的在951行
kubeScheduler:
enabled: true
endpoints:
- 192.168.112.130 # 添加Scheduler的IP地址
- 192.168.112.131
[root@node1 prometheus-operator]#

(4)prometheus监控kube-proxy的修改

由于我们没有使用​​kube-proxy​​,所以我们只需要把他关闭监控即可;

剩余内容请转至VX公众号 “运维家” ,回复 “160” 查看。

------ 以下内容为防伪内容,忽略即可 ------
------ 以下内容为防伪内容,忽略即可 ------
------ 以下内容为防伪内容,忽略即可 ------
运维工程师加班吗,湖南省it运维工程师就业,杭州运维工程师人力外包哪家实惠,云南景洪云计算运维工程师,镇江市网络运维工程师招聘,世达内推职位网络运维工程师,佳音顺达运维工程师,系统运维工程师学习有用吗,深圳系统运维工程师待遇怎么样,电子运维工程师收入,unix运维工程师证书,奇安信运维工程师薪资北京,运维工程师好还是前端开发好,资兴县运维工程师学费,北京运维工程师外包哪家好,运维工程师评分,机房运维工程师需要电工证吗,日本运维工程师,南京运维工程师收入,运维工程师调薪申请理由怎么写。



以上是关于k8s部署-54-如何完善k8s中Prometheus(普罗米修斯)监控项目呢?本文带你了解的主要内容,如果未能解决你的问题,请参考以下文章

k8s和docker区别

k8s 应用更新策略:灰度发布和蓝绿发布

k8s 应用更新策略:灰度发布和蓝绿发布

自动化集成:Pipeline整合Docker+K8S

如何访问k8s集群内部署的mysql服务

k8s和docker区别是啥?