Buat Aplikasi - 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.

Buat Aplikasi

Aplikasi mewakili penerapan dalam cluster target. Setiap Aplikasi mendefinisikan sumber (repositori Git) dan tujuan (cluster dan namespace). Ketika diterapkan, Argo CD akan membuat sumber daya yang ditentukan oleh manifes dalam repositori Git ke namespace di cluster. Aplikasi sering menentukan penerapan beban kerja, tetapi mereka dapat mengelola sumber daya Kubernetes apa pun yang tersedia di klaster tujuan.

Prasyarat

Buat Aplikasi dasar

Tentukan Aplikasi yang menyebarkan dari repositori Git:

apiVersion: argoproj.io/v1alpha1 kind: Application metadata: name: guestbook namespace: argocd spec: project: default source: repoURL: https://github.com/argoproj/argocd-example-apps targetRevision: HEAD path: guestbook destination: name: in-cluster namespace: default
catatan

Gunakan destination.name dengan nama cluster yang Anda gunakan saat mendaftarkan cluster (seperti in-cluster untuk cluster lokal). destination.serverBidang ini juga berfungsi dengan cluster EKS ARNs, tetapi menggunakan nama cluster direkomendasikan untuk keterbacaan yang lebih baik.

Terapkan Aplikasi:

kubectl apply -f application.yaml

Lihat status Aplikasi:

kubectl get application guestbook -n argocd

Konfigurasi sumber

Repositori Git:

spec: source: repoURL: https://github.com/example/my-app targetRevision: main path: kubernetes/manifests

Tag atau komit Git tertentu:

spec: source: targetRevision: v1.2.0 # or commit SHA

Bagan helm:

spec: source: repoURL: https://github.com/example/helm-charts targetRevision: main path: charts/my-app helm: valueFiles: - values.yaml parameters: - name: image.tag value: v1.2.0

Bagan helm dengan nilai dari repositori Git eksternal (pola multi-sumber):

spec: sources: - repoURL: https://github.com/example/helm-charts targetRevision: main path: charts/my-app helm: valueFiles: - $values/environments/production/values.yaml - repoURL: https://github.com/example/config-repo targetRevision: main ref: values

Untuk informasi selengkapnya, lihat File Nilai Helm dari Repositori Git Eksternal dalam dokumentasi Argo CD.

Bagan helm dari ECR:

spec: source: repoURL: oci://account-id.dkr.ecr.region.amazonaws.com/repository-name targetRevision: chart-version chart: chart-name

Jika Peran Kemampuan memiliki izin ECR yang diperlukan, repositori digunakan secara langsung dan tidak diperlukan konfigurasi Repositori. Lihat Konfigurasikan akses repositori untuk detail.

Repositori Git dari: CodeCommit

spec: source: repoURL: https://git-codecommit.region.amazonaws.com/v1/repos/repository-name targetRevision: main path: kubernetes/manifests

Jika Peran Kemampuan memiliki CodeCommit izin yang diperlukan, repositori digunakan secara langsung dan tidak diperlukan konfigurasi Repositori. Lihat Konfigurasikan akses repositori untuk detail.

Repositori Git dari: CodeConnections

spec: source: repoURL: https://codeconnections.region.amazonaws.com/git-http/account-id/region/connection-id/owner/repository.git targetRevision: main path: kubernetes/manifests

Format URL repositori berasal dari koneksi CodeConnections ARN. Jika Peran Kemampuan memiliki CodeConnections izin yang diperlukan dan koneksi dikonfigurasi, repositori digunakan secara langsung dan tidak ada konfigurasi Repositori yang diperlukan. Lihat Konfigurasikan akses repositori untuk detail.

Kustomisasi:

spec: source: repoURL: https://github.com/example/kustomize-app targetRevision: main path: overlays/production kustomize: namePrefix: prod-

Kebijakan sinkronisasi

Kontrol bagaimana Argo CD menyinkronkan aplikasi.

Sinkronisasi manual (default):

Aplikasi memerlukan persetujuan manual untuk menyinkronkan:

spec: syncPolicy: {} # No automated sync

Memicu sinkronisasi secara manual:

kubectl patch application guestbook -n argocd \ --type merge \ --patch '{"operation": {"initiatedBy": {"username": "admin"}, "sync": {}}}'

Sinkronisasi otomatis:

Aplikasi secara otomatis menyinkronkan ketika perubahan Git terdeteksi:

spec: syncPolicy: automated: {}

Penyembuhan diri:

Secara otomatis mengembalikan perubahan manual ke cluster:

spec: syncPolicy: automated: selfHeal: true

Saat diaktifkan, Argo CD mengembalikan setiap perubahan manual yang dibuat langsung ke cluster, memastikan Git tetap menjadi sumber kebenaran.

