Anda dapat menggunakan GitOps dalam instans armada ACK One untuk mengelola aplikasi dengan repositori Git sebagai sumber kebenaran tunggal. Pendekatan ini memungkinkan penerapan manajemen versi, distribusi multi-kluster, dan penyebaran berkelanjutan untuk aplikasi yang menggunakan berbagai metode orkestrasi, seperti direktori manifes YAML, grafik Helm, dan Kustomize. GitOps sepenuhnya kompatibel dengan versi komunitas Argo CD dan menyediakan lapisan kontrol berdaya tinggi. Topik ini menjelaskan cara menggunakan GitOps dalam instans armada ACK One untuk mengirimkan aplikasi ke beberapa kluster dan membantu Anda memulai.
Prasyarat
Beberapa kluster telah dikaitkan dengan instans armada. Untuk informasi selengkapnya, lihat Menambahkan kluster terkait.
Izin AliyunAdcpFullAccess telah diberikan kepada Pengguna RAM. Untuk informasi selengkapnya, lihat Memberikan izin kepada Pengguna RAM.
(Diperlukan untuk metode CLI) Anda telah memperoleh file kubeconfig dari instans armada melalui Konsol ACK One dan menggunakan kubectl untuk terhubung ke armada.
(Diperlukan untuk metode CLI) Versi terbaru Cloud Assistant CLI telah diinstal dan Cloud Assistant CLI telah dikonfigurasi.
Aturan penagihan
Setelah Anda mengaktifkan GitOps, ACK One membuat sumber daya berikut secara default.
Sebuah Instance SLB dibuat untuk mengekspos titik akhir akses API dan UI Argo CD.
Sebuah instans ECI bayar sesuai penggunaan dengan 2 vCPU dan memori 4 GB dibuat untuk menjalankan layanan Argo CD.
Untuk informasi selengkapnya tentang penagihan, 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. Untuk informasi selengkapnya, lihat Wilayah yang mendukung armada multi-kluster dan kluster alur kerja.
Langkah 1: Mengaktifkan akses publik ke konsol GitOps
Fitur GitOps diaktifkan secara default saat Anda membuat instans armada ACK One. Anda dapat mengakses konsol GitOps melalui VPC. Untuk melakukannya, Anda harus menghubungkan jaringan lokal Anda ke VPC.
Untuk mengakses konsol GitOps melalui Internet guna melakukan operasi seperti mengirimkan dan melihat aplikasi, ikuti langkah-langkah berikut untuk mengaktifkan akses publik.
Mengaktifkan akses publik menimbulkan risiko keamanan. Oleh karena itu, Anda harus mengonfigurasi Daftar Kontrol Akses (ACL) saat mengaktifkan akses publik.
Mengaktifkan akses publik di konsol
Masuk ke Konsol ACK One. Di panel navigasi sebelah kiri, pilih .
Pada halaman Multi-cluster GitOps, klik ikon
di sebelah nama armada di pojok kiri atas dan pilih armada tujuan dari daftar drop-down.GitOps diaktifkan secara default untuk armada baru. Jika GitOps belum diaktifkan untuk armada Anda, klik Enable GitOps. Pada kotak dialog yang muncul, klik OK.
Jika GitOps sudah diaktifkan untuk armada tersebut, tombol GitOps Console akan muncul di halaman Multi-cluster GitOps.
Pada halaman Multi-cluster GitOps, klik Enable di sebelah Public Access. Pada kotak dialog Enable Public Access yang muncul, masukkan alamat IP atau blok CIDR yang ingin Anda tambahkan ke daftar putih, lalu klik OK.
Setelah armada diperbarui, Anda dapat mengklik GitOps Console di pojok kanan atas halaman untuk mengakses konsol GitOps melalui Internet.
Mengaktifkan akses publik menggunakan Cloud Assistant CLI
Pastikan Anda menggunakan versi terbaru Cloud Assistant CLI. Lalu, jalankan perintah berikut untuk mengaktifkan GitOps dan akses publik.
Ganti
<your_clusterid>dengan ID instans armada Anda.Ganti nilai
AccessControlListdengan blok CIDR yang ingin Anda tambahkan ke daftar putih. Untuk informasi selengkapnya tentang cara memperoleh blok CIDR, lihat Mengaktifkan akses publik ke GitOps.
aliyun adcp UpdateHubClusterFeature --ClusterId <your_clusterid> --PublicAccessEnabled true --AccessControlList "[\"10.100.XX.XX/24\"]" --ArgoCDEnabled trueOpsional: Jika Anda menggunakan Pasangan Kunci Akses Pengguna RAM, Anda harus memberikan izin AliyunAdcpFullAccess kepada Pengguna RAM tersebut. Untuk informasi selengkapnya, lihat Memberikan izin kepada Pengguna RAM.
Langkah 2: Membuat aplikasi di konsol GitOps dan mendistribusikannya ke kluster tujuan
Menyebar aplikasi di konsol
Pada halaman Multi-cluster GitOps, klik GitOps Console untuk menuju halaman log masuk UI Argo CD. Klik LOG IN VIA ALIYUN untuk masuk ke UI Argo CD menggunakan Single Sign-On (SSO) dengan akun Alibaba Cloud Anda.
Menghubungkan ke repositori.
Di panel navigasi sebelah kiri UI Argo CD, pilih Settings. Lalu, pilih .
Pada panel yang muncul, konfigurasikan parameter berikut dan klik CONNECT.
Area
Parameter
Nilai
Choose your connection method
-
VIA HTTP/HTTPS
CONNECT REPO USING HTTP/HTTPS
Type
git
Project
default
Repository URL
https://github.com/AliyunContainerService/gitops-demo.git
Skip server verification
Pilih kotak centang ini.

