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.
Konsep Argo CD
Argo CD mengimplementasikan GitOps dengan memperlakukan Git sebagai satu-satunya sumber kebenaran untuk penerapan aplikasi Anda. Topik ini berjalan melalui contoh praktis, kemudian menjelaskan konsep inti yang perlu Anda pahami ketika bekerja dengan Kemampuan EKS untuk Argo CD.
Memulai dengan Argo CD
Setelah membuat kemampuan Argo CD (lihatMembuat kemampuan Argo CD), Anda dapat mulai menerapkan aplikasi. Contoh ini berjalan melalui pendaftaran cluster dan membuat Aplikasi.
Langkah 1: Mengatur
Daftarkan cluster Anda (wajib)
Daftarkan cluster tempat Anda ingin menyebarkan aplikasi. Untuk contoh ini, kami akan mendaftarkan cluster yang sama di mana Argo CD berjalan (Anda dapat menggunakan nama in-cluster untuk kompatibilitas dengan sebagian besar contoh Argo CD):
# Get your cluster ARN CLUSTER_ARN=$(aws eks describe-cluster \ --name my-cluster \ --query 'cluster.arn' \ --output text) # Register the cluster using Argo CD CLI argocd cluster add $CLUSTER_ARN \ --aws-cluster-name $CLUSTER_ARN \ --name in-cluster \ --project default
catatan
Untuk informasi tentang mengonfigurasi CLI CD Argo agar berfungsi dengan kemampuan Argo CD di EKS, lihat. Menggunakan Argo CD CLI dengan kemampuan terkelola
Atau, daftarkan klaster menggunakan Kubernetes Secret (lihat Daftarkan kluster target detailnya).
Konfigurasikan akses repositori (opsional)
Contoh ini menggunakan GitHub repositori publik, jadi tidak diperlukan konfigurasi repositori. Untuk repositori pribadi, konfigurasikan akses menggunakan AWS Secrets Manager, CodeConnections, atau Kubernetes Secrets (lihat detailnya). Konfigurasikan akses repositori
Untuk AWS layanan (ECR untuk bagan Helm,, dan CodeCommit) CodeConnections, Anda dapat mereferensikannya secara langsung di sumber daya Aplikasi tanpa membuat Repositori. Peran Kemampuan harus memiliki izin IAM yang diperlukan. Lihat Konfigurasikan akses repositori untuk detail.
Langkah 2: Buat Aplikasi
Buat manifes Aplikasi ini dimy-app.yaml:
apiVersion: argoproj.io/v1alpha1 kind: Application metadata: name: guestbook namespace: argocd spec: project: default source: repoURL: https://github.com/argoproj/argocd-example-apps.git targetRevision: HEAD path: guestbook destination: name: in-cluster namespace: guestbook syncPolicy: automated: prune: true selfHeal: true syncOptions: - CreateNamespace=true
Terapkan Aplikasi:
kubectl apply -f my-app.yaml
Setelah menerapkan Aplikasi ini, Argo CD: 1. Menyinkronkan aplikasi dari Git ke klaster Anda (penerapan awal) 2. Memonitor repositori Git untuk perubahan 3. Secara otomatis menyinkronkan perubahan berikutnya ke cluster 4 Anda. Mendeteksi dan memperbaiki penyimpangan apa pun dari keadaan yang diinginkan 5. Menyediakan status kesehatan dan riwayat sinkronisasi di UI
Lihat status aplikasi:
kubectl get application guestbook -n argocd
Anda juga dapat melihat aplikasi menggunakan Argo CD CLI argocd app get guestbook () atau Argo CD UI (dapat diakses dari konsol EKS di bawah tab Capabilities cluster Anda).
catatan
Gunakan nama cluster di destination.name (nama yang Anda gunakan saat mendaftarkan cluster). Kemampuan terkelola tidak mendukung default lokal dalam cluster (kubernetes.default.svc).
Konsep inti
GitOps prinsip dan jenis sumber
Argo CD mengimplementasikan GitOps, di mana sumber aplikasi Anda adalah satu-satunya sumber kebenaran untuk penerapan:
-
Deklaratif - Status yang diinginkan dideklarasikan menggunakan manifes YAMAL, bagan Helm, atau overlay Kustomize
-
Berversi - Setiap perubahan dilacak dengan jejak audit lengkap
-
Otomatis - Argo CD terus memantau sumber dan secara otomatis menyinkronkan perubahan
-
Penyembuhan diri - Mendeteksi dan mengoreksi penyimpangan antara keadaan cluster yang diinginkan dan aktual
Jenis sumber yang didukung:
-
Repositori Git - GitHub, GitLab, Bitbucket, CodeCommit (HTTPS, SSH, atau) CodeConnections
-
Pendaftaran Helm - pendaftar HTTP (seperti
https://aws.github.io/eks-charts) dan pendaftar OCI (seperti)public.ecr.aws -
Gambar OCI - Gambar kontainer yang berisi manifes atau bagan Helm (seperti)
oci://registry-1.docker.io/user/my-app
Fleksibilitas ini memungkinkan organisasi untuk memilih sumber yang memenuhi persyaratan keamanan dan kepatuhan mereka. Misalnya, organisasi yang membatasi akses Git dari cluster dapat menggunakan ECR untuk bagan Helm atau gambar OCI.
Untuk informasi selengkapnya, lihat Sumber Aplikasi
Sinkronisasi dan rekonsiliasi
Argo CD terus memantau sumber dan cluster Anda untuk mendeteksi dan memperbaiki perbedaan:
-
Sumber jajak pendapat untuk perubahan (default: setiap 6 menit)
-
Membandingkan status yang diinginkan dengan status cluster
-
Menandai aplikasi sebagai
SyncedatauOutOfSync -
Menyinkronkan perubahan secara otomatis (jika dikonfigurasi) atau menunggu persetujuan manual
-
Memantau kesehatan sumber daya setelah sinkronisasi
Gelombang sinkronisasi mengontrol urutan pembuatan sumber daya menggunakan anotasi:
metadata: annotations: argocd.argoproj.io/sync-wave: "0" # Default if not specified
Sumber daya diterapkan dalam urutan gelombang (angka yang lebih rendah terlebih dahulu, termasuk angka negatif seperti-1). Hal ini memungkinkan Anda untuk membuat dependensi seperti namespaces (wave-1) sebelum deployments (wave). 0
Penyembuhan diri secara otomatis mengembalikan perubahan manual:
spec: syncPolicy: automated: selfHeal: true
catatan
Kemampuan terkelola menggunakan pelacakan sumber daya berbasis anotasi (bukan berbasis label) untuk kompatibilitas yang lebih baik dengan konvensi Kubernetes dan alat lainnya.
Untuk informasi rinci tentang fase sinkronisasi, kait, dan pola lanjutan, lihat dokumentasi sinkronisasi CD Argo
Aplikasi kesehatan
Argo CD memantau kesehatan semua sumber daya dalam aplikasi Anda:
Status Kesehatan: * Sehat - Semua sumber daya berjalan seperti yang diharapkan * Kemajuan - Sumber daya sedang dibuat atau diperbarui * Terdegradasi - Beberapa sumber daya tidak sehat (pod mogok, pekerjaan gagal) * Ditangguhkan - Aplikasi sengaja dijeda * Hilang - Sumber daya yang didefinisikan dalam Git tidak ada di klaster
Argo CD memiliki pemeriksaan kesehatan bawaan untuk sumber daya Kubernetes umum (Deployment,, Jobs StatefulSets, dll.) dan mendukung pemeriksaan kesehatan khusus untuk. CRDs
Kesehatan aplikasi ditentukan oleh semua sumber dayanya - jika ada sumber dayaDegraded, aplikasinyaDegraded.
Untuk informasi lebih lanjut, lihat Resource Health
Pola multi-cluster
Argo CD mendukung dua pola penyebaran utama:
H ub-and-spoke - Jalankan Argo CD pada cluster manajemen khusus yang menyebarkan ke beberapa cluster beban kerja: * Kontrol dan visibilitas terpusat * Kebijakan yang konsisten di semua cluster * Satu instance CD Argo untuk dikelola * Pemisahan yang jelas antara bidang kontrol dan beban kerja
Per-cluster - Jalankan Argo CD di setiap cluster, hanya mengelola aplikasi cluster itu: * Pemisahan cluster (satu kegagalan tidak memengaruhi yang lain) * Jaringan yang lebih sederhana (tidak ada komunikasi lintas cluster) * Pengaturan awal yang lebih mudah (tanpa registrasi cluster)
Pilih hub-and-spoke tim platform yang mengelola banyak cluster, atau per-cluster untuk tim independen atau ketika cluster harus sepenuhnya terisolasi.
Untuk konfigurasi multi-cluster yang mendetail, lihatPertimbangan Argo CD.
Proyek
Proyek menyediakan pengelompokan logis dan kontrol akses untuk Aplikasi:
-
Pembatasan sumber - Batasi repositori Git mana yang dapat digunakan
-
Pembatasan tujuan - Batasi cluster dan ruang nama mana yang dapat ditargetkan
-
Pembatasan sumber daya - Batasi tipe sumber daya Kubernetes mana yang dapat digunakan
-
Integrasi RBAC - Memetakan proyek ke pengguna dan AWS grup Pusat Identitas IDs
Semua Aplikasi milik proyek. Jika tidak ditentukan, mereka menggunakan default proyek (yang tidak memiliki batasan). Untuk produksi, buat proyek dengan batasan yang sesuai.
Untuk konfigurasi proyek dan pola RBAC, lihat. Konfigurasikan izin Argo CD
Organisasi repositori
Sebagian besar tim menggunakan organisasi berbasis direktori dengan overlay Kustomize atau file nilai Helm untuk lingkungan yang berbeda:
my-app/ ├── base/ │ ├── deployment.yaml │ └── service.yaml └── overlays/ ├── dev/ │ └── kustomization.yaml ├── staging/ │ └── kustomization.yaml └── prod/ └── kustomization.yaml
Pendekatan ini memberikan fleksibilitas dan kejelasan sambil menjaga semua konfigurasi lingkungan dalam satu repositori.
Untuk detail pola struktur repositori dan praktik terbaik, lihat dokumentasi praktik terbaik Argo CD
Opsi sinkronisasi
Sempurnakan perilaku sinkronisasi dengan opsi umum:
-
CreateNamespace=true- Secara otomatis membuat namespace tujuan -
ServerSideApply=true- Gunakan aplikasi sisi server untuk resolusi konflik yang lebih baik -
SkipDryRunOnMissingResource=true- Lewati dry run saat CRDs belum ada (berguna untuk instance kro)
spec: syncPolicy: syncOptions: - CreateNamespace=true - ServerSideApply=true
Untuk daftar lengkap opsi sinkronisasi, lihat dokumentasi opsi sinkronisasi CD Argo
Langkah selanjutnya
-
Konfigurasikan akses repositori- Konfigurasikan akses repositori Git
-
Daftarkan kluster target- Daftarkan cluster target untuk penyebaran
-
Buat Aplikasi- Buat Aplikasi pertama Anda
-
Pertimbangan Argo CD- Pola khusus EKS, integrasi Pusat Identitas, dan konfigurasi multi-cluster
-
Dokumentasi CD Argo - Dokumentasi
CD Argo yang komprehensif termasuk kait sinkronisasi, pemeriksaan kesehatan, dan pola lanjutan