協助改進此頁面
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
若要為本使用者指南貢獻內容,請點選每個頁面右側面板中的在 GitHub 上編輯此頁面連結。
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
比較 Argo CD 與自我管理 Argo CD 的 EKS 功能
EKS 的 Argo CD 功能提供在 EKS 中執行的全受管 Argo CD 體驗。如需 EKS 功能與自我管理解決方案的一般比較,請參閱 EKS 功能考量事項。本主題著重於 Argo CD 的特定差異,包括身分驗證、多叢集管理和上游功能支援。
與上游 Argo CD 的差異
Argo CD 的 EKS 功能是以上游 Argo CD 為基礎,但其存取、設定和整合 AWS 服務的方式有所不同。
RBAC 和身分驗證: 功能隨附三個 RBAC 角色 (管理員、編輯器、檢視器),並使用 AWS Identity Center 進行身分驗證,而非 Argo CD 的內建身分驗證。透過 功能的 rbacRoleMapping 參數設定角色映射,將 Identity Center 群組映射至 Argo CD 角色,而不是透過 Argo CD 的 argocd-rbac-cm ConfigMap。Argo CD UI 使用自己的直接 URL 託管 (在叢集的功能索引標籤下的 EKS 主控台中找到),而 API 存取使用透過 IAM 的 AWS 身分驗證和授權。
叢集組態: 功能不會自動設定本機叢集或hub-and-spoke式拓撲。您可以設定部署目標叢集和 EKS 存取項目。此功能僅支援使用 EKS 叢集 ARNs (不支援 Kubernetes API 伺服器 URLs) 做為部署目標的 Amazon EKS 叢集。此功能不會自動新增本機叢集 (kubernetes.default.svc) 做為部署目標,若要部署至建立此功能的相同叢集,請使用其 ARN 明確註冊該叢集。
簡化的遠端叢集存取: 功能使用 EKS 存取項目授予遠端叢集的 Argo CD 存取權,以簡化多叢集部署,無需設定服務帳戶的 IAM 角色 (IRSA) 或設定跨帳戶 IAM 角色假設。該功能還提供全私有 EKS 叢集的透明存取,而無需 VPC 對等互連或專用聯網組態,可自動AWS 管理 Argo CD 功能和私有遠端叢集之間的連線。
直接 AWS 服務整合: 功能透過功能角色的 IAM 許可,提供與 AWS 服務的直接整合。您可以直接在應用程式資源中參考 CodeCommit 儲存庫、ECR Helm Chart 和 CodeConnections,而無需建立儲存庫組態。這可簡化身分驗證,並消除管理 AWS 服務個別登入資料的需求。如需詳細資訊,請參閱 設定儲存庫存取。
命名空間支援:此功能最初支援將應用程式部署到單一命名空間,您在建立功能時指定的命名空間。未來版本可能會新增支援多個命名空間中的應用程式。
不支援的功能:下列功能不適用於 受管功能:
-
用於產生自訂資訊清單的 Config Management 外掛程式 (CMPs)
-
資源運作狀態評估的自訂 Lua 指令碼 (支援標準資源的內建運作狀態檢查)
-
通知控制器
-
Argo CD 映像更新程式
-
自訂 SSO 供應商 (僅支援 AWS Identity Center,包括透過 AWS Identity Center 的第三方聯合身分)
-
UI 擴充功能和自訂橫幅
-
直接存取
argocd-cm、argocd-params和其他組態 ConfigMaps
相容性:Application 和 ApplicationSets 的運作方式與上游 Argo CD 相同,而不會變更資訊清單。該功能使用相同的 Kubernetes APIs 和 CRDs,因此 等工具kubectl的運作方式相同。功能完全支援應用程式和 ApplicationSets、GitOps 工作流程與自動同步、多叢集部署、同步政策 (自動化、剪下、自我修復)、同步波和勾點、標準 Kubernetes 資源的運作狀態評估、轉返功能、Git 儲存庫來源 (HTTPS 和 SSH)、Helm、Kutomize 和純 YAML 資訊清單、GitHub 應用程式登入資料、多租用專案,以及資源排除和包含項目。
搭配 受管功能使用 Argo CD CLI
Argo CD CLI 的運作方式與大多數操作的上游 Argo CD 相同,但身分驗證和叢集註冊不同。
先決條件
按照上游安裝說明安裝
Configuration
使用環境變數設定 CLI:
-
從 EKS 主控台 (叢集的功能索引標籤下) 或使用 AWS CLI 取得 Argo CD 伺服器 URL:
export ARGOCD_SERVER=$(aws eks describe-capability \ --cluster-namemy-cluster\ --capability-namemy-argocd\ --query 'capability.configuration.argoCd.serverUrl' \ --output text \ --regionregion-code) -
從 Argo CD UI 產生帳戶字符 (設定 → 帳戶 → 管理員 → 產生新字符),然後將其設定為環境變數:
export ARGOCD_AUTH_TOKEN="your-token-here"
重要
此組態使用管理員帳戶字符進行初始設定和開發工作流程。對於生產使用案例,請使用專案範圍的角色和字符來遵循最低權限原則。如需設定專案角色和 RBAC 的詳細資訊,請參閱 設定 Argo CD 許可。
-
設定必要的 gRPC 選項:
export ARGOCD_OPTS="--grpc-web"
設定這些環境變數後,您可以在不使用 argocd login命令的情況下使用 Argo CD CLI。
主要差異
受管功能具有下列 CLI 限制:
-
argocd admin不支援 命令 (需要直接 Pod 存取) -
argocd login不支援 (請改用帳戶或專案字符) -
argocd cluster add需要具有 EKS 叢集 ARN 的--aws-cluster-name旗標
範例:註冊叢集
註冊 EKS 叢集以進行應用程式部署:
# Get the cluster ARN CLUSTER_ARN=$(aws eks describe-cluster \ --namemy-cluster\ --query 'cluster.arn' \ --output text) # Register the cluster argocd cluster add $CLUSTER_ARN \ --aws-cluster-name $CLUSTER_ARN \ --name in-cluster \ --project default
如需完整的 Argo CD CLI 文件,請參閱 Argo CD CLI 參考
遷移路徑
您可以從自我管理的 Argo CD 遷移到 受管功能:
-
檢閱您目前的 Argo CD 組態是否有不支援的功能 (通知控制器、CMPs、自訂運作狀態檢查)
-
將您的自我管理 Argo CD 控制器擴展為零個複本
-
在叢集上建立 Argo CD 功能資源
-
匯出現有的應用程式、ApplicationSets 和 AppProjects
-
遷移儲存庫登入資料、叢集秘密和儲存庫登入資料範本 (已複製)
-
如果使用 GPG 金鑰、TLS 憑證或 SSH 已知主機,也請遷移這些組態
-
更新
destination.server欄位以使用叢集名稱或 EKS 叢集 ARNs -
將它們套用至受管 Argo CD 執行個體
-
驗證應用程式是否正確同步
-
停用自我管理的 Argo CD 安裝
受管功能使用相同的 Argo CD APIs 和資源定義,因此您現有的資訊清單會以最少的修改運作。
後續步驟
-
建立 Argo CD 功能 - 建立 Argo CD 功能資源
-
使用 Argo CD - 部署您的第一個應用程式
-
Argo CD 考量事項 - 設定 AWS Identity Center 整合