在TKE集群中,有些组件是以daemonSet或者二进制的方式运行在集群中的节点上,作为了节点上的守护进程。对于这类组件的监控采集,也是支持接入到TKE的云原生监控中。接下来以Docker Daemon
为例来描述下接入方案。
Docker Daemon
以二进制文件的方式(或者systemd 服务的方式)直接运行在集群中的节点上,提供容器相关操作的底层支持。
Docker Daemon
本身也有暴露出一些监控指标,并且支持接入promethues。
云原生监控
云原生监控的数据采集配置支持了三个配置入口:ServiceMonitor、PodMonitor、RawJob,其中ServiceMonitor、PodMonitor属于promethues operator中的CRD资源;而RawJob,则是指具体的原生的scrape config配置。
本文描述的Docker Daemon的监控采集也主要是基于云原生监控的RawJob配置入口来实现。
采集方案
1 通过新增RawJob配置,应用到云原生监控,来采集TKE集群中节点上的docker daemon的监控。
2 云原生监控通过k8s服务发现配置(kubernetes_sd_config)自动从TKE集群同步所有的node实例,并作为当前RawJob的target实例。
实施步骤
1 配置node节点上的Docker daemon配置文件,开启metrics
代码语言:txt复制{
"metrics-addr" : "0.0.0.0:9323",
"experimental" : true
}
2 配置RawJob
代码语言:txt复制scrape_configs:
- job_name: docker-daemon
honor_timestamps: true
metrics_path: /metrics
scheme: http
kubernetes_sd_configs:
- role: node
relabel_configs:
- separator: ;
regex: __meta_kubernetes_node_label_(. )
replacement: $1
action: labelmap
- source_labels: [__address__]
separator: ;
regex: ([^:;] ):(d )
target_label: __address__
replacement: ${1}:9323
action: replace
配置好RawJob之后,可以在"查看Target"页面,查看Target的状态。
grafana面板配置
当配置好RawJob之后,我们就可以配置下grafana面板来直观地展示Docker Daemon的运行情况。
举例:Docker Daemon处于不同状态的容器数目统计:
参考文档:
https://www.cnblogs.com/tencent-cloud-native/p/14175775.html
https://docs.docker.com/config/daemon/prometheus/