Cilium结合Prometheus和Grafana

Cilium提供了已经组织好的 Prometheus监控Grafana通用可视分析平台 ,可以通过一个简单的 deployment 完成部署。

  • 安装Cilium预配置的Prometheus和Grafana:

安装为Cilium配置的Prometheus和Grafana
kubectl apply -f https://raw.githubusercontent.com/cilium/cilium/v1.12.1/examples/kubernetes/addons/prometheus/monitoring-example.yaml

输出信息显示:

安装为Cilium配置的Prometheus和Grafana的输出信息
namespace/cilium-monitoring created
serviceaccount/prometheus-k8s created
configmap/grafana-config created
configmap/grafana-cilium-dashboard created
configmap/grafana-cilium-operator-dashboard created
configmap/grafana-hubble-dashboard created
configmap/prometheus created
clusterrole.rbac.authorization.k8s.io/prometheus created
clusterrolebinding.rbac.authorization.k8s.io/prometheus created
service/grafana created
service/prometheus created
deployment.apps/grafana created
deployment.apps/prometheus created

上述安装部署会自动抓取Cilium和Hubble的metrics,详细配置参考 Cilium 的监控和Metrics

部署Cilium和Hubble的metrics激活

默认情况下 Cilium , HubbleCilium Operator 不会输出metrics。通过打开集群相应节点的 9962 , 99659963 端口可以激活这些服务的 metrics 。

通过以下 helm 参数值可以分别激活 Cilium , HubbleCilium Operator :

  • prometheus.enabled=true : 激活 cilium-agent 的metrics

  • operator.prometheus.enabled=true : 激活 cilium-operator 的metrics

  • hubble.metrics.enabled : 激活 Hubble 的metrics

  • 设置Helm仓库:

设置cilium Helm仓库
helm repo add cilium https://helm.cilium.io/

对于第一次安装Cilium,可以直接在部署Cilium的时候就直接激活metrics:

安装Cilium时直接激活所有metrics
helm install cilium cilium/cilium --version 1.12.1 \
   --namespace kube-system \
   --set prometheus.enabled=true \
   --set operator.prometheus.enabled=true \
   --set hubble.enabled=true \
   --set hubble.metrics.enabled="{dns,drop,tcp,flow,port-distribution,icmp,http}"

由于我已经安装好Cilium,所以实际执行是采用 upgrade 更新运行参数

更新Cilium激活所有metrics
helm upgrade cilium cilium/cilium --version 1.12.1 \
   --namespace kube-system \
   --reuse-values \
   --set prometheus.enabled=true \
   --set operator.prometheus.enabled=true \
   --set hubble.enabled=true \
   --set hubble.metrics.enabled="{dns,drop,tcp,flow,port-distribution,icmp,http}"

访问Grafana

  • 输出端口到本地主机:

输出Grafana端口到本地主机
kubectl -n cilium-monitoring port-forward service/grafana --address 0.0.0.0 --address :: 3000:3000

通过浏览器访问 http://localhost:3000

访问Prometheus

  • 输出端口到本地主机:

输出Grafana端口到本地主机
kubectl -n cilium-monitoring port-forward service/prometheus --address 0.0.0.0 --address :: 9090:9090

备注

这里prometheus默认端口是9090

参考