Pertimbangan Argo CD - 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.

Pertimbangan Argo CD

Topik ini mencakup pertimbangan penting untuk menggunakan Kemampuan EKS untuk Argo CD, termasuk perencanaan, izin, otentikasi, dan pola penyebaran multi-cluster.

Perencanaan

Sebelum menerapkan Argo CD, 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.

Metode otentikasi: Putuskan apakah akan menggunakan Pusat AWS Identitas untuk SSO atau mengelola pengguna Argo CD secara langsung. SSO direkomendasikan untuk lingkungan produksi.

Strategi RBAC: Rencanakan tim atau pengguna mana yang harus memiliki akses admin, editor, atau penampil. Petakan ini ke grup Pusat AWS Identitas atau peran CD Argo.

Arsitektur multi-cluster: Tentukan apakah Anda akan mengelola beberapa cluster dari satu instance Argo CD. 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 adalah umum untuk pengembangan, manual untuk produksi.

Izin

Untuk informasi rinci 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 Argo CD, Anda menyediakan Peran Kemampuan IAM. Tidak seperti ACK, Argo CD terutama mengelola sumber daya Kubernetes, bukan sumber daya secara langsung. AWS Namun, peran IAM diperlukan untuk:

  • Mengakses repositori Git pribadi di CodeCommit

  • Integrasi dengan Pusat AWS Identitas untuk otentikasi

  • Mengakses AWS rahasia di Secrets Manager (jika dikonfigurasi)

  • Penerapan lintas-cluster 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 repositori tertentu ARNs alih-alih menggunakan. "*"

Contoh:

"Resource": "arn:aws:codecommit:us-west-2:111122223333:my-app-repo"

Ini membatasi akses Argo CD hanya ke repositori yang perlu dikelola.

Integrasi Secrets Manager

