2.5. 监控 Argo CD 自定义资源工作负载


使用 Red Hat OpenShift GitOps,您可以监控特定 Argo CD 实例的 Argo CD 自定义资源工作负载的可用性。通过监控 Argo CD 自定义资源工作负载,您可以通过为它们启用警报来获取有关 Argo CD 实例状态的最新信息。当相应 Argo CD 实例的组件工作负载 pod (如 application-controller、repo-server 或服务器)无法正常分配,且就绪副本数和所需副本数之间有偏差时,Operator 会触发警报。

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

2.5.1. 先决条件

  • 您可以使用具有 cluster-admin 角色的用户访问集群。
  • 在集群中安装了 Red Hat OpenShift GitOps。
  • 监控堆栈在 openshift-monitoring 项目中配置。另外,Argo CD 实例位于您可以通过 Prometheus 监控的命名空间中。
  • kube-state-metrics 服务在集群中运行。
  • 可选: 如果要为用户定义的项目中已存在 Argo CD 实例的监控,请确保 为集群中的用户定义的项目启用了 监控。

    注意

    如果要为默认 openshift-monitoring 堆栈监视的命名空间中的 Argo CD 实例启用监控,例如,任何不是以 openshiftbang 开头的命名空间,您必须在集群中启用用户工作负载监控。此操作可让监控堆栈获取创建的 PrometheusRule。

2.5.2. 为 Argo CD 自定义资源工作负载启用监控

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

在 Red Hat OpenShift GitOps 中,您可以为特定的 Argo CD 实例启用工作负载监控。因此,Operator 会创建一个 PrometheusRule 对象,其中包含由特定 Argo CD 实例管理的所有工作负载的警报规则。当相应组件的副本数从特定时间达到所需状态时,这些警报规则会触发警报。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 实例创建的工作负载是否如预期运行。

2.5.3. 禁用 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
     # ...

2.5.4. 其他资源

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.