Cilium结合Prometheus和Grafana¶
Cilium提供了已经组织好的 Prometheus监控 和 Grafana通用可视分析平台 ,可以通过一个简单的 deployment
完成部署。
安装Cilium预配置的Prometheus和Grafana:
kubectl apply -f https://raw.githubusercontent.com/cilium/cilium/v1.12.1/examples/kubernetes/addons/prometheus/monitoring-example.yaml
输出信息显示:
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
, Hubble
和 Cilium Operator
不会输出metrics。通过打开集群相应节点的 9962
, 9965
和 9963
端口可以激活这些服务的 metrics 。
通过以下 helm 参数值可以分别激活 Cilium
, Hubble
和 Cilium Operator
:
prometheus.enabled=true
: 激活cilium-agent
的metricsoperator.prometheus.enabled=true
: 激活cilium-operator
的metricshubble.metrics.enabled
: 激活Hubble
的metrics设置Helm仓库:
helm repo add cilium https://helm.cilium.io/
对于第一次安装Cilium,可以直接在部署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
更新运行参数
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¶
输出端口到本地主机:
kubectl -n cilium-monitoring port-forward service/grafana --address 0.0.0.0 --address :: 3000:3000
通过浏览器访问 http://localhost:3000
访问Prometheus¶
输出端口到本地主机:
kubectl -n cilium-monitoring port-forward service/prometheus --address 0.0.0.0 --address :: 9090:9090
备注
这里prometheus默认端口是9090