Argo CD は、Kubernetes 用の宣言型 GitOps 継続的デリバリー ツールです。 Argo CD は、目的のアプリケーションの状態を定義するための信頼のソースとして Git リポジトリを使用する GitOps パターンに従います。 指定したターゲット環境での目的のアプリケーション状態のデプロイが自動化されます。 アプリケーションのデプロイでは、ブランチまたはタグの更新を追跡することも、Git コミットで特定のバージョンのマニフェストにピン留めすることもできます。
この記事では、 Prometheus メトリックをスクレイピングして Argo CD を監視するように、Azure Kubernetes Service (AKS) と Azure Arc 対応 Kubernetes を使用して Prometheus 用の Azure Monitor マネージド サービスを構成する方法について説明します。
前提条件
- AKS または Azure Arc 対応 Kubernetes で実行されている Argo CD
- クラスターで有効になっている Prometheus のマネージド サービス。 詳細については、「 Prometheus と Grafana を有効にする」を参照してください。
サービス モニターをデプロイする
次のサービス モニターをデプロイして、Argo CD ワークロードから Prometheus メトリックをスクレイピングするように Prometheus アドオンのマネージド サービスを構成します。
注
サンプルで構成されているラベルと一致しない場合は、サービス モニターの matchLabels
で適切なラベルを指定します。
apiVersion: azmonitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
name: azmon-argocd-metrics
spec:
labelLimit: 63
labelNameLengthLimit: 511
labelValueLengthLimit: 1023
selector:
matchLabels:
app.kubernetes.io/name: argocd-metrics
namespaceSelector:
any: true
endpoints:
- port: metrics
---
apiVersion: azmonitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
name: azmon-argocd-repo-server-metrics
spec:
labelLimit: 63
labelNameLengthLimit: 511
labelValueLengthLimit: 1023
selector:
matchLabels:
app.kubernetes.io/name: argocd-repo-server
namespaceSelector:
any: true
endpoints:
- port: metrics
---
apiVersion: azmonitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
name: azmon-argocd-server-metrics
spec:
labelLimit: 63
labelNameLengthLimit: 511
labelValueLengthLimit: 1023
selector:
matchLabels:
app.kubernetes.io/name: argocd-server-metrics
namespaceSelector:
any: true
endpoints:
- port: metrics
注
他のサービスまたはポッド モニターを構成する場合は、次の 手順に従います。
ルールをデプロイする
アラート ルール用の テンプレート ファイル と パラメーター ファイル をダウンロードします。
パラメーター ファイルで次の値を編集します。
パラメーター 価値 azureMonitorWorkspace
Azure Monitor ワークスペースのリソース ID。 Azure Monitor ワークスペースの [概要] ページの JSON ビューから取得します。 location
Azure Monitor ワークスペースの場所。 Azure Monitor ワークスペースの [概要] ページの JSON ビューから取得します。 clusterName
AKS クラスターの名前。 クラスターの [概要] ページの JSON ビューから取得します。 actionGroupId
アラート アクション グループのリソース ID。 アクション グループの [概要] ページの JSON ビューから取得します。 アクション グループの詳細を確認します。 Azure Resource Manager テンプレートをインストールするための標準的な方法を使用して、テンプレートをデプロイします。 ガイダンスについては、 Azure Monitor の Resource Manager テンプレートのサンプルを参照してください。
テンプレートをデプロイした後、「 Prometheus ルール グループの表示」の説明に従って、Azure portal でルールを表示できます。 アラートのしきい値を確認して、クラスターとワークロードに合っていることを確認します。 それに応じてしきい値を更新します。
注
ルールのスコープはクラスターに限定されません。 ルールのスコープを特定のクラスターに設定する場合は、「ルール を特定のクラスターに制限する」を参照してください。
Prometheus アラートの詳細を確認できます。 他のオープンソースの Prometheus アラート/記録ルールを使用する場合は、 az-prom-rules-converter を使用して、Azure と同等の Prometheus ルールを作成します。
Grafana ダッシュボードをインポートする
ID または JSON を使用して Argo CD (ID 14191) 用の Grafana ダッシュボード をインポートするには、「 Grafana Labs からダッシュボードをインポートする」の手順に従います。
トラブルシューティング
サービス モニターが正常に適用されたら、アドオンがサービス モニター ターゲットを確実に選択できるようにする場合は、 次の手順に従います。