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: server: arn:aws:eks:us-west-2:111122223333:cluster/my-cluster namespace: default
penting

Gunakan ARN cluster EKS di destination.server bidang, bukan URL server API Kubernetes. Kemampuan yang dikelola diperlukan ARNs untuk mengidentifikasi cluster.

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

Opsi sinkronisasi

Konfigurasi sinkronisasi tambahan:

Buat namespace jika tidak ada:

spec: syncPolicy: syncOptions: - CreateNamespace=true

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

Menerapkan 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: server: arn:aws:eks:us-west-2:111122223333:cluster/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: server: arn:aws:eks:us-west-2:111122223333:cluster/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 atau dengan memperbarui spesifikasi Aplikasi ke targetRevision komit atau tag Git sebelumnya.

Sumber daya tambahan