このページの改善にご協力ください
このユーザーガイドに貢献するには、すべてのページの右側のペインにある「GitHub でこのページを編集する」リンクを選択してください。
Argo CD 機能に関する問題をトラブルシューティングする
このトピックでは、機能のヘルスチェック、アプリケーション同期の問題、リポジトリ認証、マルチクラスターデプロイなど、EKS Capability for Argo CD をトラブルシューティングする際のガイダンスを示します。
注記
EKS の機能は完全に管理され、クラスターの外部で実行されます。Argo CD サーバーログや argocd 名前空間にアクセスすることはできません。トラブルシューティングでは、機能のヘルス、アプリケーションのステータス、および設定に焦点を当てています。
機能はアクティブなのにアプリケーションが同期しない
Argo CD 機能のステータスが ACTIVE であるのにアプリケーションが同期しない場合は、機能のヘルスとアプリケーションのステータスを確認してください。
機能のヘルスを確認する:
機能のヘルスとステータスの問題は、EKS コンソールまたは AWS CLI を使用して表示できます。
コンソール:
-
https://console.aws.amazon.com/eks/home#/clusters で Amazon EKS コンソールを開きます。
-
クラスター名を選択します。
-
[オブザーバビリティ] タブを選択します。
-
[クラスターを監視する] を選択します。
-
[機能] タブを選択すると、すべての機能のヘルスとステータスが表示されます。
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 secretcluster-secret-name-n argocd -o yaml
リポジトリの認証に失敗する
Argo CD が Git リポジトリにアクセスできない場合は、認証設定を確認してください。
CodeCommit リポジトリの場合:
IAM 機能ロールに CodeCommit へのアクセス許可があることを確認します。
# View IAM policies aws iam list-attached-role-policies --role-namemy-argocd-capability-roleaws iam list-role-policies --role-namemy-argocd-capability-role# Get specific policy details aws iam get-role-policy --role-namemy-argocd-capability-role--policy-namepolicy-name
ロールにはリポジトリに対する codecommit:GitPull アクセス許可が必要です。
プライベート Git リポジトリの場合:
リポジトリの認証情報が正しく設定されていることを確認します。
# Check repository secret exists kubectl get secret -n argocdrepo-secret-name-o yaml
シークレットに適切な認証情報 (SSH キー、トークン、またはユーザー名/パスワード) が含まれていることを確認します。
Secrets Manager を使用するリポジトリの場合:
# Verify IAM Capability Role has Secrets Manager permissions aws iam list-attached-role-policies --role-namemy-argocd-capability-role# Test secret retrieval aws secretsmanager get-secret-value --secret-idarn: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-nametarget-cluster# Describe specific access entry aws eks describe-access-entry \ --cluster-nametarget-cluster\ --principal-arn arn:aws:iam::[.replaceable]111122223333:role/my-argocd-capability-role
クロスアカウントの IAM アクセス許可を確認する:
クロスアカウントデプロイの場合、ターゲットクラスターで Argo CD 機能ロールにアクセスエントリがあることを確認します。マネージド機能は、IAM ロールの引き受けではなく、クロスアカウントアクセスの EKS アクセスエントリを使用します。
マルチクラスター設定の詳細については、「ターゲットクラスターを登録する」を参照してください。
次のステップ
-
Argo CD に関する考慮事項 - Argo CD の考慮事項とベストプラクティス
-
Argo CD の使用 - Argo CD Application を作成して管理する
-
ターゲットクラスターを登録する - マルチクラスターデプロイを設定する
-
EKS 機能をトラブルシューティングする - 一般的な機能をトラブルシューティングする際のガイダンス