Memecahkan masalah dengan kemampuan Argo CD - Amazon EKS

Bantu tingkatkan halaman ini

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Untuk berkontribusi pada panduan pengguna ini, pilih Edit halaman ini pada GitHub tautan yang terletak di panel kanan setiap halaman.

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Memecahkan masalah dengan kemampuan Argo CD

Topik ini memberikan panduan pemecahan masalah untuk Kemampuan EKS untuk CD Argo, termasuk pemeriksaan kesehatan kemampuan, masalah sinkronisasi aplikasi, otentikasi repositori, dan penerapan multi-cluster.

catatan

Kemampuan EKS sepenuhnya dikelola dan dijalankan di luar cluster Anda. Anda tidak memiliki akses ke log server CD Argo atau argocd namespace. Pemecahan masalah berfokus pada kesehatan kemampuan, status aplikasi, dan konfigurasi.

Kemampuan aktif tetapi aplikasi tidak disinkronkan

Jika kemampuan Argo CD Anda menunjukkan ACTIVE status tetapi aplikasi tidak disinkronkan, periksa kesehatan kemampuan dan status aplikasi.

Periksa kesehatan kemampuan:

Anda dapat melihat masalah kesehatan dan status kemampuan di konsol EKS atau menggunakan AWS CLI.

Konsol:

  1. Buka konsol Amazon EKS di https://console.aws.amazon.com/eks/rumah#/cluster.

  2. Pilih nama cluster Anda.

  3. Pilih tab Observability.

  4. Pilih Monitor cluster.

  5. Pilih tab Kemampuan untuk melihat kesehatan dan status untuk semua kemampuan.

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

Penyebab umum:

  • Repositori tidak dikonfigurasi: Repositori Git tidak ditambahkan ke Argo CD

  • Otentikasi gagal: Kunci SSH, token, atau CodeCommit kredenal tidak valid

  • Aplikasi tidak dibuat: Tidak ada sumber daya Aplikasi di cluster

  • Kebijakan sinkronisasi: Sinkronisasi manual diperlukan (sinkronisasi otomatis tidak diaktifkan)

  • Izin IAM: Izin tidak ada untuk CodeCommit atau Secrets Manager

Periksa status aplikasi:

# 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}'

Periksa kondisi aplikasi:

# 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}'

Aplikasi terjebak dalam status “Kemajuan”

Jika aplikasi ditampilkan Progressing tetapi tidak pernah mencapaiHealthy, periksa status sumber daya aplikasi dan peristiwa.

Periksa kesehatan sumber daya:

# 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"

Penyebab umum:

  • Deployment not ready: Pod gagal memulai atau probe kesiapan gagal

  • Ketergantungan sumber daya: Sumber daya menunggu sumber daya lain siap

  • Kesalahan penarikan gambar: Gambar kontainer tidak dapat diakses

  • Sumber daya tidak mencukupi: Cluster kekurangan CPU atau memori untuk pod

Verifikasi konfigurasi cluster target (untuk pengaturan multi-cluster):

# 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

Kegagalan otentikasi repositori

Jika Argo CD tidak dapat mengakses repositori Git Anda, verifikasi konfigurasi otentikasi.

Untuk CodeCommit repositori:

Verifikasi Peran Kemampuan IAM memiliki CodeCommit izin:

# 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

Peran tersebut membutuhkan codecommit:GitPull izin untuk repositori.

Untuk repositori Git pribadi:

Verifikasi kredenal repositori dikonfigurasi dengan benar:

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

Pastikan rahasia berisi kredensi otentikasi yang benar (kunci SSH, token, atau nama pengguna/kata sandi).

Untuk repositori menggunakan 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

Masalah penyebaran multi-cluster

Jika aplikasi tidak menerapkan ke cluster jarak jauh, verifikasi registrasi klaster dan konfigurasi akses.

Periksa pendaftaran klaster:

# 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

Pastikan server field tersebut berisi ARN klaster EKS, bukan URL API Kubernetes.

Verifikasi Entri Akses kluster target:

Pada cluster target, periksa apakah Peran Kemampuan CD Argo memiliki Entri Akses:

# 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

Periksa izin IAM untuk lintas akun:

Untuk penerapan lintas akun, verifikasi Peran Kemampuan CD Argo memiliki Entri Akses pada kluster target. Kemampuan terkelola menggunakan Entri Akses EKS untuk akses lintas akun, bukan asumsi peran IAM.

Untuk informasi lebih lanjut tentang konfigurasi multi-cluster, lihatDaftarkan kluster target.

Langkah selanjutnya