Saat mengelola aplikasi di beberapa kluster, mempertahankan resource Argo CD Application terpisah untuk setiap kluster rentan terhadap kesalahan dan sulit diskalakan. Fitur GitOps multi-kluster di ACK One menggunakan Argo CD ApplicationSet untuk mengatasi masalah ini: satu templat ApplicationSet secara otomatis menghasilkan satu Argo CD Application per kluster target, sehingga satu commit dapat disebar ke semua kluster sekaligus.
Topik ini menjelaskan cara membuat aplikasi multi-kluster melalui konsol ACK One.
Prasyarat
Sebelum memulai, pastikan Anda telah:
Fleet management telah diaktifkan.
Beberapa kluster terasosiasi dengan instans fleet
Buat aplikasi multi-kluster
Masuk ke konsol ACK One. Di panel navigasi sebelah kiri, pilih Fleet > Multi-cluster GitOps.
Di pojok kiri atas halaman Multi-cluster GitOps, klik ikon
di samping nama fleet, lalu pilih fleet target dari daftar drop-down.Klik Create Multi-cluster Application > GitOps untuk membuka halaman Create Multi-cluster Application - GitOps.
Di tab Quick Create, konfigurasikan parameter berikut. Di bawah bagian Advanced Configuration, atur kebijakan sinkronisasi. Jika opsi Automatic dipilih, Anda dapat mengaktifkan opsi tambahan berikut. Untuk operasi sinkronisasi, tersedia opsi-opsi berikut. Untuk informasi lengkap mengenai opsi sinkronisasi, lihat Argo CD sync options.
Parameter Description Example Multi-cluster Application Set Name Nama application set. appset-echo-server-demoProject Proyek Argo CD tempat application set tersebut berada. defaultSource Code URL URL repositori Git yang berisi manifes aplikasi Anda. https://github.com/AliyunContainerService/gitops-demo.gitGit Branch Branch yang dilacak di repositori. mainPath Path dalam repositori menuju manifes aplikasi. Path ini dapat mengarah ke direktori file YAML, root Helm chart, atau direktori Kustomize. manifests/helm/echo-serverDestination Cluster Kluster tempat aplikasi akan dideploy. Jika dibiarkan kosong, semua kluster yang terdaftar di Argo CD — kecuali in-cluster (tempat fleet dan Argo CD berjalan) — digunakan sebagai kluster tujuan. — Namespace Namespace di setiap kluster tujuan tempat aplikasi dideploy. demoApplication Name Templat nama untuk setiap Argo CD Application yang dihasilkan. Variabel berikut tersedia secara default: {{.name}},{{.metadata.annotations.cluster_name}}, dan{{.metadata.annotations.cluster_id}}.{{.metadata.annotations.cluster_id}}-echoserverKebijakan sinkronisasi (ApplicationSet)
Option Description PRESERVE RESOURCES ON DELETION Jika dipilih, resource turunan yang dibuat oleh application set ini tetap dipertahankan jika application set dihapus. Pilih opsi ini untuk melindungi beban kerja dari penghapusan application set yang tidak disengaja. Kebijakan sinkronisasi (Application)
Option Description Manual Sinkronisasi hanya dipicu saat Anda memulainya secara manual. Automatic Argo CD secara otomatis menyinkronkan aplikasi saat mendeteksi perbedaan antara repositori Git dan status live kluster. Option Description PRUNE RESOURCES Secara default, Argo CD tidak menghapus resource yang sudah tidak ada di Git — ini merupakan mekanisme keamanan untuk mencegah kehilangan data yang tidak disengaja. Jika diaktifkan, resource yang dihapus dari repositori Git akan secara otomatis dihapus dari kluster. Aktifkan opsi ini hanya jika Anda ingin Git menjadi satu-satunya sumber kebenaran untuk status kluster. SELF HEAL Secara default, perubahan manual pada resource live kluster tidak memicu sinkronisasi otomatis. Jika diaktifkan, setiap perubahan di luar alur pada resource live kluster akan secara otomatis dikembalikan agar sesuai dengan status yang diinginkan di Git. Aktifkan opsi ini untuk mencegah deviasi konfigurasi akibat modifikasi langsung pada kluster. Option Description SKIP SCHEMA VALIDATION Melewati validasi spesifikasi resource Kubernetes sebelum diterapkan. Setara dengan `kubectl apply --validate=true|false`. Diaktifkan secara default. AUTO-CREATE NAMESPACE Secara otomatis membuat namespace target jika belum ada di kluster. PRUNE LAST Menghapus resource yang dipangkas hanya setelah semua resource lain dideploy dan dalam kondisi sehat, sehingga mengurangi risiko downtime selama sinkronisasi. APPLY OUT OF SYNC ONLY Hanya menyinkronkan resource yang berada dalam status OutOfSync, sehingga mempercepat operasi sinkronisasi ketika sebagian besar resource sudah dalam keadaan sinkron.RESPECT IGNORE DIFFERENCES Saat sinkronisasi, mengabaikan bidang yang ditentukan dalam konfigurasi ignoreDifferencessehingga bidang tersebut tidak ditimpa.SERVER-SIDE APPLY Menggunakan server-side apply Kubernetes alih-alih client-side apply default. Gunakan opsi ini ketika resource terlalu besar untuk muat dalam ukuran anotasi yang diizinkan, saat melakukan patch pada resource yang tidak sepenuhnya dikelola oleh Argo CD, atau ketika Anda menginginkan field management deklaratif. REPLACE Menggunakan kubectl replace(hapus lalu buat ulang) alih-alihkubectl apply(patch). Gunakan opsi ini hanya jikaapplytidak mencukupi, misalnya untuk bidang yang immutable.RETRY Mengulangi operasi sinkronisasi yang gagal. Konfigurasikan jumlah percobaan ulang, interval percobaan ulang, dan kebijakan backoff. Jika Quick Create tidak memenuhi kebutuhan Anda, pilih tab Create from YAML dan edit YAML ApplicationSet secara langsung.
Quick Create dan Create from YAML disinkronkan. Perubahan yang dilakukan di salah satu tab akan tercermin di tab lainnya.
Klik OK. ApplicationSet akan dibuat, dan status setiap aplikasi yang dihasilkan ditampilkan di kolom Status pada halaman Multi-cluster GitOps.

Untuk memeriksa aplikasi yang dihasilkan, klik angka di kolom Application di samping nama ApplicationSet. Ringkasan semua aplikasi yang dibuat dari ApplicationSet tersebut akan ditampilkan. Klik Application Name untuk membuka UI Argo CD aplikasi tersebut.
