Pertimbangan CD Argo - Amazon EKS

View a markdown version of this page

Pertimbangan CD Argo - Amazon EKS

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:

  1. Pengguna mengakses UI CD Argo melalui konsol EKS

  2. Mereka mengotentikasi menggunakan AWS Identity Center (yang dapat bergabung dengan 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 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:

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

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

  3. Argo CD terhubung ke setiap cluster untuk menyebarkan 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 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 \ --region region-code \ --name target-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 \ --region region-code \ --cluster-name target-cluster \ --principal-arn arn: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:

  1. Di akun target, buat Entri Akses pada cluster 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 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