Prometheus监控Calico网络CNI
Calico网络 是Kubernetes上常用的CNI,在生产环境中也有很多应用。官方提供了 Monitor Calico component metrics 结合到 Prometheus 中进行监控: 通过calico的metrics获取Calico组件的健康度:
组件:
Felix: 运行在每台实现网络策略(network policy)的主机上,Felix是Calico的大脑Typha: 一组可选pod,扩展了Felix以扩展Calico节点和数据存储之间的流量kube-controllers: 控制器组件,负责各种控制平面功能,例如资源垃圾收集以及和Kubernetes API之间同步
可以配置 Felix , Typha 和/或 kube-congrollers 来提供metrics给Prometheus
准备工作
可以使用 kubectl 或 calicoctl 来修改 Calico网络 配置:
注意,要使用
kubectl来配置calico,必须在集群运行一个calicoAPI Server,这样 API Server会允许你管理projectcalico.org/v3api组的资源。可以任何能够访问Calico数据存储的网络节点上使用
calicoctl来管理projectcalico.org/v3API组
配置
使用以下两个命令之一完成 Felix Metrics 激活:
(我没有采用该方法)使用 安装kubectl 激活
Felixmetrics:kubectl patch felixconfiguration default --type merge --patch '{"spec":{"prometheusMetricsEnabled": true}}'
使用
calicoctl激活Felixmetrics:calicoctl patch felixconfiguration default --patch '{"spec":{"prometheusMetricsEnabled": true}}'
注意,直接执行 calicoctl get felixconfiguration 会提示需要明确 etcd - 分布式kv存储 endpoints ,所以实际操作应该采用以下命令检查:
calicoctl get felixconfiguration