註冊目標叢集 - Amazon EKS

協助改進此頁面

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

若要為本使用者指南貢獻內容,請點選每個頁面右側面板中的在 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 不支援預設值。

註冊遠端叢集

若要部署到遠端叢集,您必須:

  1. 在遠端叢集上為您的 Argo CD IAM 功能角色建立存取項目

  2. 將存取政策與適當的許可建立關聯

  3. 在 Argo CD 中註冊叢集

步驟 1:在遠端叢集上建立存取項目

region-code 取代為遠端叢集所在的 AWS 區域,將 remote-cluster 取代為遠端叢集的名稱,並將 ARN 取代為 Argo CD 功能角色 ARN。

aws eks create-access-entry \ --region region-code \ --cluster-name remote-cluster \ --principal-arn arn:aws:iam::[.replaceable]111122223333:role/ArgoCDCapabilityRole \ --type STANDARD

步驟 2:建立存取政策的關聯

aws eks associate-access-policy \ --region region-code \ --cluster-name remote-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 帳戶或區域中的叢集:

  1. 新增 Argo CD 功能角色做為遠端叢集上的存取項目

  2. 關聯適當的存取政策 (通常是 AmazonEKSClusterAdminPolicy)

  3. 使用叢集的完整 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 專案

其他資源