跳转至

Prometheus 集群标签配置

本文说明如何修改 Prometheus(CR) 为监控指标添加集群标识标签(cluster_name),以提高指标、告警消息的可读性。

方式一:通过 Prometheus 修改

  1. 在命令行执行以下语句找到 Prometheus(CR)

    kubectl get prometheus -n insight-system
    

    预期输出示例:

    NAME                                    VERSION   DESIRED   READY   RECONCILED   AVAILABLE   AGE
    insight-agent-kube-prometh-prometheus   v2.44.0   1         1       True         True        73d
    
  2. 编辑 Prometheus CR,在 spec.externalLabels 参数中增加 cluster_name,作为在容器管理中注册的名字。

    apiVersion: monitoring.coreos.com/v1
    kind: Prometheus
    metadata:
      name: insight-agent-kube-prometh-prometheus
      namespace: insight-system
    spec:
      externalLabels:
        cluster: deb65d24-1090-40cf-b5e6-489fac2f2c1b
    +   cluster_name: kpanda-global-cluster
    

方式二:通过 Helm 修改(推荐)

  1. 建议通过 Helm 来更新 Prometheus CR,以避免在升级过程中丢失这些配置。编辑 values.yaml 里对应的参数:

    kube-prometheus-stack:
      prometheus:
        prometheusSpec:
          externalLabels:
            cluster: '{{ (lookup "v1" "Namespace" "" "kube-system").metadata.uid }}'
    +       cluster_name: 'kpanda-global-cluster'
    
  2. 可以通过 --set 参数来设置

    --set kube-prometheus-stack.prometheus.prometheusSpec.externalLabels.cluster_name='kpanda-global-cluster'
    

补充说明

在容器管理 v0.27 版本之后,集群的名字也会标记在 kpanda-systemnamespace 中,记录在 kpanda.io/cluster-name 的标签中。

kubectl get ns kpanda-system -o yaml
apiVersion: v1
kind: Namespace
metadata:
  finalizers:
  - kpanda.io/kpanda-system
  labels:
    kpanda.io/cluster-name: kpanda-global-cluster
    kpanda.io/kube-system-id: deb65d24-1090-40cf-b5e6-489fac2f2c1b
    kubernetes.io/metadata.name: kpanda-system
    name: kpanda-system
  name: kpanda-system
spec:
  finalizers:
  - kubernetes
status:
  phase: Active

评论