Bantu meningkatkan 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 GitHub tautan Edit halaman ini di 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.
Pertimbangan CD Argo
Topik ini mencakup pertimbangan penting untuk menggunakan Kemampuan EKS untuk CD Argo, termasuk perencanaan, izin, otentikasi, dan pola penerapan multi-cluster.
Perencanaan
Sebelum menerapkan CD Argo, pertimbangkan hal berikut:
Strategi repositori: Tentukan di mana manifes aplikasi Anda akan disimpan (CodeCommit, GitHub, GitLab, Bitbucket). Rencanakan struktur repositori dan strategi percabangan Anda untuk lingkungan yang berbeda.
Strategi RBAC: Rencanakan tim atau pengguna mana yang harus memiliki akses admin, editor, atau pemirsa. Petakan ini ke AWS grup Identity Center atau peran CD Argo.
Multi-cluster arsitektur: Tentukan apakah Anda akan mengelola beberapa cluster dari satu instance CD Argo. Pertimbangkan untuk menggunakan cluster manajemen khusus untuk Argo CD.
Organisasi aplikasi: Rencanakan bagaimana Anda akan menyusun Aplikasi dan ApplicationSets. Pertimbangkan untuk menggunakan proyek untuk mengatur aplikasi berdasarkan tim atau lingkungan.
Kebijakan sinkronisasi: Putuskan apakah aplikasi harus disinkronkan secara otomatis atau memerlukan persetujuan manual. Sinkronisasi otomatis umum untuk pengembangan, manual untuk produksi.
Izin
Untuk informasi terperinci tentang Peran Kemampuan IAM, kebijakan kepercayaan, dan praktik terbaik keamanan, lihat Peran IAM kemampuan Amazon EKS danPertimbangan keamanan untuk Kemampuan EKS.
Ikhtisar Peran Kemampuan IAM
Saat Anda membuat sumber daya kemampuan CD Argo, Anda menyediakan Peran Kemampuan IAM. Tidak seperti ACK, Argo CD terutama mengelola sumber daya Kubernetes, bukan sumber daya secara langsung. AWS Namun, Peran Kemampuan IAM diperlukan untuk:
-
Mengakses repositori Git pribadi di CodeCommit
-
Mengintegrasikan dengan AWS Identity Center untuk otentikasi
-
Mengakses rahasia di AWS Secrets Manager (jika dikonfigurasi)
-
Cross-cluster penerapan ke cluster EKS lainnya
CodeCommit integrasi
Jika Anda menggunakan CodeCommit repositori, lampirkan kebijakan dengan izin baca:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "codecommit:GitPull" ], "Resource": "*" } ] }
penting
Untuk penggunaan produksi, batasi Resource bidang ke ARN repositori tertentu alih-alih menggunakan"*".
Contoh:
"Resource": "arn:aws:codecommit:us-west-2:111122223333:my-app-repo"
Ini membatasi akses kemampuan Argo CD hanya ke repositori yang perlu dikelola.
Integrasi Secrets Manager
Jika Anda menyimpan kredentif repositori di Secrets Manager, lampirkan kebijakan terkelola untuk akses baca:
arn:aws:iam::aws:policy/AWSSecretsManagerClientReadOnlyAccess
Kebijakan ini mencakup izin yang diperlukan:secretsmanager:GetSecretValue,secretsmanager:DescribeSecret, dan izin mendekripsi KMS.
Pengaturan dasar
Untuk fungsionalitas dasar Argo CD dengan repositori Git publik, tidak ada kebijakan IAM tambahan yang diperlukan di luar kebijakan kepercayaan.
Autentikasi
AWS Integrasi Pusat Identitas
Kemampuan terkelola CD Argo terintegrasi langsung dengan AWS Identity Center (sebelumnya AWS SSO), memungkinkan Anda menggunakan penyedia identitas yang ada untuk otentikasi.
Saat Anda mengkonfigurasi integrasi Pusat AWS Identitas:
-
Pengguna mengakses UI CD Argo melalui konsol EKS
-
Mereka mengotentikasi menggunakan AWS Identity Center (yang dapat bergabung dengan penyedia identitas perusahaan Anda)
-
AWS Identity Center menyediakan informasi pengguna dan grup ke Argo CD
-
Argo CD memetakan pengguna dan grup ke peran RBAC berdasarkan konfigurasi Anda
-
Pengguna hanya melihat aplikasi dan sumber daya yang mereka miliki izin untuk mengakses
Menyederhanakan akses dengan set izin Identity Center
AWS Identity Center menyediakan dua jalur otentikasi yang berbeda saat bekerja dengan Argo CD:
Otentikasi API Argo CD: Identity Center menyediakan otentikasi SSO ke UI dan API Argo CD. Ini dikonfigurasi melalui pemetaan peran RBAC kemampuan Argo CD.
Akses cluster EKS: Kemampuan CD Argo menggunakan peran IAM yang disediakan pelanggan untuk mengotentikasi dengan cluster EKS melalui entri akses. Entri akses ini dapat dikonfigurasi secara manual untuk menambah atau menghapus izin.
Anda dapat menggunakan kum pulan izin Identity Center untuk menyederhanakan manajemen identitas dengan mengizinkan satu identitas untuk mengakses cluster Argo CD dan EKS. Ini mengurangi overhead dengan mengharuskan Anda mengelola hanya satu identitas di kedua sistem, daripada mempertahankan kredentif terpisah untuk akses CD Argo dan akses cluster.
Pemetaan peran RBAC
Argo CD memiliki peran bawaan yang dapat Anda petakan ke pengguna dan grup AWS Identity Center:
ADMIN: Akses penuh ke semua aplikasi dan pengaturan. Dapat membuat, memperbarui, dan menghapus aplikasi. Dapat mengelola konfigurasi CD Argo.
EDITOR: Dapat membuat dan memodifikasi aplikasi. Tidak dapat mengubah pengaturan CD Argo atau menghapus aplikasi.
VIEWER: Read-only akses ke aplikasi. Dapat melihat status aplikasi dan riwayat. Tidak dapat membuat perubahan.
catatan
Nama peran peka huruf besar dan harus huruf besar (ADMIN, EDITOR, VIEWER).
penting
Integrasi EKS Capabilities dengan AWS Identity Center mendukung hingga 1.000 identitas per kemampuan CD Argo. Identitas dapat berupa pengguna atau grup.
Multi-cluster penyebaran
Kemampuan Argo CD yang dikelola mendukung penerapan multi-cluster, memungkinkan Anda mengelola aplikasi di seluruh cluster pengembangan, pementasan, dan produksi dari satu instance CD Argo.
Cara kerja multi-cluster
Saat Anda mendaftarkan cluster tambahan dengan Argo CD:
-
Anda membuat rahasia cluster yang mereferensikan cluster EKS target oleh ARN
-
Anda membuat Aplikasi atau ApplicationSets yang menargetkan cluster yang berbeda
-
Argo CD terhubung ke setiap cluster untuk menyebarkan dan menonton sumber daya
-
Anda melihat dan mengelola semua cluster dari satu Argo CD UI
Prasyarat untuk multi-cluster
Sebelum mendaftarkan cluster tambahan:
-
Buat Entri Akses pada cluster target untuk peran kemampuan CD Argo
-
Pastikan konektivitas jaringan antara kemampuan Argo CD dan cluster target
-
Verifikasi izin IAM untuk mengakses cluster target
Daftarkan cluster
Daftarkan cluster menggunakan Rahasia Kubernetes di namespace. argocd
Dapatkan cluster target ARN. Ganti region-code dengan AWS Wilayah tempat cluster target Anda berada dan ganti target-cluster dengan nama cluster target Anda.
aws eks describe-cluster \ --regionregion-code\ --nametarget-cluster\ --query 'cluster.arn' \ --output text
Buat rahasia cluster menggunakan cluster ARN:
apiVersion: v1 kind: Secret metadata: name: target-cluster namespace: argocd labels: argocd.argoproj.io/secret-type: cluster type: Opaque stringData: name: target-cluster server: arn:aws:eks:us-west-2:111122223333:cluster/target-cluster project: default
penting
Gunakan ARN cluster EKS di server lapangan, bukan URL server API Kubernetes. Kemampuan terkelola membutuhkan ARN untuk mengidentifikasi cluster target.
Terapkan rahasianya:
kubectl apply -f cluster-secret.yaml
Konfigurasikan Entri Akses pada cluster target
Cluster target harus memiliki Entri Akses yang memberikan izin peran kemampuan CD Argo untuk menerapkan aplikasi. Ganti region-code dengan AWS Wilayah tempat cluster target Anda berada, ganti target-cluster dengan nama cluster target Anda, dan ganti ARN dengan peran kemampuan Argo CD ARN Anda.
aws eks create-access-entry \ --regionregion-code\ --cluster-nametarget-cluster\ --principal-arnarn:aws:iam::111122223333:role/ArgoCDCapabilityRole\ --type STANDARD \ --kubernetes-groups system:masters
catatan
Untuk penggunaan produksi, pertimbangkan untuk menggunakan grup Kubernetes yang lebih ketat daripada. system:masters
Akses klaster pribadi
Kemampuan Argo CD yang dikelola dapat digunakan ke cluster EKS yang sepenuhnya pribadi tanpa memerlukan peering VPC atau konfigurasi jaringan khusus. AWS mengelola konektivitas antara kemampuan Argo CD dan cluster jarak jauh pribadi secara otomatis. Pastikan kontrol akses repositori Anda dan kebijakan Argo CD RBAC dikonfigurasi dengan benar.
Cross-account penyebaran
Untuk penerapan lintas akun, tambahkan Peran Kemampuan IAM Argo CD dari akun sumber ke Entri Akses EKS cluster target:
-
Di akun target, buat Entri Akses pada cluster EKS target
-
Gunakan Argo CD IAM Capability Role ARN dari akun sumber sebagai prinsipal
-
Konfigurasikan izin Kubernetes RBAC yang sesuai untuk Entri Akses
-
Daftarkan cluster target di Argo CD menggunakan kluster EKS ARN
Tidak diperlukan pembuatan peran IAM tambahan atau konfigurasi kebijakan kepercayaan — Entri Akses EKS menangani akses lintas akun.
Praktik terbaik
Gunakan sumber deklaratif sebagai sumber kebenaran: Simpan semua manifes aplikasi Anda dalam sumber deklaratif (repositori Git, pendaftar Helm, atau gambar OCI), mengaktifkan kontrol versi, jejak audit, dan kolaborasi.
Menerapkan RBAC yang tepat: Gunakan integrasi AWS Identity Center untuk mengontrol siapa yang dapat mengakses dan mengelola aplikasi di Argo CD. Argo CD mendukung kontrol akses halus ke sumber daya dalam Aplikasi (Deployments, Pod,, Secrets). ConfigMaps
Gunakan ApplicationSets untuk penerapan multi-lingkungan: Gunakan ApplicationSets untuk menyebarkan aplikasi di beberapa cluster atau ruang nama dengan konfigurasi yang berbeda.
Manajemen siklus hidup
Kebijakan sinkronisasi aplikasi
Kontrol bagaimana Argo CD menyinkronkan aplikasi:
Sinkronisasi manual: Aplikasi memerlukan persetujuan manual untuk menyinkronkan perubahan. Direkomendasikan untuk lingkungan produksi.
Sinkronisasi otomatis: Aplikasi secara otomatis menyinkronkan ketika perubahan Git terdeteksi. Umum untuk lingkungan pengembangan dan pementasan.
Self-healing: Secara otomatis mengembalikan perubahan manual yang dilakukan pada cluster. Memastikan status cluster cocok dengan Git.
Pemangkasan: Secara otomatis menghapus sumber daya yang dihapus dari Git. Gunakan dengan hati-hati karena ini dapat menghapus sumber daya.
Kesehatan aplikasi
Argo CD terus memantau kesehatan aplikasi:
-
Seh at: Semua sumber daya berjalan seperti yang diharapkan
-
Kem ajuan: Sumber daya sedang dibuat atau diperbarui
-
Terdegradasi: Beberapa sumber daya tidak sehat
-
Ditangguhkan: Aplikasi dijeda
-
Hil ang: Sumber daya hilang dari cluster
Sinkronkan jendela
Konfigurasikan jendela sinkronisasi untuk mengontrol kapan aplikasi dapat disinkronkan:
-
Izinkan sinkronisasi hanya selama jendela pemeliharaan
-
Blokir sinkronisasi selama jam kerja
-
Jadwalkan sinkronisasi otomatis untuk waktu tertentu
-
Gunakan jendela sinkronisasi dalam situasi di mana Anda perlu membuat perubahan dan menghentikan sinkronisasi apa pun (skenario pecahan kaca)
Konfigurasi Webhook untuk sinkronisasi lebih cepat
Secara default, Argo CD mensurvei repositori Git setiap 6 menit untuk mendeteksi perubahan. Untuk penerapan yang lebih responsif, konfigurasikan webhook Git untuk memicu sinkronisasi langsung saat perubahan didorong.
Webhook memberikan beberapa manfaat:
-
Respon sinkronisasi langsung saat kode didorong (detik vs menit)
-
Mengurangi overhead polling dan meningkatkan kinerja sistem
-
Penggunaan batas tarif API yang lebih efisien
-
Pengalaman pengguna yang lebih baik dengan umpan balik yang lebih cepat
Titik akhir Webhook
URL webhook mengikuti pola${serverUrl}/api/webhook, di mana serverUrl URL server CD Argo Anda. Untuk menemukan URL server Anda, lihatURL titik akhir Argo CD.
Misalnya, jika URL server Argo CD Anda adalahhttps://my-argocd-dc855fdf-111122223333.eks-capabilities.us-west-2.amazonaws.com, URL webhook adalah:
https://my-argocd-dc855fdf-111122223333.eks-capabilities.us-west-2.amazonaws.com/api/webhook
Konfigurasikan webhook oleh penyedia Git
GitHub: Dalam pengaturan repositori Anda, tambahkan webhook dengan URL webhook Argo CD. Atur jenis konten ke application/json dan pilih “Hanya acara push”.
GitLab: Dalam pengaturan proyek Anda, tambahkan webhook dengan URL webhook Argo CD. Aktifkan “Push events” dan opsional “Tag push events”.
Bitbucket: Dalam pengaturan repositori Anda, tambahkan webhook dengan URL webhook Argo CD. Pilih “Repository push” sebagai pemicunya.
CodeCommit: Buat EventBridge aturan Amazon yang memicu perubahan status CodeCommit repositori dan mengirimkan pemberitahuan ke titik akhir webhook Argo CD.
Untuk petunjuk konfigurasi webhook terperinci, lihat Konfigurasi Webhook CD Argo.
catatan
Webhook melengkapi polling—mereka tidak menggantikannya. Argo CD terus melakukan polling repositori sebagai mekanisme fallback jika pemberitahuan webhook terlewatkan.
Langkah selanjutnya
-
Bekerja dengan Argo CD- Pelajari cara membuat dan mengelola Aplikasi CD Argo
-
Memecahkan masalah dengan kemampuan CD Argo- Memecahkan masalah CD Argo
-
Bekerja dengan sumber daya kemampuan- Kelola sumber daya kemampuan CD Argo Anda