GitOps di ACK One memungkinkan Anda mengelola pengiriman aplikasi di beberapa kluster menggunakan repositori Git sebagai satu-satunya sumber kebenaran. Fitur ini mendukung direktori manifes YAML, Helm chart, dan Kustomize, serta sepenuhnya kompatibel dengan versi komunitas Argo CD dengan lapisan kontrol berdaya tinggi (high-availability).
Setelah menyelesaikan panduan ini, Anda akan:
Mengaktifkan akses publik ke konsol Argo CD
Menghubungkan repositori Git ke Argo CD
Menyebarkan aplikasi ke kluster tujuan
Prasyarat
Sebelum memulai, pastikan Anda telah:
Mengaktifkan manajemen armada. Lihat Manajemen armada.
Memiliki beberapa kluster yang terkait dengan instans armada. Lihat Menambahkan kluster terkait.
Memiliki izin AliyunAdcpFullAccess yang diberikan kepada RAM user Anda. Lihat Memberikan izin kepada RAM user.
(Hanya CLI) Memiliki File kubeconfig instans armada yang diunduh dari Konsol ACK One, dengan kubectl dikonfigurasi untuk terhubung ke armada.
(Hanya CLI) Versi terbaru Cloud Assistant CLI telah diinstal dan dikonfigurasi.
Penagihan
Mengaktifkan GitOps membuat sumber daya berikut yang dikenai biaya:
Sebuah Instance SLB untuk mengekspos titik akhir API dan UI Argo CD
Sebuah instans ECI bayar sesuai penggunaan dengan 2 vCPU dan memori 4 GB untuk menjalankan layanan Argo CD
Untuk detail harga, lihat Penagihan sumber daya cloud untuk armada multi-kluster.
Wilayah yang didukung
Fitur ini tersedia di semua wilayah tempat fitur manajemen armada ACK One diaktifkan. Lihat Wilayah yang mendukung armada multi-kluster dan kluster alur kerja.
Langkah 1: Aktifkan akses publik ke konsol GitOps
GitOps diaktifkan secara default saat Anda membuat instans armada ACK One. Secara default, konsol Argo CD hanya dapat diakses dalam Virtual Private Cloud (VPC). Untuk mengelola aplikasi dari browser melalui Internet, aktifkan akses publik.
Mengaktifkan akses publik menimbulkan risiko keamanan. Selalu konfigurasikan Access Control List (ACL) untuk membatasi akses hanya ke alamat IP atau Blok CIDR tepercaya.
Menggunakan konsol
Masuk ke Konsol ACK One. Di panel navigasi kiri, pilih Fleet > Multi-cluster Applications.
Di halaman Multi-cluster GitOps, klik ikon
di sebelah nama armada dan pilih armada Anda dari daftar drop-down.Jika GitOps belum diaktifkan, klik Enable GitOps, lalu klik OK pada kotak dialog. Jika GitOps sudah diaktifkan, tombol GitOps Console akan terlihat di halaman tersebut.
Klik Enable di sebelah Public Access. Pada kotak dialog Enable Public Access, masukkan alamat IP atau Blok CIDR yang ingin ditambahkan ke daftar putih, lalu klik OK.
Setelah armada diperbarui, klik GitOps Console di pojok kanan atas untuk membuka konsol Argo CD di browser Anda.
Menggunakan Cloud Assistant CLI
Jalankan perintah berikut untuk mengaktifkan GitOps dan akses publik secara bersamaan. Ganti <your_clusterid> dengan ID instans armada Anda, dan ganti nilai AccessControlList dengan Blok CIDR tepercaya Anda.
Untuk panduan mendapatkan Blok CIDR, lihat Mengaktifkan akses publik ke Argo CD.
aliyun adcp UpdateHubClusterFeature --ClusterId <your_clusterid> --PublicAccessEnabled true --AccessControlList "[\"10.100.XX.XX/24\"]" --ArgoCDEnabled trueJika Anda menggunakan AccessKey RAM user, berikan izin AliyunAdcpFullAccess kepada RAM user tersebut sebelum menjalankan perintah ini. Lihat Memberikan izin kepada RAM user.
Langkah 2: Sebarkan aplikasi ke kluster tujuan
Langkah ini memandu Anda menghubungkan repositori Git dan menyebarkan aplikasi menggunakan repositori contoh gitops-demo. Tersedia dua metode: UI Argo CD dan CLI Argo CD.
Sebarkan menggunakan UI Argo CD
Masuk ke Argo CD
Di halaman Multi-cluster GitOps, klik GitOps Console. Di halaman login Argo CD, klik LOG IN VIA ALIYUN untuk login menggunakan Single Sign-On (SSO) dengan Akun Alibaba Cloud Anda.
Hubungkan repositori
Di panel navigasi kiri, klik Settings, lalu pilih Repositories > + Connect Repo.
Konfigurasikan parameter berikut dan klik CONNECT. Saat koneksi berhasil, CONNECTION STATUS berubah menjadi Successful.
Area Parameter Nilai Pilih metode koneksi Anda — VIA HTTP/HTTPS CONNECT REPO USING HTTP/HTTPS Type git Project default Repository URL https://github.com/AliyunContainerService/gitops-demo.gitSkip server verification Pilih kotak centang ini 

