Argo CD 機能に関する問題をトラブルシューティングする - Amazon EKS

このページの改善にご協力ください

このユーザーガイドに貢献するには、すべてのページの右側のペインにある「GitHub でこのページを編集する」リンクを選択してください。

Argo CD 機能に関する問題をトラブルシューティングする

このトピックでは、機能のヘルスチェック、アプリケーション同期の問題、リポジトリ認証、マルチクラスターデプロイなど、EKS Capability for Argo CD をトラブルシューティングする際のガイダンスを示します。

注記

EKS の機能は完全に管理され、クラスターの外部で実行されます。Argo CD サーバーログや argocd 名前空間にアクセスすることはできません。トラブルシューティングでは、機能のヘルス、アプリケーションのステータス、および設定に焦点を当てています。

機能はアクティブなのにアプリケーションが同期しない

Argo CD 機能のステータスが ACTIVE であるのにアプリケーションが同期しない場合は、機能のヘルスとアプリケーションのステータスを確認してください。

機能のヘルスを確認する:

機能のヘルスとステータスの問題は、EKS コンソールまたは AWS CLI を使用して表示できます。

コンソール:

  1. https://console.aws.amazon.com/eks/home#/clusters で Amazon EKS コンソールを開きます。

  2. クラスター名を選択します。

  3. [オブザーバビリティ] タブを選択します。

  4. [クラスターを監視する] を選択します。

  5. [機能] タブを選択すると、すべての機能のヘルスとステータスが表示されます。

AWS CLI:

# View capability status and health aws eks describe-capability \ --region region-code \ --cluster-name my-cluster \ --capability-name my-argocd # Look for issues in the health section

一般的な原因:

  • リポジトリが設定されていない: Git リポジトリが Argo CD に追加されていません。

  • 認証に失敗した: SSH キー、トークン、または CodeCommit 認証情報が無効です。

  • Application が作成されていない: クラスターに Application リソースが存在しません。

  • 同期ポリシー: 手動同期が必要です (自動同期は有効になっていません)。

  • IAM アクセス許可: CodeCommit または Secrets Manager に対するアクセス許可がありません。

アプリケーションのステータスを確認する:

# List applications kubectl get application -n argocd # View sync status kubectl get application my-app -n argocd -o jsonpath='{.status.sync.status}' # View application health kubectl get application my-app -n argocd -o jsonpath='{.status.health}'

アプリケーションの条件を確認する:

# Describe application to see detailed status kubectl describe application my-app -n argocd # View application health kubectl get application my-app -n argocd -o jsonpath='{.status.health}'

アプリケーションが「進行中」のまま変化しない

アプリケーションが Progressing であるのに Healthy に達しない場合は、アプリケーションのリソースステータスとイベントを確認してください。

リソースのヘルスを確認する:

# View application resources kubectl get application my-app -n argocd -o jsonpath='{.status.resources}' # Check for unhealthy resources kubectl describe application my-app -n argocd | grep -A 10 "Health Status"

一般的な原因:

  • デプロイの準備が完了していない: ポッドの起動に失敗したか、準備状況プローブが失敗しています。

  • リソースの依存関係: リソースが他のリソースの準備を待っています。

  • イメージプルエラー: コンテナイメージにアクセスできません。

  • リソースが不十分: クラスターでポッドの CPU やメモリが不足しています。

ターゲットクラスターの設定を検証する (マルチクラスター設定の場合):

# List registered clusters kubectl get secret -n argocd -l argocd.argoproj.io/secret-type=cluster # View cluster secret details kubectl get secret cluster-secret-name -n argocd -o yaml

リポジトリの認証に失敗する

Argo CD が Git リポジトリにアクセスできない場合は、認証設定を確認してください。

CodeCommit リポジトリの場合:

IAM 機能ロールに CodeCommit へのアクセス許可があることを確認します。

# View IAM policies aws iam list-attached-role-policies --role-name my-argocd-capability-role aws iam list-role-policies --role-name my-argocd-capability-role # Get specific policy details aws iam get-role-policy --role-name my-argocd-capability-role --policy-name policy-name

ロールにはリポジトリに対する codecommit:GitPull アクセス許可が必要です。

プライベート Git リポジトリの場合:

リポジトリの認証情報が正しく設定されていることを確認します。

# Check repository secret exists kubectl get secret -n argocd repo-secret-name -o yaml

シークレットに適切な認証情報 (SSH キー、トークン、またはユーザー名/パスワード) が含まれていることを確認します。

Secrets Manager を使用するリポジトリの場合:

# Verify IAM Capability Role has Secrets Manager permissions aws iam list-attached-role-policies --role-name my-argocd-capability-role # Test secret retrieval aws secretsmanager get-secret-value --secret-id arn:aws:secretsmanager:region-code:111122223333:secret:my-secret

マルチクラスターデプロイに関する問題

アプリケーションがリモートクラスターにデプロイされていない場合は、クラスターの登録とアクセスの設定を確認してください。

クラスターの登録を確認する:

# List registered clusters kubectl get secret -n argocd -l argocd.argoproj.io/secret-type=cluster # Verify cluster secret format kubectl get secret CLUSTER_SECRET_NAME -n argocd -o yaml

server フィールドに、Kubernetes API URL ではなく EKS クラスター ARN が含まれていることを確認します。

ターゲットクラスターのアクセスエントリを確認する:

ターゲットクラスターで、Argo CD 機能ロールにアクセスエントリがあることを確認します。

# List access entries (run on target cluster or use AWS CLI) aws eks list-access-entries --cluster-name target-cluster # Describe specific access entry aws eks describe-access-entry \ --cluster-name target-cluster \ --principal-arn arn:aws:iam::[.replaceable]111122223333:role/my-argocd-capability-role

クロスアカウントの IAM アクセス許可を確認する:

クロスアカウントデプロイの場合、ターゲットクラスターで Argo CD 機能ロールにアクセスエントリがあることを確認します。マネージド機能は、IAM ロールの引き受けではなく、クロスアカウントアクセスの EKS アクセスエントリを使用します。

マルチクラスター設定の詳細については、「ターゲットクラスターを登録する」を参照してください。

次のステップ