2.2. 监控 Argo CD 实例


默认情况下,Red Hat OpenShift GitOps Operator 会自动检测在定义的命名空间中安装的 Argo CD 实例,如 openshift-gitops,并将其连接到集群的监控堆栈,以便为不同步应用程序提供警报。

2.2.1. 先决条件

  • 您可以使用 cluster-admin 权限访问集群。
  • 访问 OpenShift Container Platform web 控制台。
  • 在集群中安装了 Red Hat OpenShift GitOps Operator。
  • 您已在定义的命名空间中安装了 Argo CD 应用程序,如 openshift-gitops

2.2.2. 使用 Prometheus 指标监控 Argo CD 健康状况

您可以通过针对它运行 Prometheus metrics 查询来监控 Argo CD 应用程序的健康状况。

流程

  1. 在 web 控制台的 Developer 视角中,选择安装 Argo CD 应用程序的命名空间,并导航到 Observe Metrics
  2. Select query 下拉列表中,选择 Custom query
  3. 要检查 Argo CD 应用程序的健康状态,请在 Expression 字段中输入类似以下示例的 Prometheus Query Language (PromQL)查询:

    Example

    sum(argocd_app_info{dest_namespace=~"<your_defined_namespace>",health_status!=""}) by (health_status) 1

    1
    将 & lt;your_defined_namespace > 变量替换为定义的命名空间的实际名称,如 openshift-gitops

2.2.3. 为 Argo CD 实例禁用自动提取指标

默认情况下,Red Hat OpenShift GitOps Operator 会自动提取所有 Argo CD 实例的指标来测量性能。因此,Operator 会创建以下资源和标签到安装 Argo CD 实例的命名空间:

  • GITOPS-operator-argocd-alerts prometheus 规则
  • <argocd_namespace>-read role
  • <argocd_name&gt; , <argocd_name>-repo-server, 和 <argocd_name>-server 服务监控器
  • <argocd_namespace>-prometheus-k8s-read-binding role binding
  • openshift.io/cluster-monitoring=true label

为集群中的多个 Argo CD 实例提取指标可能会导致过量存储使用。作为一种防止度量,使用 Web 控制台的 YAML 视图并配置 ArgoCD 自定义资源(CR)来禁用 Argo CD 实例的指标自动提取。

作为集群管理员,通过为各个实例禁用指标提取,您可以为用户提供更好的控制、灵活性和稳定性,以管理其定义的命名空间。

流程

  1. 登陆到 OpenShift Container Platform Web 控制台。
  2. 在 Web 控制台的 Administrator 视角中,点 Operators Installed Operators
  3. Project 列表中,选择安装用户定义的 Argo CD 实例的项目。
  4. 从安装的 Operator 列表中选择 Red Hat OpenShift GitOps,再进入 Argo CD 选项卡。
  5. 点用户定义的 Argo CD 实例。
  6. 配置用户定义的 Argo CD 实例的 ArgoCD CR,以禁用自动提取指标:

    1. YAML 选项卡,并编辑 ArgoCD CR 的 YAML 文件。
    2. ArgoCD CR 中,将 spec.monitoring.disableMetrics 字段设置为 true

      ArgoCD CR 示例

      apiVersion: argoproj.io/v1beta1
      kind: ArgoCD
      metadata:
       name: example  1
       namespace: spring-petclinic 2
      spec:
       monitoring:
         disableMetrics: true

      1
      用户定义的 Argo CD 实例的名称。
      2
      要运行用户定义的 Argo CD 实例的命名空间。
      提示

      另外,使用以下命令在 Red Hat OpenShift GitOps argocd CLI 中禁用自动提取指标:

      示例命令

      $ oc patch argocd example -n spring-petclinic --type='json' -p='[{"op": "replace", "path": "/spec/monitoring/disableMetrics", "value": true}]'

      输出示例

      argocd.argoproj.io/example patched

  7. 验证 Operator 是否将 openshift.io/cluster-monitoring=false 标签添加到定义的命名空间中:

    1. 进入 Administration Namespaces

      Namespaces 页面显示创建的命名空间。

    2. 点您定义的命名空间,进入 YAML 选项卡,并验证 Operator 的 metadata.labels 部分下是否添加了 openshift.io/cluster-monitoring=false 标签。
  8. 验证 Operator 是否从定义的命名空间中删除以下资源:

    1. 前往 Home Search
    2. Resources 列表中,选择 PrometheusRule,Role,RoleBinding, 和 ServiceMonitor

      Search 页面显示所选资源。

    3. Search 页面中,验证 PrometheusRule 部分下的 gitops-operator-argocd-alerts prometheus 规则已被删除。
    4. Roles 部分的 Filter 列表中,选择 Namespace Roles
    5. 验证 &lt ;argocd_namespace>-read 角色是否已删除。
    6. RoleBindings 部分下,从 Filter 列表中选择 Namespace RoleBindings
    7. 验证 &lt ;argocd_namespace>-prometheus-k8s-read-binding 角色绑定已被删除。
    8. 验证在 ServiceMonitors 部分下,< argocd_name> , & lt; argocd_name>-repo-server, 和 <argocd_name>-server 服务监控器已被删除。
注意

您可以通过将 spec.monitoring.disableMetrics 字段值修改为 false 来为实例启用指标。然后,Operator 会创建所需的角色、角色绑定和服务监控器,并将 openshift.io/cluster-monitoring=true 标签添加到定义的命名空间中。

2.2.4. 其他资源

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.