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之间同步

可以配置 FelixTypha 和/或 kube-congrollers 来提供metrics给Prometheus

准备工作

可以使用 kubectlcalicoctl 来修改 Calico网络 配置:

  • 注意,要使用 kubectl 来配置 calico ,必须在集群运行一个 calico API Server,这样 API Server会允许你管理 projectcalico.org/v3 api组的资源。

  • 可以任何能够访问Calico数据存储的网络节点上使用 calicoctl 来管理 projectcalico.org/v3 API组

配置

使用以下两个命令之一完成 Felix Metrics 激活:

  • (我没有采用该方法)使用 安装kubectl 激活 Felix metrics:

    kubectl patch felixconfiguration default --type merge --patch '{"spec":{"prometheusMetricsEnabled": true}}'
    
  • 使用 calicoctl 激活 Felix metrics:

    calicoctl patch felixconfiguration default  --patch '{"spec":{"prometheusMetricsEnabled": true}}'
    

注意,直接执行 calicoctl get felixconfiguration 会提示需要明确 etcd - 分布式kv存储 endpoints ,所以实际操作应该采用以下命令检查:

使用calicoctl获取集群的felix配置
calicoctl get felixconfiguration

参考