Buat aplikasi
Di panel navigasi kiri, pilih Applications, lalu klik + NEW APP.
Konfigurasikan parameter berikut dan klik CREATE.
Area Parameter Nilai GENERAL Application Name echo-server-demoProject Name default SYNC POLICY — Pilih Automatic dari daftar drop-down. Dengan Automatic, Argo CD memeriksa repositori Git setiap 3 menit dan menerapkan perubahan secara otomatis. Dengan Manual, Anda memicu sinkronisasi dengan mengklik SYNC. SYNC OPTIONS — Pilih AUTO-CREATE NAMESPACE SOURCE Repository URL Pilih https://github.com/AliyunContainerService/gitops-demo.gitdari daftar drop-downRevision HEAD Path manifests/helm/echo-serverDESTINATION Cluster URL Pilih kluster tujuan Anda dari daftar drop-down Namespace echo-server-demoHELM VALUES FILES values.yamlDi halaman Applications, pastikan aplikasi
echo-server-demomenampilkan Status: Healthy dan Synced. Jika Anda mengatur SYNC POLICY ke Manual, klik SYNC untuk memicu penerapan awal.
Klik nama aplikasi untuk melihat topologi dan status sumber daya Kubernetes-nya.

Sebarkan menggunakan CLI Argo CD
Masuk ke Argo CD
Unduh dan instal Argo CD CLI v2.8.7.
Ambil kata sandi admin awal dari instans armada:
kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -dLogin menggunakan port forwarding. Username default adalah
admin.export ARGOCD_OPTS='--port-forward-namespace argocd --port-forward' argocd login Username: admin Password:Output yang diharapkan:
'admin:login' logged in successfully Context 'port-forward' updatedPerbarui kata sandi
admindefault:argocd account update-password *** Enter password of currently logged in user (admin): *** Enter new password for user admin: *** Confirm new password for user admin:Output yang diharapkan:
Password updated Context 'port-forward' updated
Hubungkan repositori
Tambahkan repositori Git:
argocd repo add https://github.com/AliyunContainerService/gitops-demo.git --name echo-serverOutput yang diharapkan:
Repository 'https://github.com/AliyunContainerService/gitops-demo.git' addedVerifikasi repositori telah ditambahkan:
argocd repo listOutput yang diharapkan:
TYPE NAME REPO INSECURE OCI LFS CREDS STATUS MESSAGE PROJECT git https://github.com/AliyunContainerService/gitops-demo.git false false false false Successful defaultDaftarkan kluster yang tersedia. Output mencakup semua kluster yang terkait dengan instans armada.
argocd cluster listOutput yang diharapkan:
SERVER NAME VERSION STATUS MESSAGE PROJECT https://47.97.XX.XX:6443 c83f3cbc90a****-temp02 1.22+ Successful https://kubernetes.default.svc in-cluster Unknown Cluster has no applications and is not being monitored.Catat URL server kluster tujuan Anda — Anda akan membutuhkannya di langkah berikutnya.
Buat dan sinkronkan aplikasi
Buat aplikasi. Ganti
https://47.97.XX.XX:6443dengan URL server kluster tujuan Anda.argocd app create echo-server --repo https://github.com/AliyunContainerService/gitops-demo.git --path manifests/helm --dest-namespace echo-server-cli --dest-server https://47.97.XX.XX:6443Output yang diharapkan:
application 'echo-server' createdSinkronkan aplikasi ke kluster tujuan:
argocd app sync echo-serverOutput yang diharapkan:
TIMESTAMP GROUP KIND NAMESPACE NAME STATUS HEALTH HOOK MESSAGE 2022-09-22T14:32:45+08:00 Service echo-server-cli echo-server OutOfSync Missing 2022-09-22T14:32:45+08:00 apps Deployment echo-server-cli echo-server OutOfSync Missing 2022-09-22T14:32:45+08:00 Service echo-server-cli echo-server Synced Progressing 2022-09-22T14:32:45+08:00 Service echo-server-cli echo-server Synced Progressing service/echo-server created 2022-09-22T14:32:45+08:00 apps Deployment echo-server-cli echo-server OutOfSync Missing deployment.apps/echo-server created 2022-09-22T14:32:45+08:00 apps Deployment echo-server-cli echo-server Synced Progressing deployment.apps/echo-server created Name: echo-server Project: default Server: https://47.97.XX.XX:6443 Namespace: echo-server-cli URL: https://127.0.0.1:52742/applications/echo-server Repo: https://github.com/AliyunContainerService/gitops-demo.git Target: Path: manifests/helm SyncWindow: Sync Allowed Sync Policy: <none> Sync Status: Synced to (e5c2618) Health Status: Progressing Operation: Sync Sync Revision: e5c261880a4072cdbfa5173add2be426f7f3**** Phase: Succeeded Start: 2022-09-22 14:32:44 +0800 CST Finished: 2022-09-22 14:32:45 +0800 CST Duration: 1s Message: successfully synced (all tasks run) GROUP KIND NAMESPACE NAME STATUS HEALTH HOOK MESSAGE Service echo-server-cli echo-server Synced Progressing service/echo-server created apps Deployment echo-server-cli echo-server Synced Progressing deployment.apps/echo-server createdKonfirmasi aplikasi sedang berjalan:
argocd app listOutput yang diharapkan:
NAME CLUSTER NAMESPACE PROJECT STATUS HEALTH SYNCPOLICY CONDITIONS REPO PATH TARGET echo-server https://47.97.XX.XX:6443 echo-server-cli default Synced Healthy <none> <none> https://github.com/AliyunContainerService/gitops-demo.git manifests/helmAplikasi berhasil diterapkan ketika STATUS bernilai Synced dan HEALTH bernilai Healthy.
Operasi lanjutan
Setelah menerapkan aplikasi, gunakan operasi berikut untuk memelihara konfigurasi GitOps Anda.
Konfigurasi ConfigMap Argo CD
Di halaman Multi-cluster GitOps, temukan Argo CD ConfigMap di bagian terlipat GitOps.
Klik Configure di sebelah Argo CD ConfigMap.
Di halaman Argo CD ConfigMap Settings, pilih item konfigurasi dari daftar drop-down Select Configuration Item dan edit di editor kode Modify Configurations. Untuk item konfigurasi umum dan kebijakan restart-nya, lihat Item konfigurasi umum.
Restart komponen Argo CD
Di halaman Multi-cluster GitOps, temukan Argo CD Component di bagian terlipat GitOps.
Klik Restart di sebelah Argo CD Components.
Di kotak dialog, pilih komponen yang akan direstart dari daftar drop-down Select Application to Restart (misalnya, argocd-server), lalu klik OK.
Nonaktifkan GitOps
Hapus semua aplikasi di GitOps sebelum menonaktifkannya. Juga, nonaktifkan GitOps sebelum menghapus instans armada ACK One.
Menggunakan konsol:
Masuk ke Konsol ACK One. Di panel navigasi kiri, pilih Fleet > Multi-cluster Applications.
Di halaman Multi-cluster GitOps, klik ikon
dan pilih armada Anda.Klik Disable GitOps di pojok kanan atas, lalu klik OK.
Menggunakan Cloud Assistant CLI:
aliyun adcp UpdateHubClusterFeature --ClusterId <your_clusterid> --ArgoCDEnabled falseLangkah selanjutnya
Aktifkan akses publik ke Argo CD — konfigurasikan pengaturan kontrol akses tambahan
Item konfigurasi umum — sesuaikan perilaku Argo CD dengan pengaturan ConfigMap
Penagihan sumber daya cloud untuk armada multi-kluster — pahami biaya sumber daya GitOps