5.16. Argo CD カスタムリソースワークロードの監視

Red Hat OpenShift GitOps を使用すると、特定の Argo CD インスタンスの Argo CD カスタムリソースワークロードの可用性を監視できます。Argo CD カスタムリソースワークロードを監視すると、Argo CD インスタンスのアラートを有効にして、その状態に関する最新情報を入手できます。対応する Argo CD インスタンスのアプリケーションコントローラー、リポジトリーサーバー、またはサーバーなどのコンポーネントワークロード Pod が特定の理由で起動できず、準備ができているレプリカの数と必要なレプリカの数の間にずれがある場合、一定期間、Operator はアラートをトリガーします。

Argo CD カスタムリソースのワークロードを監視するための設定を有効または無効にすることができます。

前提条件

  • cluster-admin ロールを持つユーザーとしてクラスターにアクセスできる。
  • Red Hat OpenShift GitOps がクラスターにインストールされている。
  • 監視スタックは、openshift-monitoring プロジェクトのクラスターで設定されます。さらに、Argo CD インスタンスは、Prometheus を介して監視できる namespace にあります。
  • kube-state-metrics サービスがクラスターで実行されています。
  • オプション: ユーザー定義プロジェクトにすでに存在する Argo CD インスタンスの監視を有効にする場合は、クラスター内の ユーザー定義プロジェクトに対して監視が有効になっている ことを確認してください。

    注記

    デフォルトの openshift-monitoring スタックによって監視されていない namespace (たとえば、openshift-* で始まらない namespace) で Argo CD インスタンスの監視を有効にする場合は、クラスターでユーザーワークロードの監視を有効にする必要があります。このアクションにより、監視スタックが作成された PrometheusRule を取得できるようになります。

5.16.1. 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/v1alpha1
    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
    Argo CD インスタンスによって作成されたワークロードが期待どおりに実行されているかどうかをチェックする PrometheusRule のアラートルール。

5.16.2. Argo CD カスタムリソースワークロードの監視の無効化

特定の Argo CD インスタンスのワークロード監視を無効にすることができます。ワークロードの監視を無効にすると、作成された PrometheusRule が削除されます。

手順

  • 特定の Argo CD インスタンスで .spec.monitoring.enabled フィールドの値を false に設定します。

    Argo CD カスタムリソースの例

    apiVersion: argoproj.io/v1alpha1
    kind: ArgoCD
    metadata:
      name: example-argocd
      labels:
        example: repo
    spec:
      ...
      monitoring:
        enabled: false
      ...

5.16.3. 関連情報