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.
Daftarkan cluster target
Daftarkan cluster untuk mengaktifkan Argo CD untuk menyebarkan aplikasi ke mereka. Anda dapat mendaftarkan cluster yang sama di mana Argo CD berjalan (cluster lokal) atau cluster jarak jauh di akun atau wilayah yang berbeda. Setelah cluster terdaftar, itu akan tetap dalam keadaan koneksi Tidak Dikenal sampai Anda membuat aplikasi dalam cluster itu. Untuk membuat aplikasi Argo CD setelah cluster Anda terdaftar, lihatBuat Aplikasi.
Prasyarat
-
Cluster EKS dengan kemampuan Argo CD dibuat
-
kubectldikonfigurasi untuk berkomunikasi dengan cluster Anda -
Untuk cluster jarak jauh: izin IAM yang sesuai dan entri akses
Daftarkan cluster lokal
Untuk menyebarkan aplikasi ke cluster yang sama di mana Argo CD berjalan, daftarkan sebagai target penyebaran.
penting
Kemampuan Argo CD tidak secara otomatis mendaftarkan cluster lokal. Anda harus mendaftarkannya secara eksplisit untuk menyebarkan aplikasi ke cluster yang sama. Anda dapat menggunakan nama cluster in-cluster untuk kompatibilitas dengan sebagian besar contoh Argo CD online.
catatan
Entri Akses EKS secara otomatis dibuat untuk cluster lokal dengan Peran Kemampuan CD Argo, tetapi tidak ada izin RBAC Kubernetes yang diberikan secara default. Ini mengikuti prinsip hak istimewa terkecil — Anda harus secara eksplisit mengonfigurasi izin yang dibutuhkan Argo CD berdasarkan kasus penggunaan Anda. Misalnya, jika Anda hanya menggunakan klaster ini sebagai hub CD Argo untuk mengelola klaster jarak jauh, klaster ini tidak memerlukan izin penerapan lokal. Lihat bagian Persyaratan RBAC Entri Akses di bawah ini untuk opsi konfigurasi.
Menggunakan Argo CD CLI:
argocd cluster add <cluster-context-name> \ --aws-cluster-name arn:aws:eks:us-west-2:111122223333:cluster/my-cluster \ --name local-cluster
Menggunakan Rahasia Kubernetes:
apiVersion: v1 kind: Secret metadata: name: local-cluster namespace: argocd labels: argocd.argoproj.io/secret-type: cluster stringData: name: local-cluster server: arn:aws:eks:us-west-2:111122223333:cluster/my-cluster project: default
Terapkan konfigurasi:
kubectl apply -f local-cluster.yaml
catatan
Gunakan ARN cluster EKS di server bidang, bukan URL server API Kubernetes. Kemampuan yang dikelola diperlukan ARNs untuk mengidentifikasi cluster. Default kubernetes.default.svc tidak didukung.
Daftarkan cluster jarak jauh
Untuk menyebarkan ke cluster jarak jauh:
Langkah 1: Buat entri akses pada cluster jarak jauh
Ganti region-code dengan AWS Wilayah tempat cluster jarak jauh Anda berada, ganti remote-cluster dengan nama cluster jarak jauh Anda, dan ganti ARN dengan peran kemampuan Argo CD ARN Anda.
aws eks create-access-entry \ --regionregion-code\ --cluster-nameremote-cluster\ --principal-arn arn:aws:iam::[.replaceable]111122223333:role/ArgoCDCapabilityRole\ --type STANDARD
Langkah 2: Kaitkan kebijakan akses dengan izin Kubernetes RBAC
Entri Akses memerlukan izin Kubernetes RBAC untuk Argo CD untuk menyebarkan aplikasi. Untuk memulai dengan cepat, Anda dapat menggunakanAmazonEKSClusterAdminPolicy:
aws eks associate-access-policy \ --regionregion-code\ --cluster-nameremote-cluster\ --principal-arn arn:aws:iam::[.replaceable]111122223333:role/ArgoCDCapabilityRole\ --policy-arn arn:aws:eks::aws:cluster-access-policy/AmazonEKSClusterAdminPolicy \ --access-scope type=cluster
penting
AmazonEKSClusterAdminPolicyIni menyediakan akses cluster-admin penuh (setara dengan). system:masters Ini nyaman untuk memulai tetapi tidak boleh digunakan dalam produksi. Untuk lingkungan produksi, gunakan izin yang lebih ketat dengan mengaitkan Entri Akses dengan grup Kubernetes kustom dan membuat Peran atau binding yang sesuai. ClusterRole Lihat bagian penyiapan produksi di bawah ini untuk konfigurasi hak istimewa paling sedikit.
Langkah 3: Daftarkan cluster di Argo CD
Menggunakan Argo CD CLI:
argocd cluster add <cluster-context-name> \ --aws-cluster-name arn:aws:eks:us-west-2:111122223333:cluster/remote-cluster \ --name remote-cluster
Menggunakan Rahasia Kubernetes:
apiVersion: v1 kind: Secret metadata: name: remote-cluster namespace: argocd labels: argocd.argoproj.io/secret-type: cluster stringData: name: remote-cluster server: arn:aws:eks:us-west-2:111122223333:cluster/remote-cluster project: default
Terapkan konfigurasi:
kubectl apply -f remote-cluster.yaml
Cluster lintas akun
Untuk menyebarkan ke cluster di akun yang berbeda AWS :
-
Di akun target, buat Access Entry pada cluster EKS target menggunakan Argo CD IAM Capability Role ARN dari akun sumber sebagai prinsipal
-
Kaitkan kebijakan akses dengan izin Kubernetes RBAC yang sesuai
-
Daftarkan cluster di Argo CD menggunakan ARN cluster EKS nya
Tidak diperlukan pembuatan peran IAM tambahan atau konfigurasi kebijakan kepercayaan — Entri Akses EKS menangani akses lintas akun.
Format ARN cluster mencakup wilayah, sehingga penerapan lintas wilayah menggunakan proses yang sama dengan penerapan wilayah yang sama.
Verifikasi pendaftaran klaster
Lihat cluster terdaftar:
kubectl get secrets -n argocd -l argocd.argoproj.io/secret-type=cluster
Atau periksa status cluster di Argo CD UI di bawah Pengaturan → Clusters.
klaster privat
Kemampuan Argo CD menyediakan akses transparan 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.
Cukup daftarkan cluster pribadi menggunakan ARN-nya — tidak diperlukan pengaturan jaringan tambahan.
Persyaratan Akses Entri RBAC
Saat Anda membuat kemampuan CD Argo, Entri Akses EKS secara otomatis dibuat untuk Peran Kemampuan, tetapi tidak ada izin RBAC Kubernetes yang diberikan secara default. Desain yang disengaja ini mengikuti prinsip hak istimewa paling kecil—kasus penggunaan yang berbeda memerlukan izin yang berbeda.
Misalnya: * Jika Anda menggunakan cluster hanya sebagai hub CD Argo untuk mengelola cluster jarak jauh, itu tidak memerlukan izin penerapan lokal * Jika Anda menerapkan aplikasi secara lokal, perlu akses baca di seluruh cluster dan tulis akses ke ruang nama tertentu* Jika Anda perlu membuat, itu memerlukan izin cluster-admin tambahan CRDs
Anda harus secara eksplisit mengonfigurasi izin yang dibutuhkan Argo CD berdasarkan kebutuhan Anda.
Izin minimum untuk Argo CD
Argo CD membutuhkan dua jenis izin untuk berfungsi tanpa kesalahan:
Izin baca (seluruh cluster): Argo CD harus dapat membaca semua jenis sumber daya dan Definisi Sumber Daya Kustom (CRDs) di seluruh cluster untuk:
-
Penemuan sumber daya dan pemeriksaan kesehatan
-
Mendeteksi penyimpangan antara keadaan yang diinginkan dan sebenarnya
-
Memvalidasi sumber daya sebelum penerapan
Izin tulis (khusus ruang nama): Argo CD perlu membuat, memperbarui, dan menghapus izin untuk sumber daya yang ditentukan dalam Aplikasi:
-
Menyebarkan beban kerja aplikasi (Deployment, Services, ConfigMaps dll.)
-
Terapkan Sumber Daya Kustom (CRDs khusus untuk aplikasi Anda)
-
Kelola siklus hidup aplikasi
Pengaturan cepat
Untuk memulai dengan cepat, pengujian, atau lingkungan pengembangan, gunakanAmazonEKSClusterAdminPolicy:
aws eks associate-access-policy \ --regionregion-code\ --cluster-namemy-cluster\ --principal-arn arn:aws:iam::[.replaceable]111122223333:role/ArgoCDCapabilityRole\ --policy-arn arn:aws:eks::aws:cluster-access-policy/AmazonEKSClusterAdminPolicy \ --access-scope type=cluster
penting
AmazonEKSClusterAdminPolicyIni menyediakan akses cluster-admin penuh (setara dengansystem:masters), termasuk kemampuan untuk membuat, memodifikasi sumber daya di seluruh cluster CRDs, dan menyebarkan ke namespace apa pun. Ini nyaman untuk pengembangan dan POCs tetapi tidak boleh digunakan dalam produksi. Untuk produksi, gunakan pengaturan hak istimewa paling sedikit di bawah ini.
Pengaturan produksi dengan hak istimewa paling sedikit
Untuk lingkungan produksi, buat Kubernetes RBAC kustom yang memberikan:
-
Akses baca seluruh cluster ke semua sumber daya (untuk penemuan dan pemeriksaan kesehatan)
-
Akses tulis khusus ruang nama (untuk penerapan)
Langkah 1: Kaitkan Entri Akses dengan grup Kubernetes kustom
aws eks associate-access-policy \ --regionregion-code\ --cluster-namemy-cluster\ --principal-arn arn:aws:iam::[.replaceable]111122223333:role/ArgoCDCapabilityRole\ --policy-arn arn:aws:eks::aws:cluster-access-policy/AmazonEKSEditPolicy \ --access-scope type=namespace,namespaces=app-namespace
Langkah 2: Buat ClusterRole untuk akses baca
apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: argocd-read-all rules: # Read access to all resources for discovery and health checks - apiGroups: ["*"] resources: ["*"] verbs: ["get", "list", "watch"]
Langkah 3: Buat Peran untuk akses tulis ke ruang nama aplikasi
apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: name: argocd-deploy namespace: app-namespace rules: # Full access to deploy application resources - apiGroups: ["*"] resources: ["*"] verbs: ["*"]
Langkah 4: Mengikat peran ke grup Kubernetes
apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: argocd-read-all subjects: - kind: Group name: eks-access-entry:arn:aws:iam::111122223333:role/ArgoCDCapabilityRole apiGroup: rbac.authorization.k8s.io roleRef: kind: ClusterRole name: argocd-read-all apiGroup: rbac.authorization.k8s.io --- apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: argocd-deploy namespace: app-namespace subjects: - kind: Group name: eks-access-entry:arn:aws:iam::111122223333:role/ArgoCDCapabilityRole apiGroup: rbac.authorization.k8s.io roleRef: kind: Role name: argocd-deploy apiGroup: rbac.authorization.k8s.io
catatan
Format nama grup untuk Entri Akses eks-access-entry: diikuti oleh ARN utama. Ulangi RoleBinding untuk setiap namespace di mana Argo CD harus menyebarkan aplikasi.
penting
Argo CD harus dapat membaca semua jenis sumber daya di seluruh cluster untuk pemeriksaan dan penemuan kesehatan, meskipun hanya diterapkan ke ruang nama tertentu. Tanpa akses baca di seluruh cluster, Argo CD akan menampilkan kesalahan saat memeriksa kesehatan aplikasi.
Batasi akses klaster dengan Proyek
Gunakan Proyek untuk mengontrol kluster dan ruang nama mana yang dapat diterapkan Aplikasi dengan mengonfigurasi cluster target dan ruang nama yang diizinkan di: spec.destinations
apiVersion: argoproj.io/v1alpha1 kind: AppProject metadata: name: production namespace: argocd spec: destinations: - server: arn:aws:eks:us-west-2:111122223333:cluster/prod-cluster namespace: '*' - server: arn:aws:eks:eu-west-1:111122223333:cluster/prod-eu-cluster namespace: '*' sourceRepos: - 'https://github.com/example/production-apps'
Lihat perinciannya di Bekerja dengan Proyek CD Argo.
Sumber daya tambahan
-
Bekerja dengan Proyek CD Argo- Mengatur aplikasi dan menegakkan batas-batas keamanan
-
Buat Aplikasi- Menyebarkan aplikasi pertama Anda
-
Gunakan ApplicationSets- Menyebarkan ke beberapa cluster dengan ApplicationSets
-
Pertimbangan Argo CD- Pola multi-cluster dan pengaturan lintas akun
-
Pengaturan Kluster Deklaratif
- Referensi konfigurasi cluster hulu