帮助改进此页面
要帮助改进本用户指南,请选择位于每个页面右侧窗格中的在 GitHub 上编辑此页面链接。
EKS 功能
提示
入门:创建 ACK 功能 | 创建 Argo CD 功能 | 创建 kro 功能
Amazon EKS 功能是一组分层的完全托管式集群功能,可帮助加快开发人员的速度并减轻使用 Kubernetes 构建和扩展的复杂性。EKS 功能是 Kubernetes 原生功能,用于声明式持续部署、AWS 资源管理以及 Kubernetes 资源编写和编排,所有这些功能都由 AWS 完全托管。借助 EKS 功能,您可以更加专注于构建和扩展工作负载,从而将这些基础平台服务的运营负担转移至 AWS。这些功能在 EKS 中运行,而不是在您的集群中运行,因此无需在 Worker 节点上安装、维护和扩展关键平台组件。
首先,您可以在新的或现有的 EKS 集群上创建一个或多个 EKS 功能。为此,您可以使用 AWS CLI、AWS 管理控制台、EKS API、eksctl 或您偏好的基础设施即代码工具。虽然 EKS 功能旨在协同工作,但它们是独立的云资源,您可以根据自己的使用案例和要求进行选择。
EKS 支持的所有 Kubernetes 版本都支持 EKS 功能。
注意
所有提供 Amazon EKS 的 AWS 商业区域均提供 EKS 功能。有关支持的区域列表,请参阅《AWS 一般参考》中的 Amazon EKS 端点和配额。
可用的功能
AWS Controllers for Kubernetes(ACK)
ACK 支持使用 Kubernetes API 管理 AWS 资源,允许您使用 Kubernetes 自定义资源创建和管理 S3 存储桶、RDS 数据库、IAM 角色和其他 AWS 资源。ACK 会持续调整您的所需状态与 AWS 中的实际状态,纠正随时间推移而出现的任何漂移,以保持系统运行状况良好并按照指定配置资源。您能够使用统一的工具与工作流程,将 AWS 资源和 Kubernetes 工作负载纳入同一管理体系,该工具支持包括 S3、RDS、DynamoDB 及 Lambda 在内的 50 余项 AWS 服务。ACK 支持跨账户和跨区域资源管理,支持复杂的多账户、多集群系统管理架构。ACK 支持只读资源和只读采用,便于从其他基础设施即代码工具迁移到基于 Kubernetes 的系统。
Argo CD
Argo CD 将 Git 存储库作为工作负载和系统状态的事实来源,为您的应用程序实施基于 GitOps 的持续部署。Argo CD 会自动将应用程序资源从 Git 存储库同步到您的集群,从而检测和修复漂移,确保您部署的应用程序与预期状态保持一致。您可以通过单个 Argo CD 实例跨多个集群部署和管理应用程序,当 Git 存储库中提交变更时,该工具会自动触发部署流程。同时使用 Argo CD 和 ACK 可以提供基础的 GitOps 系统,简化工作负载依赖关系管理,并支持包括大规模管理集群和基础设施在内的整个系统设计。Argo CD 与 AWS Identity Center 集成,可进行身份验证和授权,并提供托管 Argo 用户界面,用于可视化应用程序运行状况和部署状态。
kro(Kube Resource Orchestrator)
kro 支持您创建自定义 Kubernetes API,可将多种资源组合为更上层的抽象资源,方便平台团队针对常见的资源组合云基础设施组件,定义可复用的模式。使用 kro,您可以将 Kubernetes 和 AWS 资源组合成统一的抽象资源,使用简单的语法实现动态配置和条件逻辑。kro 使平台团队能够提供带有适当护栏的自助服务功能,允许开发人员在维护组织标准和最佳实践的同时,使用简单、专门构建的 API 预置复杂的基础设施。kro 资源只是 Kubernetes 资源,在可以存储在 Git 中的 Kubernetes 清单中指定,或者推送到 Amazon ECR 等兼容 OCI 的注册表,用于在组织范围广泛分布。
EKS 功能的优势
EKS 功能完全由 AWS 管理,无需安装、维护和扩展基础集群服务。AWS 可处理安全修补、更新和运营管理,让您的团队腾出时间专注于使用 AWS 进行构建,而无需顾虑集群操作。与消耗集群资源的传统 Kubernetes 附加组件不同,这些功能在 EKS 中运行,而不是在 Worker 节点上运行。这可以为工作负载释放集群容量和资源,同时最大限度地减少管理集群内控制器和其他平台组件的运营负担。
借助 EKS 功能,您可以使用原生 Kubernetes API 和诸如 kubectl 等工具管理部署、AWS 资源、自定义 Kubernetes 资源和组合。所有功能都在集群环境中运行,可自动检测和纠正应用程序和云基础设施资源中的配置漂移。您可以从一个控制点跨多个集群、AWS 账户和区域部署和管理资源,从而简化复杂的分布式环境中的操作。
EKS 功能专为 GitOps 工作流程而设计,提供声明式、版本控制的基础设施和应用程序管理。这些变更通过 Git 在系统中传递,从而提供审计跟踪记录、回滚功能以及与您现有开发流程相整合的协作工作流程。这种 Kubernetes 原生方法意味着您无需使用多种工具或管理集群外部的基础设施即代码系统,并且只有一个事实来源供参考。在版本控制的 Kubernetes 声明式配置中定义的预期状态将在环境中持续强制执行。
定价
使用 EKS 功能无需预付费用承诺,也没有最低费用。您需要为每项功能资源在 Amazon EKS 集群上处于活动状态的每小时支付费用。由 EKS 功能管理的特定 Kubernetes 资源也按小时费率计费。
有关当前定价信息,请参阅 Amazon EKS 定价页面
提示
您可以使用 AWS Cost Explorer 成本管理服务以及成本和使用情况报告,分别追踪容量成本与其他 EKS 费用。您可以使用集群名称、功能类型和其他详细信息来标记您的功能,用于成本分配。
EKS 功能的工作原理
每项功能都是您在 EKS 集群上创建的 AWS 资源。创建后,该功能将在 EKS 中运行并完全由 AWS 管理。
注意
您可以针对给定集群创建每种类型(Argo CD、ACK 和 kro)的功能资源。您不能在同一个集群上创建相同类型的多个功能资源。
您可以使用标准 Kubernetes API 和工具与集群中的功能进行交互:
-
使用
kubectl应用 Kubernetes 自定义资源 -
使用 Git 存储库作为 GitOps 工作流程的事实来源
某些功能还支持其他工具。例如:
-
使用 Argo CD CLI 在 Argo CD 功能中配置和管理存储库和集群
-
使用 Argo CD 用户界面,对由 Argo CD 功能管理的应用程序进行可视化和管理
各功能旨在协同工作,但它们是独立的,且完全可由您自行选择加入。您可以根据需要启用一项、两项或全部三项功能,并随着需求的变化更新配置。
所有 EKS 计算类型均支持与 EKS 功能配合使用。有关更多信息,请参阅 使用节点来管理计算资源。
有关安全配置和 IAM 角色的详细信息,请参阅 EKS 功能的安全注意事项。有关多集群架构模式的信息,请参阅 EKS 功能和注意事项。
常见使用案例
适用于应用程序和基础设施的 GitOps
使用 Argo CD 部署应用程序和操作组件,使用 ACK 管理集群配置和预置基础设施,两者均从 Git 存储库中获得。整个堆栈(应用程序、数据库、存储和网络)都会被定义为代码并自动部署。
示例:开发团队将更改推送到 Git。Argo CD 会部署更新的应用程序,ACK 会使用正确的配置预置新的 RDS 数据库。所有更改均可审计、可逆且可在不同环境中保持一致。
具有自助服务能力的平台工程
使用 kro 创建用于构建 ACK 和 Kubernetes 资源的自定义 API。平台团队使用护栏定义经批准的模式。应用程序团队使用简单的高级别 API 预置完整的堆栈。
示例:平台团队创建了“WebApplication”API,用于配置部署、服务、入口和 S3 存储桶。开发人员无需了解底层复杂性或 AWS 权限即可使用此 API。
多集群应用程序管理
使用 Argo CD,在不同地区或账户的多个 EKS 集群中部署应用程序。使用一致的策略和工作流程,使用单个 Argo CD 实例管理所有部署。
示例:将同一个应用程序部署到多个区域中的开发、暂存和生产集群。Argo CD 可确保每个环境与其相应的 Git 分支保持同步。
多集群管理
使用 ACK 定义和预置 EKS 集群,使用 kro 根据组织标准自定义集群配置,使用 Argo CD 管理集群生命周期和配置。这能实现从创建到持续运营的端到端集群管理。
示例:使用 ACK 和 kro 定义 EKS 集群,以预置和管理集群基础设施,同时定义网络、安全策略、附加组件和其他配置的组织标准。使用 Argo CD,利用一致标准和自动化生命周期管理,跨实例集创建并持续管理集群、配置和 Kubernetes 版本更新。
迁移与现代化
借助原生云资源预置和 GitOps 工作流程,简化向 EKS 的迁移。在不重新创建现有 AWS 资源的情况下通过 ACK 采用这些资源,并使用 Argo CD 从 Git 实施工作负载部署。
示例:从 EC2 迁移到 EKS 的团队使用 ACK 采用其现有的 RDS 数据库和 S3 存储桶,然后使用 Argo CD 从 Git 部署容器化应用程序。迁移路径很明确,操作从第一天起就实现标准化。
账户和区域引导
同时使用 Argo CD 和 ACK,实现跨账户和地区自动化基础设施部署。在 Git 中将基础设施定义为代码,让各类功能处理部署和管理事务。
示例:平台团队维护负责定义标准账户配置(VPC、IAM 角色、RDS 实例和监控堆栈)的 Git 存储库。Argo CD 会自动将这些配置部署到新账户和区域,从而确保一致性,并将手动设置时间从几天缩短到几分钟。