看到很多部署 prometheus 到 k8s 集群的教程,发现都是非常麻烦的各种配置,懒人的我就想整个一键部署的,开箱即用的,既然有了 helm 那肯定只要一个 charts 就可以搞定了吧,想着就是这样,所以在网上找来找去,终于被我发现了。下面记录一下使用过程,方便以后进行部署。

PS: 本文适用于开发者单 k8s 集群部署 prometheus,如果是运维可建议进行独立部署,一方面不需要占用集群内部资源并保证多活,另一方面可以支持多集群扩展。

安装

1
2
3
4
5
# helm 添加对应 repo
helm repo add prometheus-community https://prometheus-community.github.io/helm-charts

# helm 安装 可以添加参数 --set rbacEnable=true,-n 指定安装的 namespace
helm install prometheus prometheus-community/kube-prometheus-stack -n monitoror

默认用户名密码

admin/prom-operator

也可以通过下面的命令进行查看

kubectl get secret --namespace <YOUR-NAMESPACE> prometheus-grafana -o jsonpath="{.data.admin-password}" | base64 --decode ; echo

展示

image-20210721180351209

image-20210721180302468

image-20210721180203931

总结

直接部署在 k8s 内部的 prometheus 能很容易获取到 k8s 中各种指标和参数,使用 helm 部署也非常方便,基本一个命令就搞定了

但毕竟只能从外部监控,那么势必只能获取到 pod 的 cpu 和 memory 的使用情况,如何需要监控对应应用使用的内部情况,那就势必需要应用本身去暴露 matrix 接口并接入

参考链接

https://github.com/prometheus-community/helm-charts

https://github.com/prometheus/prometheus

https://dev.to/kaitoii11/deploy-prometheus-monitoring-stack-to-kubernetes-with-a-single-helm-chart-2fbd

多集群部署参考:https://www.servicemesher.com/blog/prometheus-monitor-k8s-1/