k8s进阶:monitor
Promethues
众所周知,Prometheus+AlertManager+Grafna是当前最流行的云原生监控方案,关于这个方案的实践在本博客已经有记录,本文主要记录一些漏缺的知识以及在kubernetes上如何部署和接入
数据类型
数据形式: metric: {k-v}
value的数据类型: long类型的整形值
- Counter: 记录累计值,只增加不减少,比如异常发生次数,请求次数
- Gauge: 常规数组,可以变大可以变小
- Histogram: 类似一个直方图,比如按请求的延迟范围进行分组,记录每个区间的个数
- Summary: 样本排序后,第几个的值是多少
数据采集
节点基础指标
容器指标
kubelet内置一个cAdvisor服务,负责采集容器内部的各种指标(cpu/mem/etc…),同时也会像exporter一样提供一个http服务供prometheus采集
k8s组件
只需要让prometheus定期通过这些api获取数据即可
部署方式
手动
Helm
Prometheus Operator
一个源码安装的参考教程: https://www.qikqiak.com/k8s-book/docs/58.Prometheus%20Operator.html
另外这个网站本身就是一个完整的教程
Helm + Prometheus Operator: 非常优雅
Helm + Prometheus Operator 部署
https://artifacthub.io/packages/helm/arldka/prometheus-operator
以下步骤可能已经过时,没有验证过,仅供参考
1 |
|
一般来说都需要把chart包下载到本地,然后通过修改配置,做个性化配置
- 节点基础指标: 默认已经配置好
- k8s组件:
- 需要确定各个服务的监听ip和端口(/etc/systemctl/systemd/etcd.service) (systemctl daemon -reload) (systemctl kube-scheduler restart)
- 修改chart包内的配置文件,配置对应的配置,一般是values.yaml
- 证书: /etc/kubernetes/pki/ 导入到对应命名空间的secret,然后再配置使用
- 容器指标: 配置好kubelet即可
- rules
- default: values.yaml –> templates/prometheus/rules/ 本质上也是一个CRD
- custom: 参考它重新定义新的CRD (自己手动添加的不受helm控制)
k8s进阶:monitor
http://example.com/2023/03/20/k8s-monitor/