×

使用 Red Hat OpenShift GitOps,您可以监控特定 Argo CD 实例的 Argo CD 自定义资源工作负载的可用性。通过监控 Argo CD 自定义资源工作负载,您可以通过为其启用警报来获取有关 Argo CD 实例状态的最新信息。当相应 Argo CD 实例的组件工作负载 Pod(例如 application-controller、repo-server 或 server)由于某些原因无法启动,并且在一段时间内准备好副本数与所需副本数之间存在差异时,Operator 就会触发警报。

您可以启用和禁用监控 Argo CD 自定义资源工作负载的设置。

先决条件

  • 您作为具有 `cluster-admin` 角色的用户可以访问集群。

  • Red Hat OpenShift GitOps 已安装在您的集群中。

  • 监控堆栈已在您的集群的 `openshift-monitoring` 项目中配置。此外,Argo CD 实例位于您可以通过 Prometheus 监控的命名空间中。

  • `kube-state-metrics` 服务正在您的集群上运行。

  • 可选:如果您要为已存在于用户定义项目中的 Argo CD 实例启用监控,请确保已 为用户定义的项目启用监控

    如果您要在默认的openshift-monitoring堆栈未监控的命名空间中启用 Argo CD 实例的监控(例如,任何不以openshift-*开头的命名空间),则必须在集群中启用用户工作负载监控。此操作使监控堆栈能够拾取创建的 PrometheusRule。

启用 Argo CD 自定义资源工作负载的监控

默认情况下,Argo CD 自定义资源工作负载的监控配置设置为false

使用 Red Hat OpenShift GitOps,您可以为特定的 Argo CD 实例启用工作负载监控。因此,Operator 会创建一个包含所有由特定 Argo CD 实例管理的工作负载的告警规则的PrometheusRule对象。当相应组件的副本数量偏离所需状态一段时间后,这些告警规则会触发告警。Operator 不会覆盖用户对PrometheusRule对象所做的更改。

步骤
  1. 将给定 Argo CD 实例上的.spec.monitoring.enabled字段值设置为true

    Argo CD 自定义资源示例
    apiVersion: argoproj.io/v1beta1
    kind: ArgoCD
    metadata:
      name: example-argocd
      labels:
        example: repo
    spec:
     # ...
      monitoring:
        enabled: true
     # ...
  2. 验证 Operator 创建的 PrometheusRule 中是否包含告警规则

    告警规则示例
    apiVersion: monitoring.coreos.com/v1
    kind: PrometheusRule
    metadata:
      name: argocd-component-status-alert
      namespace: openshift-gitops
    spec:
      groups:
        - name: ArgoCDComponentStatus
          rules:
           # ...
            - alert: ApplicationSetControllerNotReady (1)
              annotations:
                message: >-
                  applicationSet controller deployment for Argo CD instance in
                  namespace "default" is not running
              expr: >-
                kube_statefulset_status_replicas{statefulset="openshift-gitops-application-controller statefulset",
                namespace="openshift-gitops"} !=
                kube_statefulset_status_replicas_ready{statefulset="openshift-gitops-application-controller statefulset",
                namespace="openshift-gitops"}
              for: 1m
              labels:
                severity: critical
    1 PrometheusRule 中的告警规则,用于检查 Argo CD 实例创建的工作负载是否按预期运行。

禁用 Argo CD 自定义资源工作负载的监控

您可以为特定的 Argo CD 实例禁用工作负载监控。禁用工作负载监控会删除创建的 PrometheusRule。

步骤
  • 将给定 Argo CD 实例上的.spec.monitoring.enabled字段值设置为false

    Argo CD 自定义资源示例
    apiVersion: argoproj.io/v1beta1
    kind: ArgoCD
    metadata:
      name: example-argocd
      labels:
        example: repo
    spec:
     # ...
      monitoring:
        enabled: false
     # ...