代码改变世界

【kubernetes 自带监控】 container级别cadvisor+kubelet,集群级别apiserver

2019-07-12 10:03  ZealouSnesS  阅读(3580)  评论(0编辑  收藏  举报

 

 apiserver

https://feisky.gitbooks.io/kubernetes/components/apiserver.html

kube-apiserver 支持同时提供 https(默认监听在 6443 端口)和 http API(默认监听在 127.0.0.1 的 8080 端口),其中 http API 是非安全接口,不做任何认证授权机制,不建议生产环境启用。两个接口提供的 REST API 格式相同,参考 Kubernetes API Reference查看所有 API 的调用格式。

 

 

cadvisor

https://segmentfault.com/a/1190000017800371

 

如果采用在docker container中下载并启动二进制的cadvisor:

cadvisor:端口4194

 

如果使用kubernetes组件中自带的cadvisor:

https://www.cnblogs.com/aguncn/p/9929684.html

https://huanqiang.wang/2018/04/03/k8s-%E7%9B%91%E6%8E%A7%E9%83%A8%E7%BD%B2/

目前cAdvisor集成到了kubelet组件内,可以在kubernetes集群中每个启动了kubelet的节点使用cAdvisor提供的metrics接口获取该节点所有容器相关的性能指标数据。1.7.3版本以前,cadvisor的metrics数据集成在kubelet的metrics中,在1.7.3以后版本中cadvisor的metrics被从kubelet的metrics独立出来了,在prometheus采集的时候变成两个scrape的job。

按新版本的标准配置,kubelet中的cadvisor是没有对外开放4194端口的。所以,我们只能通过apiserver提供的api做代理获取监控指标。

重要知识点来了。

从apiserver访问cadvisor的地址:

cAdvisor的metrics地址: /api/v1/nodes/[节点名称]/proxy/metrics/cadvisor

kubelet的metrics地址:/api/v1/nodes/[节点名称]/proxy/metrics

直接从各个node的kubelet访问cadvisor的地址:

cAdvisor的metrics地址: node_ip:10250/metrics/cadvisor

kubelet的metrics地址:node_ip:10250/metrics