比較 Argo CD 與自我管理 Argo CD 的 EKS 功能 - Amazon EKS

協助改進此頁面

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

若要為本使用者指南貢獻內容,請點選每個頁面右側面板中的在 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-cmargocd-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 相同,但身分驗證和叢集註冊不同。

先決條件

按照上游安裝說明安裝 Argo CD CLI。

Configuration

使用環境變數設定 CLI:

  1. 從 EKS 主控台 (叢集的功能索引標籤下) 或使用 AWS CLI 取得 Argo CD 伺服器 URL:

    export ARGOCD_SERVER=$(aws eks describe-capability \ --cluster-name my-cluster \ --capability-name my-argocd \ --query 'capability.configuration.argoCd.serverUrl' \ --output text \ --region region-code)
  2. 從 Argo CD UI 產生帳戶字符 (設定帳戶管理員產生新字符),然後將其設定為環境變數:

    export ARGOCD_AUTH_TOKEN="your-token-here"
重要

此組態使用管理員帳戶字符進行初始設定和開發工作流程。對於生產使用案例,請使用專案範圍的角色和字符來遵循最低權限原則。如需設定專案角色和 RBAC 的詳細資訊,請參閱 設定 Argo CD 許可

  1. 設定必要的 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 \ --name my-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 遷移到 受管功能:

  1. 檢閱您目前的 Argo CD 組態是否有不支援的功能 (通知控制器、CMPs、自訂運作狀態檢查)

  2. 將您的自我管理 Argo CD 控制器擴展為零個複本

  3. 在叢集上建立 Argo CD 功能資源

  4. 匯出現有的應用程式、ApplicationSets 和 AppProjects

  5. 遷移儲存庫登入資料、叢集秘密和儲存庫登入資料範本 (已複製)

  6. 如果使用 GPG 金鑰、TLS 憑證或 SSH 已知主機,也請遷移這些組態

  7. 更新destination.server欄位以使用叢集名稱或 EKS 叢集 ARNs

  8. 將它們套用至受管 Argo CD 執行個體

  9. 驗證應用程式是否正確同步

  10. 停用自我管理的 Argo CD 安裝

受管功能使用相同的 Argo CD APIs 和資源定義,因此您現有的資訊清單會以最少的修改運作。

後續步驟