一般性问题
全部打开答:Amazon EKS 是一种托管服务,使您可以轻松地在亚马逊云科技运行 Kubernetes,而无需安装和操作自己的 Kubernetes 控制面板。
答:Kubernetes 是一种开源软件,让您可以大规模部署和管理容器化应用程序。Kubernetes 将容器分组为逻辑分组,以实现管理和可发现性,然后将容器启动到 EC2 实例的集群中。通过 Kubernetes,您可以使用本地和云中的相同工具集运行容器化应用程序,包括微服务、批处理 Worker 和平台即服务(PaaS)。
答:Amazon EKS 在多个亚马逊云科技可用区中预置并扩展 Kubernetes 控制面板,包括 API 服务器和后端持久层,进而实现高可用性和容错能力。Amazon EKS 会自动检测并替换运行状况不佳的控制平面节点,并为控制平面提供修补。您可以使用 Amazon Fargate 运行 EKS,它为容器提供无服务器计算。Fargate 无需预置和管理服务器,允许您为每个应用程序指定资源并为其付费,并通过设计实现应用程序隔离来提高安全性。
答:Amazon EKS 的工作原理是为您预置(启动)和管理 Kubernetes 控制面板。在较高的层次上,Kubernetes 由两个主要组件组成:一个“工作程序节点”集群,用于运行容器;以及一个控制平面,用于管理容器在集群上的启动时间和位置,并监控其状态。
如果没有 Amazon EKS,您必须自己运行 Kubernetes 控制平面和工作程序节点集群。借助 Amazon EKS,您可以使用提供的 Amazon Machine Image (AMI) 和 Amazon CloudFormation 脚本预置工作程序节点集群,并且我们可以在高度可用且安全的配置中处理 Kubernetes 控制平面的配置、扩展和管理。这消除了运行 Kubernetes 的重大操作负担,并使您可以专注于构建应用程序而不是管理亚马逊云科技基础设施。
Amazon Elastic Kubernetes Service(EKS)预置控制面板是一项功能,让您能够选择集群的控制面板容量,确保为要求非常严苛的工作负载提供可预测的高性能。 使用预置控制面板,您可以通过一组明确定义的扩缩层为集群预置所需的容量,从而确保控制面板在需求激增时立即准备就绪。这些新的扩缩层可大幅提升集群的性能和可扩展性,让您能够在单个集群中运行超大规模工作负载。
答:您根据集群使用的预置控制面板扩缩层按小时费率付费。有关扩缩层的详细定价,请参阅 Amazon EKS 定价页面。
集成
全部打开答:Amazon EKS 运行的是最新版本的开源 Kubernetes 软件,因此您可以使用 Kubernetes 社区的所有现有插件和工具。运行在 Amazon EKS 上的应用程序与运行在所有标准 Kubernetes 环境中(无论是运行在本地数据中心还是公有云中)的应用程序完全兼容。这意味着您可以轻松地将所有标准 Kubernetes 应用程序迁移到 Amazon EKS,而无需进行任何代码修改。
答:Amazon Fargate 和 Amazon EKS 将 Kubernetes 应用程序作为无服务器容器运行。
Kubernetes 版本和更新
全部打开答:请参阅 Amazon EKS 文档,了解当前支持的 Kubernetes 版本。Amazon EKS 未来将继续增加对其他 Kubernetes 版本的支持。
答:可以。Amazon EKS 为 Kubernetes 和 Amazon EKS 平台版本执行托管的就地集群升级。这简化了集群操作,让您可以利用最新的 Kubernetes 功能,以及 Amazon EKS 配置和安全补丁的更新。您可以将两种类型的更新应用于 Amazon EKS 集群、Kubernetes 版本更新和 Amazon EKS 平台版本更新。由于 Kubernetes 已经发布了新版本,并且经验证可与 Amazon EKS 一起使用,因此作为更新过程的一部分,我们将在任何给定时间支持三个稳定的 Kubernetes 版本。
答:Amazon EKS 平台版本包含 Kubernetes 补丁和 API 服务器配置的更改。平台版本与 Kubernetes 次要版本分开,但鼬与之相关联。当为 Amazon EKS 推出新的 Kubernetes 版本时,其初始控制平面配置将作为“eks.1”平台版本发布。我们根据需要发布新的平台版本以启用 Kubernetes 补丁,或者当我们实施可能影响集群行为的 Amazon EKS API 服务器配置更改时。使用此版本控制方案,可以独立更新不同 Kubernetes 版本的配置;例如,如果我们需要发布 Kubernetes 版本 1.11(与 Kubernetes 版本 1.12 不兼容)的补丁。
答:新版本的 Kubernetes 会对 Kubernetes API 进行重大更改,因此会导致应用程序行为发生变化。通过手动控制集群上的 Kubernetes 版本,您可以在升级生产集群之前针对新版本的 Kubernetes 测试应用程序。Amazon EKS 使您能够在向 EKS 集群引入更改时进行选择。
答:我们发布了 EKS 亚马逊机器映像(AMI),其中包括必要的 Worker 节点二进制文件(Docker 和 Kubelet)。我们会定期更新此 AMI,并使用最新版本的组件构建。我们还发布了记录构建步骤的 Packer 脚本,方便您识别每个 AMI 版本中包含的二进制文件。您可以使用现有 Auto Scaling 功能将工作程序实例更新为最新版本的 EKS AMI。您还可以使用我们的 Packer 脚本来构建新版本的自定义 AMI。
可用性
全部打开答:请访问亚马逊云科技全球基础设施区域表,获取有关 Amazon EKS 区域可用性的最新信息。
Amazon EKS 自动模式
全部打开Amazon EKS 自动模式可完全实现对 Amazon Web Services 上 Kubernetes 集群的自动化管理,通过自动预置基础设施、扩展资源、管理核心附加组件以及优化成本等方式简化操作流程。EKS 自动模式提供由 Amazon Web Services 管理的安全且可扩展的集群基础设施,具备集成的 Kubernetes 功能,例如计算自动扩缩、容器组(Pod)与服务网络、应用程序负载均衡、集群 DNS、块存储以及 GPU 支持。它符合 Kubernetes 标准,这意味着您可以将其与您喜爱的所有兼容 Kubernetes 的工具一起使用。在 EKS 集群中运行的应用程序现在可以使用 Amazon Web Services 托管的 EC2 实例、Amazon Elastic Block Store(Amazon EBS)卷、负载均衡器以及其他按照成熟实践配置的云资源,这些资源会自动进行扩展、实现成本优化,并保持最新状态,同时还能最大程度地降低成本和运营开销。
Amazon EKS 自动模式已在由光环新网运营的亚马逊云科技中国(北京)区域和由西云数据运营的亚马逊云科技中国(宁夏)区域为运行 Kubernetes 1.30 或更高版本的新的和现有的 EKS 集群推出。要开始使用,只需使用 EKS API、Amazon Web Services 控制台、eksctl 或您的首选基础设施即代码(IaC)工具,在新集群或现有集群中启用 EKS 自动模式,并指定其 Amazon Web Services 托管的计算基础设施应使用的 IAM 角色。默认情况下,EKS 自动模式会在您的集群中创建通用型计算扩展配置,这使您能够迅速开始运行应用程序。要进行更深入的自定义,您可以选择禁用这些默认设置,并在您的集群中通过 Kubernetes API 创建额外的计算扩展和基础设施配置。
Amazon EKS 自动模式将专为现代应用程序设计的集成式 Kubernetes 功能与 Amazon Web Services 托管的基础设施相结合,应用于所有 EKS 集群中。其功能是您的 Kubernetes 应用程序运行所必需的基础——包括计算、存储、网络和监控。它是 EKS 的组成部分,您无需担心其安装、扩展或管理等问题。默认情况下,它根据 Amazon Web Services 和 Kubernetes 实践进行设置。对于更高级的应用场景,您可以进一步根据 EKS 自动模式的实践对应用程序运行所在的基础设施进行自定义设置,而无需进行昂贵且持续的操作。为确保您的应用程序始终具备所需的基础设施,EKS 自动模式会持续对其进行观测,并配置、创建和优化 Amazon Web Services 托管的资源(EC2 实例和 EBS 卷),以满足其需求。您的应用程序运行所依赖的基础设施会自动更新最新的安全补丁和漏洞修复,从而确保您的系统安全且保持最新状态,同时最大程度减少对正在运行的应用程序的干扰。
通过使用 Amazon EKS 自动模式,Amazon Web Services 在 EKS 集群中所承担的责任已超过客户自行管理的 Amazon Web Services 基础设施。除了运行 Kubernetes 集群控制面板外,启用了 EKS 自动模式的 Amazon Web Services 还负责保护、配置和管理应用程序运行所需的 EKS 集群中的 Amazon Web Services 基础设施。为此,与客户自行管理的同类资源相比,使用 EKS 自动模式的 EKS 集群中的 Amazon Web Services 基础设施资源(如 EC2 实例)存在局限性。例如,您无法通过 SSH 或 SSM 进行远程连接,无法修改实例的 IAM 角色,无法更换根卷,也无法将额外的弹性网络接口附加到由 EKS 自动模式管理的 EC2 实例,因为这样做会限制 Amazon Web Services 对它们进行安全保护和管理的能力。
对于希望运行 EKS 的客户来说,结合使用 Amazon EKS 与 Amazon Fargate 仍是一个可行的选择,但未来推荐采用 Amazon EKS 自动化模式这一方式。EKS 自动模式完全符合 Kubernetes 标准,支持所有上游 Kubernetes 原生资源和平台工具(如 Istio),而 Fargate 无法支持这些功能。EKS 自动模式还全面支持所有 EC2 运行时购买选项,包括 GPU 实例和竞价型实例,使客户能够使用协商的 EC2 折扣和其他节省机制——这些功能在结合使用 EKS 与 Fargate 时不可用。此外,EKS 自动模式还允许客户实现与 Fargate 相同的隔离模型,利用标准的 Kubernetes 调度功能来确保每个 EC2 实例运行一个单一的应用程序容器。通过采用 Amazon EKS 自动模式,客户能够充分利用在 Amazon Web Services 上运行 Kubernetes 的全部优势——这是一个完全符合 Kubernetes 标准的平台,在提供使用全部 EC2 实例类型和多种购买选项的灵活性的同时,仍保留了 Fargate 所提供的易用性以及对底层基础设施管理的抽象化。
Amazon EKS 自动模式有助于通过以下三种方式提升您的 EKS 集群的安全性:1/ EKS 自动模式所创建的由 Amazon Web Services 托管的基础设施按照 Amazon Web Services 安全实践进行配置,并根据互联网安全中心(CIS)的第 1 级基准进行了加强,包括:无远程访问、不可变的根文件系统以及内核级强制访问控制。2/ EKS 自动模式的 Amazon Web Services 托管式 EC2 实例会在最新安全补丁和错误修复一发布时,立即自动更新。在可能的情况下,这些补丁会直接进行应用,而不影响正在运行的应用程序或替换现有实例。3/ 默认情况下,EKS 自动模式为其 Amazon Web Services 托管式 EC2 实例设定最长 14 天的使用期限,这有助于您符合行业普遍的安全和合规性要求。如果您的应用场景需要更短或更长的实例生命周期,您可以根据自身需求配置 EKS 自动模式,其持续时间最长可达 21 天。
是的,在将 EKS 控制面板升级到新的 Kubernetes 版本之后,由 EKS 自动模式启动的新实例(由于应用程序横向扩展)将运行与控制面板版本相匹配的最新 Kubernetes 软件。同时,现有的实例会逐步更新为使用新版本 Kubernetes 的 Kubernetes 软件。结合 EKS 自动模式所启动的默认 14 天最长实例使用期限,这意味着,默认情况下,您的集群将在升级 EKS 集群的 Kubernetes 版本后的 14 天内自动完成全面升级。
Amazon EKS 自动模式提供计算、存储和网络等关键 Kubernetes 功能的集成式和托管式的版本。这包括以下托管版本:1/ EKS 自动模式的代理,有助于安全和实例管理,2/ containerd 容器运行时,使 Kubernetes 能够有效运行容器的基础组件,3/ kubelet,用于管理每个计算实例上的 Kubernetes 容器组(pod)的生命周期和运行状况,4/ 支持集群内路由的网络代理,5/ 与上游兼容的托管式 Karpenter 控制器,6/ 用于存储的 Amazon EBS 容器存储接口(CSI) 控制器,7/ 用于 IP 地址管理、容器组(pod)联网和网络策略的 Amazon Web Services VPC 容器网络接口(CNI)的托管版本,8/ 用于集群内服务发现的 CoreDNS,9/ 以及用于编排外部负载均衡器的 Amazon Web Services 负载均衡器控制器。
使用 Amazon EKS 自动模式,您无需安装或管理某些 EKS 附加组件,例如 VPC CNI、CoreDNS、kube-proxy 和 CloudWatch 可观测性代理。通过使用 EKS 自动模式,您的 EKS 集群将包含这些附加组件所提供的各项功能的集成版本。但是,如果您仍有工作负载尚未迁移到 EKS 自动模式,则需要继续使用这些 EKS 附加组件。除了那些已被 EKS 自动模式的集成功能所取代的附加组件外,其他附加组件也可以在使用 EKS 自动模式的集群上运行。
是的,通过 EKS 自动模式启动的托管式 EC2 实例默认情况下可以通过 EC2 DescribeInstances API 或 Amazon Web Services 控制台进行查看。由于这些实例由 Amazon Web Services 托管,所以您通过 EC2 API 所能执行的操作仅限于那些不会影响 EKS 完成其扩展运营职责能力的操作。默认情况下,EKS 自动模式配备了通用型计算配置,这些配置非常适合常见应用场景。如果需要,您可以自定义由 EKS 自动模式启动的 EC2 实例。可以通过使用 EKS 自动模式的节点类 Kubernetes API 来对 EKS 自动模式实例的运行时配置设置进行修改。
可以。当符合条件的 EC2 实例被启动时,会自动应用计算类节省计划和预留实例。有关更多详细信息,请参阅定价页面。
Amazon EKS 自动模式的 Kubernetes 功能通过一组集成控制器提供,这些控制器会发出各种 Kubernetes 事件,而这些事件可用于了解其运行状况。