帮助改进此页面
要帮助改进本用户指南,请选择位于每个页面右侧窗格中的在 GitHub 上编辑此页面链接。
适用于 Argo CD 的 EKS 功能与自主管理型 Argo CD 的比较
适用于 Argo CD 的 EKS 功能提供了在 EKS 中运行的完全托管的 Argo CD。有关 EKS 功能与自主管理型解决方案的总体比较,请参阅 EKS 功能和注意事项。本主题将重点介绍 Argo CD 特有的差异,包括身份验证、多集群管理及上游功能支持。
与上游 Argo CD 的区别
适用于 Argo CD 的 EKS 功能基于上游 Argo CD,但在访问方式、配置以及与 Amazon 服务的集成方面有所不同。
RBAC 和身份验证:该功能附带三个 RBAC 角色(管理员、编辑者和查看者),并使用 Amazon Identity Center 进行身份验证,而不是 Argo CD 的内置身份验证。通过该功能的 rbacRoleMapping 参数配置角色映射,以将 Identity Center 组映射到 Argo CD 角色,而不是通过 Argo CD 的 argocd-rbac-cm ConfigMap 进行配置。Argo CD 用户界面通过其自身的直接 URL 托管(可在 EKS 控制台中集群的“功能”选项卡下找到),API 访问则通过 IAM 使用 Amazon 身份验证和授权。
集群配置:该功能不会自动配置本地集群或轴辐式拓扑。您需要自行配置部署目标集群和 EKS 访问条目。该功能仅支持将 Amazon EKS 集群作为部署目标,且必须使用 EKS 集群 ARN(而非 Kubernetes API 服务器 URL)。该功能不会自动将本地集群 (kubernetes.default.svc) 添加为部署目标,若要部署到创建该功能的同一集群,请使用其 ARN 明确注册该集群。
简化的远程集群访问:该功能使用 EKS 访问条目来授予 Argo CD 远程集群访问权限,从而简化了多集群部署,无需配置服务账户的 IAM 角色(IRSA)或设置跨账户 IAM 角色代入。该功能还支持对完全私有的 EKS 集群进行透明访问,无需进行 VPC 对等连接或专门的网络配置,Amazon 会自动管理 Argo CD 功能与私有远程集群之间的连接。
直接的 Amazon 服务集成:该功能通过功能角色的 IAM 权限,提供与 Amazon 服务的直接集成。您可以直接在 Application 资源中引用 CodeCommit 存储库、ECR Helm 图表和 CodeConnections,而无需创建存储库配置。这简化了身份验证,无需为 Amazon 服务管理单独的凭证。有关详细信息,请参阅 配置存储库访问权限。
命名空间支持:该功能最初仅支持将应用程序部署到单个命名空间,在创建此功能时需指定该命名空间。未来版本有望支持将应用程序部署到多个命名空间。
不支持的功能:托管功能中不提供以下功能:
-
用于生成自定义清单的 Config 管理插件(CMP)
-
用于资源运行状况评测的自定义 Lua 脚本(支持标准资源的内置运行状况检查)
-
通知控制器
-
Argo CD 图像更新程序
-
自定义 SSO 提供者(仅支持 Amazon Identity Center,包括通过 Amazon Identity Center 提供的第三方联合身份)
-
用户界面扩展和自定义横幅
-
直接访问
argocd-cm、argocd-params和其他配置 ConfigMaps
兼容性:Applications 和 ApplicationSets 的工作方式与上游 Argo CD 完全相同,清单无需更改。该功能使用同一 Kubernetes API 和 CRD,因此 kubectl 等工具的使用方式将保持不变。该功能完全支持 Applications 和 ApplicationSets、带自动同步的 GitOps 工作流程、多集群部署、同步策略(自动化、修剪、自我修复)、同步波次和钩子、标准 Kubernetes 资源的运行状况评估、回滚功能、Git 存储库源(HTTPS 和 SSH)、Helm、Kustomize 和原生 YAML 清单、GitHub 应用程序凭证、用于多租户的项目,以及资源排除项和包含项。
将 Argo CD CLI 与托管功能结合使用
对于大多数操作,Argo CD CLI 的工作方式与上游 Argo CD 相同,但身份验证和集群注册有所不同。
先决条件
按照上游安装说明
配置
使用环境变量配置 CLI:
-
从 EKS 控制台(在集群的功能选项卡下)或使用 Amazon 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 用户界面(设置 → 账户 → 管理员 → 生成新令牌)生成账户令牌,然后将其设置为环境变量:
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需要--aws-cluster-name标志并指定 EKS 集群 ARN
示例:注册集群
注册 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 配置中是否存在不支持的功能(通知控制器、CMP、自定义运行状况检查)
-
将自主管理型 Argo CD 控制器缩减到零副本
-
在集群上创建 Argo CD 功能资源
-
导出现有的 Applications、ApplicationSets 和 AppProjects
-
迁移存储库凭证、集群密钥和存储库凭证模板(repocreds)
-
如果使用 GPG 密钥、TLS 证书或 SSH 已知主机,请同时迁移这些配置
-
更新
destination.server字段以使用集群名称或 EKS 集群 ARN -
将其应用于 Argo CD 托管实例
-
验证应用程序是否正确同步
-
停用自行管理型 Argo CD 安装
托管功能使用相同的 Argo CD API 和资源定义,因此只需最少的修改即可使用现有清单。
后续步骤
-
创建 Argo CD 功能:创建 Argo CD 功能资源
-
使用 Argo CD:部署第一个应用程序
-
Argo CD 注意事项:配置 Amazon Identity Center 集成