Jika Anda menyimpan kredensyal repositori di Secrets Manager, lampirkan kebijakan dengan izin baca:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue", "secretsmanager:DescribeSecret" ], "Resource": "arn:aws:secretsmanager:*:*:secret:argocd/*" } ] }

Pengaturan dasar

Untuk fungsionalitas CD Argo dasar dengan repositori Git publik, tidak ada kebijakan IAM tambahan yang diperlukan di luar kebijakan kepercayaan.

Autentikasi

AWS Integrasi Pusat Identitas

Kemampuan terkelola Argo CD terintegrasi langsung dengan AWS Identity Center (sebelumnya AWS SSO), memungkinkan Anda menggunakan penyedia identitas yang ada untuk otentikasi.

Saat Anda mengonfigurasi integrasi Pusat AWS Identitas:

  1. Pengguna mengakses Argo CD UI melalui konsol EKS

  2. Mereka mengautentikasi menggunakan Pusat AWS Identitas (yang dapat berfederasi ke penyedia identitas perusahaan Anda)

  3. AWS Identity Center menyediakan informasi pengguna dan grup ke Argo CD

  4. Argo CD memetakan pengguna dan grup ke peran RBAC berdasarkan konfigurasi Anda

  5. Pengguna hanya melihat aplikasi dan sumber daya yang mereka miliki izin untuk diakses

Menyederhanakan akses dengan set izin Pusat Identitas

AWS Identity Center menyediakan dua jalur otentikasi yang berbeda saat bekerja dengan Argo CD:

Otentikasi Argo CD API: Identity Center menyediakan otentikasi SSO ke UI dan API Argo CD. Ini dikonfigurasi melalui pemetaan peran RBAC kemampuan Argo CD.

Akses kluster EKS: Kemampuan Argo CD menggunakan peran IAM yang disediakan pelanggan untuk mengautentikasi dengan kluster EKS melalui entri akses. Entri akses ini dapat dikonfigurasi secara manual untuk menambah atau menghapus izin.

Anda dapat menggunakan set izin Pusat Identitas untuk menyederhanakan manajemen identitas dengan mengizinkan satu identitas untuk mengakses kluster Argo CD dan EKS. Ini mengurangi overhead dengan mengharuskan Anda mengelola hanya satu identitas di kedua sistem, daripada mempertahankan kredensi terpisah untuk akses CD Argo dan akses cluster.

Pemetaan peran RBAC

Argo CD memiliki peran bawaan yang dapat Anda petakan ke pengguna dan grup Pusat AWS Identitas:

ADMIN: Akses penuh ke semua aplikasi dan pengaturan. Dapat membuat, memperbarui, dan menghapus aplikasi. Dapat mengelola konfigurasi Argo CD.

EDITOR: Dapat membuat dan memodifikasi aplikasi. Tidak dapat mengubah pengaturan CD Argo atau menghapus aplikasi.

VIEWER: Akses hanya-baca ke aplikasi. Dapat melihat status dan riwayat aplikasi. Tidak dapat membuat perubahan.

catatan

Nama peran peka huruf besar/kecil dan harus huruf besar (ADMIN, EDITOR, VIEWER).

penting

Integrasi Kemampuan EKS dengan AWS Identity Center mendukung hingga 1.000 identitas per kemampuan Argo CD. Identitas dapat berupa pengguna atau grup.

Penerapan multi-cluster

Kemampuan terkelola Argo CD 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:

  1. Anda membuat rahasia cluster yang mereferensikan kluster EKS target oleh ARN

  2. Anda membuat Aplikasi atau ApplicationSets yang menargetkan cluster yang berbeda

  3. Argo CD terhubung ke setiap cluster untuk menyebarkan aplikasi dan menonton sumber daya

  4. 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 Argo CD

  • Pastikan konektivitas jaringan antara kemampuan Argo CD dan cluster target

  • Verifikasi izin IAM untuk mengakses kluster target

Daftarkan klaster

Daftarkan cluster menggunakan Kubernetes Secrets di namespace. argocd

Dapatkan ARN cluster target. Ganti region-code dengan AWS Region tempat cluster target Anda berada dan ganti target-cluster dengan nama cluster target Anda.

aws eks describe-cluster \ --region region-code \ --name target-cluster \ --query 'cluster.arn' \ --output text

Buat rahasia cluster menggunakan ARN cluster:

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 bidang, bukan URL server API Kubernetes. Kemampuan yang dikelola diperlukan ARNs untuk mengidentifikasi cluster target.

Terapkan rahasianya:

kubectl apply -f cluster-secret.yaml

Konfigurasikan Entri Akses pada kluster target

Cluster target harus memiliki Entri Akses yang memberikan izin peran kemampuan Argo CD untuk menyebarkan aplikasi. Ganti region-code dengan AWS Region 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 \ --region region-code \ --cluster-name target-cluster \ --principal-arn arn:aws:iam::[.replaceable]111122223333:role/ArgoCDCapabilityRole \ --type STANDARD \ --kubernetes-groups system:masters
catatan

Untuk penggunaan produksi, pertimbangkan untuk menggunakan grup Kubernetes yang lebih ketat daripada grup Kubernetes. system:masters

Akses klaster pribadi

Kemampuan terkelola Argo CD dapat diterapkan 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.

Penerapan lintas akun

Untuk penerapan lintas akun, tambahkan Peran Kemampuan IAM Argo CD dari akun sumber ke Entri Akses EKS kluster target:

  1. Di akun target, buat Entri Akses pada kluster EKS target

  2. Gunakan Argo CD IAM Capability Role ARN dari akun sumber sebagai prinsipal

  3. Konfigurasikan izin Kubernetes RBAC yang sesuai untuk Entri Akses

  4. Daftarkan cluster target di Argo CD menggunakan ARN cluster EKS miliknya

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 di repositori Git, registri Helm, atau gambar OCI, memungkinkan kontrol versi, jejak audit, dan kolaborasi.

Menerapkan RBAC yang tepat: Gunakan integrasi Pusat AWS Identitas untuk mengontrol siapa yang dapat mengakses dan mengelola aplikasi dalam Argo CD. Argo CD mendukung kontrol akses halus ke sumber daya dalam Aplikasi (Deployment, 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.

Penyembuhan diri: Secara otomatis mengembalikan perubahan manual yang dibuat ke cluster. Memastikan status klaster cocok dengan Git.

Pemangkasan: Secara otomatis menghapus sumber daya yang dihapus dari Git. Gunakan dengan hati-hati karena ini dapat menghapus sumber daya.

Aplikasi kesehatan

Argo CD terus memantau kesehatan aplikasi:

  • Sehat: Semua sumber daya berjalan seperti yang diharapkan

  • Kemajuan: Sumber daya sedang dibuat atau diperbarui

  • Terdegradasi: Beberapa sumber daya tidak sehat

  • Ditangguhkan: Aplikasi dijeda

  • Hilang: 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 untuk skenario break-glass di mana Anda harus menghentikan sementara semua sinkronisasi

Konfigurasi Webhook untuk sinkronisasi lebih cepat

Secara default, Argo CD polling 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:

  • Respons sinkronisasi segera saat kode didorong (detik vs menit)

  • Mengurangi overhead pemungutan suara 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

Kemampuan Argo CD menyediakan endpoint webhook untuk menerima notifikasi Git. Temukan URL webhook di konsol EKS di bawah tab Capabilities cluster Anda, atau ambil menggunakan CLI AWS :

aws eks describe-capability \ --cluster-name my-cluster \ --capability-name my-argocd \ --query 'capability.configuration.argoCd.webhookUrl' \ --output text \ --region region-code

Konfigurasikan webhook oleh penyedia Git

GitHub: Di pengaturan repositori Anda, tambahkan webhook dengan URL webhook Argo CD. Atur jenis konten ke application/json dan pilih “Just the push event”.

GitLab: Dalam pengaturan proyek Anda, tambahkan webhook dengan URL webhook Argo CD. Aktifkan “Push events” dan opsional “Tag push events”.

Bitbucket: Di 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 notifikasi ke titik akhir webhook Argo CD.

Untuk petunjuk konfigurasi webhook yang mendetail, 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