helm3 部署 prometheus 监控
prometheus 架构简介
用 helm 来部署 prometheus 来监控我们的 k8s 集群。
exporter 是用来收集数据的,要监测不同的东西,就需要有不同的 exporter。比如要监测 mysql,需要创建一个 mysql 的 exporter,要监测 pod 则需要 pod 的 exporter,要监测 kube-proxy 则需要一个 kube-proxy
prometheus server 会从 exporter 获取并存储数据,然后通过 grafana 进行画图,这样可以 以图形化的界面展示出当前环境的负载情况,比如看下图:
开始部署 prometheus
因为前面创建了很多的 pod,为了看的清晰一些,我们单独创建一个命名空间 mon,并进 入此命名空间。
[root@vms10 ~]# kubectl create ns mon
namespace/mon created
[root@vms10 ~]# kubens mon
Context "kubernetes-admin@kubernetes" modified.
Active namespace is "mon".
[root@vms10 ~]#
从 ali 仓库下载 prometheus-operator
[root@vms10 ~]# helm pull ali/prometheus-operator
[root@vms10 ~]#
解压并进入
[root@vms10 ~]# cd prometheus-operator/
[root@vms10 prometheus-operator]#
然后开始安装 prometheus-operator
查看当前 pod 运行状况:
查看当前的 svc:
把 mon-grafana 的服务类型改为 NodePort,获得 nodeport 端口为 31041(这个端口是随 机生成的,每个人的不一样,自己看自己的端口)。
在浏览器里输入 192.168.26.10:31041
查看密码
查看当前命名空间里的 secret:
[root@vms10 prometheus-operator]# kubectl get secrets | grep grafana
mon-grafana Opaque 3 10m
mon-grafana-test-token-gpmcd kubern.....-token 3 10m
mon-grafana-token-vg5ql kubernete....-token 3 10m
[root@vms10 prometheus-operator]#
查看 mon-grafana 的具体信息:
[root@vms10 prometheus-operator]# cd
[root@vms10 ~]#
[root@vms10 ~]# kubectl get secrets mon-grafana -o yaml | head -5apiVersion:
v1data:
admin-password: cHJvbS1vcGVyYXRvcg==
admin-user: YWRtaW4=
ldap-toml: ""
[root@vms10 ~]#
这里黑体字 admin-user 是用户名,admin-password 是密码,分别是用 base64 编码过的, 现在需要解码:
[root@vms10 ~]# echo -n "YWRtaW4=" | base64 -d
admin[root@vms10 ~]#
[root@vms10 ~]# echo -n "cHJvbS1vcGVyYXRvcg==" | base64 -d
prom-operator[root@vms10 ~]#
[root@vms10 ~]#
可以得到,用户名为 admin,密码为 prom-operator,然后登录,之后依次点击设置