協助改進此頁面
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
若要為本使用者指南貢獻內容,請點選每個頁面右側面板中的在 GitHub 上編輯此頁面連結。
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
註冊目標叢集
註冊叢集,讓 Argo CD 將應用程式部署到叢集。您可以註冊 Argo CD 正在執行的相同叢集 (本機叢集) 或不同帳戶或區域中的遠端叢集。
先決條件
-
建立 Argo CD 功能的 EKS 叢集
-
kubectl設定為與您的叢集通訊 -
對於遠端叢集:適當的 IAM 許可和存取項目
註冊本機叢集
若要將應用程式部署到執行 Argo CD 的相同叢集,請將其註冊為部署目標。
注意
Argo CD 功能不會自動註冊本機叢集。您必須明確註冊,才能將應用程式部署到相同的叢集。
使用 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
使用 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
套用組態:
kubectl apply -f local-cluster.yaml
注意
在 server 欄位中使用 EKS 叢集 ARN,而不是 Kubernetes API 伺服器 URL。受管功能需要 ARNs才能識別叢集。kubernetes.default.svc 不支援預設值。
註冊遠端叢集
若要部署到遠端叢集,您必須:
-
在遠端叢集上為您的 Argo CD IAM 功能角色建立存取項目
-
將存取政策與適當的許可建立關聯
-
在 Argo CD 中註冊叢集
步驟 1:在遠端叢集上建立存取項目
將 region-code 取代為遠端叢集所在的 AWS 區域,將 remote-cluster 取代為遠端叢集的名稱,並將 ARN 取代為 Argo CD 功能角色 ARN。
aws eks create-access-entry \ --regionregion-code\ --cluster-nameremote-cluster\ --principal-arn arn:aws:iam::[.replaceable]111122223333:role/ArgoCDCapabilityRole\ --type STANDARD
步驟 2:建立存取政策的關聯
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
注意
對於生產環境,請考慮使用更嚴格的存取政策。如需最低權限組態EKS 功能的安全考量,請參閱 。
步驟 3:在 Argo CD 中註冊叢集
使用 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
使用 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
套用組態:
kubectl apply -f remote-cluster.yaml
跨帳戶和跨區域叢集
若要部署到不同 AWS 帳戶或區域中的叢集:
-
新增 Argo CD 功能角色做為遠端叢集上的存取項目
-
關聯適當的存取政策 (通常是
AmazonEKSClusterAdminPolicy) -
使用叢集的完整 ARN (包括區域) 註冊叢集
叢集 ARN 格式包含 區域,因此跨帳戶和跨區域註冊之間沒有差異,兩者都使用相同的程序。
如需包括信任政策和 IAM 許可的詳細跨帳戶組態,請參閱 Argo CD 考量事項。
驗證叢集註冊
檢視已註冊的叢集:
kubectl get secrets -n argocd -l argocd.argoproj.io/secret-type=cluster
或在設定 → 叢集下的 Argo CD UI 中檢查叢集狀態。
私有叢集
Argo CD 功能提供全私有 EKS 叢集的透明存取,而不需要 VPC 對等互連或專用聯網組態。
AWS 會自動管理 Argo CD 功能與私有遠端叢集之間的連線。
只要使用私有叢集的 ARN 註冊 - 不需要額外的聯網設定。
使用專案限制叢集存取
使用專案控制應用程式可以部署到哪些叢集:
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'
如需詳細資訊,請參閱使用 Argo CD 專案。
其他資源
-
使用 Argo CD 專案 - 組織應用程式並強制執行安全界限
-
建立應用程式 - 部署您的第一個應用程式
-
使用 ApplicationSets - 使用 ApplicationSets 部署到多個叢集
-
Argo CD 考量事項 - 多叢集模式和跨帳戶設定
-
宣告式叢集設定
- 上游叢集組態參考