Pemangkasan:

Secara otomatis menghapus sumber daya yang dihapus dari Git:

spec: syncPolicy: automated: prune: true
Awas

Pemangkasan akan menghapus sumber daya dari cluster Anda. Gunakan dengan hati-hati di lingkungan produksi.

Sinkronisasi otomatis gabungan:

spec: syncPolicy: automated: prune: true selfHeal: true syncOptions: - CreateNamespace=true

Coba lagi konfigurasi:

Konfigurasikan perilaku coba lagi untuk sinkronisasi yang gagal:

spec: syncPolicy: retry: limit: 5 # Number of failed sync attempts; unlimited if less than 0 backoff: duration: 5s # Amount to back off (default unit: seconds, also supports "2m", "1h") factor: 2 # Factor to multiply the base duration after each failed retry maxDuration: 3m # Maximum amount of time allowed for the backoff strategy

Ini sangat berguna untuk sumber daya yang bergantung pada CRDs pembuatan terlebih dahulu, atau ketika bekerja dengan instance kro di mana CRD mungkin tidak segera tersedia.

Opsi sinkronisasi

Konfigurasi sinkronisasi tambahan:

Buat namespace jika tidak ada:

spec: syncPolicy: syncOptions: - CreateNamespace=true

Lewati dry run untuk sumber daya yang hilang:

Berguna saat menerapkan sumber daya CRDs yang bergantung pada yang belum ada (seperti instance kro):

spec: syncPolicy: syncOptions: - SkipDryRunOnMissingResource=true

Ini juga dapat diterapkan pada sumber daya tertentu menggunakan label pada sumber daya itu sendiri.

Validasi sumber daya sebelum menerapkan:

spec: syncPolicy: syncOptions: - Validate=true

Terapkan tidak sinkron saja:

spec: syncPolicy: syncOptions: - ApplyOutOfSyncOnly=true

Fitur sinkronisasi lanjutan

Argo CD mendukung fitur sinkronisasi lanjutan untuk penerapan kompleks:

  • Gelombang sinkronisasi - Kontrol urutan pembuatan sumber daya dengan argocd.argoproj.io/sync-wave anotasi

  • Sinkronkan kait - Jalankan pekerjaan sebelum atau sesudah sinkronisasi dengan argocd.argoproj.io/hook anotasi (PreSync,, PostSync) SyncFail

  • Penilaian kesehatan sumber daya - Pemeriksaan kesehatan khusus untuk sumber daya khusus aplikasi

Untuk detailnya, lihat Menyinkronkan Gelombang dan Kait Sumber Daya dalam dokumentasi Argo CD.

Abaikan perbedaan

Mencegah Argo CD menyinkronkan bidang tertentu yang dikelola oleh pengontrol lain (seperti replika pengelola HPA):

spec: ignoreDifferences: - group: apps kind: Deployment jsonPointers: - /spec/replicas

Untuk detail tentang pola abaikan dan pengecualian bidang, lihat Diffing Customization dalam dokumentasi Argo CD.

Penyebaran multi-lingkungan

Terapkan aplikasi yang sama ke beberapa lingkungan:

Pengembangan:

apiVersion: argoproj.io/v1alpha1 kind: Application metadata: name: my-app-dev namespace: argocd spec: project: default source: repoURL: https://github.com/example/my-app targetRevision: develop path: overlays/development destination: name: dev-cluster namespace: my-app

Produksi:

apiVersion: argoproj.io/v1alpha1 kind: Application metadata: name: my-app-prod namespace: argocd spec: project: default source: repoURL: https://github.com/example/my-app targetRevision: main path: overlays/production destination: name: prod-cluster namespace: my-app syncPolicy: automated: prune: true selfHeal: true

Memantau dan mengelola Aplikasi

Lihat status Aplikasi:

kubectl get application my-app -n argocd

Akses UI CD Argo:

Buka Argo CD UI melalui konsol EKS untuk melihat topologi aplikasi, status sinkronisasi, kesehatan sumber daya, dan riwayat penerapan. Lihat Bekerja dengan Argo CD petunjuk akses UI.

Aplikasi Rollback:

Kembalikan ke revisi sebelumnya menggunakan Argo CD UI, Argo CD CLI, atau dengan memperbarui spesifikasi Aplikasi ke commit atau tag Git sebelumnya. targetRevision

Menggunakan Argo CD CLI:

argocd app rollback argocd/my-app <revision-id>
catatan

Saat menggunakan Argo CD CLI dengan kemampuan terkelola, tentukan aplikasi dengan awalan namespace:. namespace/appname

Untuk informasi selengkapnya, lihat rollback aplikasi argocd di dokumentasi Argo CD.

Sumber daya tambahan