Setelah repositori terhubung, CONNECTION STATUS repositori Git berubah menjadi Successful.

Membuat aplikasi.
Di panel navigasi sebelah kiri UI Argo CD, pilih Applications lalu klik + NEW APP.
Pada panel yang muncul, konfigurasikan parameter berikut dan klik CREATE.
Area
Parameter
Nilai
GENERAL
Application Name
echo-server-demo
Project Name
default
SYNC POLICY
Pilih Automatic dari daftar drop-down.
Opsi berikut tersedia:
Manual: Jika ada perubahan di repositori Git, Anda harus melakukan sinkronisasi secara manual ke kluster tujuan.
Automatic: Server Argo CD secara otomatis mendeteksi perubahan di repositori Git setiap 3 menit dan menerapkan perubahan tersebut ke kluster tujuan.
SYNC OPTIONS
Pilih AUTO-CREATE NAMESPACE.
SOURCE
Repository URL
Pilih repositori Git yang sudah ada dari daftar drop-down. Dalam contoh ini, https://github.com/AliyunContainerService/gitops-demo.git dipilih.
Revision
HEAD
Path
manifests/helm/echo-server
DESTINATION
Cluster URL/Cluster Name
Pilih kluster tujuan dari daftar drop-down.
Namespace
echo-server-demo
HELM
VALUES FILES
values.yaml
Setelah aplikasi dibuat, Anda dapat melihat status aplikasi echo-server-demo pada halaman Applications.
Jika Anda mengatur SYNC POLICY ke Manual, Anda harus mengklik SYNC untuk menyinkronkan aplikasi ke kluster tujuan. Aplikasi disinkronkan ketika Status-nya adalah Healthy dan Synced.

Klik nama aplikasi echo-server-demo untuk melihat detailnya, termasuk topologi dan status sumber daya Kubernetes terkait.

Menyebar aplikasi menggunakan Argo CD CLI
Masuk dan akses Argo CD.
Buka ArgoCD v2.8.7 untuk mengunduh dan menginstal Argo CD CLI V2.8.7.
Jalankan perintah berikut di instans armada ACK One untuk mendapatkan kata sandi awal sistem Argo CD.
kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -dJalankan perintah berikut di instans armada ACK One untuk masuk ke Argo CD menggunakan penerusan port. Nama pengguna 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' updatedJalankan perintah berikut di instans armada ACK One untuk memperbarui kata sandi pengguna
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
Menghubungkan ke repositori.
Jalankan perintah berikut untuk menambahkan 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' addedJalankan perintah berikut untuk melihat daftar repositori Git yang 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 defaultJalankan perintah berikut untuk melihat daftar kluster.
argocd cluster listOutput yang diharapkan: Daftar kluster Argo CD berisi semua kluster yang dikaitkan dengan instans armada ACK One.
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.
Membuat aplikasi.
Jalankan perintah berikut untuk membuat aplikasi.
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' createdJalankan perintah berikut untuk menyinkronkan 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 createdJalankan perintah berikut untuk melihat daftar aplikasi.
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/helm
Operasi terkait
Setelah Anda menyebar aplikasi di GitOps, Anda dapat melakukan operasi berikut untuk meningkatkan keamanan dan observabilitas armada serta GitOps.
Mengonfigurasi ConfigMap Argo CD
Pada halaman Multi-cluster GitOps, temukan Argo CD ConfigMap di bagian terlipat GitOps.
Klik Configure di sebelah Argo CD ConfigMap.
Pada halaman Argo CD ConfigMap Configuration, pilih item konfigurasi dari daftar drop-down Select Configuration Item dan edit di editor kode Edit Configuration Item. Untuk informasi selengkapnya tentang item konfigurasi umum dan kebijakan restart-nya, lihat Item konfigurasi umum.
Restart komponen Argo CD
Pada halaman Multi-cluster GitOps, temukan Argo CD Components di bagian terlipat GitOps.
Klik Restart di sebelah Argo CD Components.
Pada kotak dialog yang muncul, pilih nama komponen yang ingin Anda restart dari daftar drop-down Select Application To Restart, misalnya, argocd-server, lalu klik OK.
(Opsional) Menonaktifkan GitOps
Jika Anda tidak lagi memerlukan GitOps, Anda dapat menghapus aplikasi di GitOps lalu menonaktifkan GitOps.
Sebelum menghapus instans armada ACK One, Anda harus menonaktifkan GitOps.
Matikan dari konsol
Masuk ke Konsol ACK One. Di panel navigasi sebelah kiri, pilih .
Pada halaman Multi-cluster GitOps, klik ikon
di sebelah nama armada di pojok kiri atas dan pilih armada tujuan dari daftar drop-down.Di pojok kanan atas halaman Multi-cluster GitOps, klik Disable GitOps. Pada pesan yang muncul, klik OK.
Matikan menggunakan Cloud Assistant CLI
Pastikan Anda menggunakan versi terbaru Cloud Assistant CLI. Lalu, jalankan perintah berikut untuk menonaktifkan GitOps.
aliyun adcp UpdateHubClusterFeature --ClusterId <your_clusterid> --ArgoCDEnabled false