使用 EKS 自动模式实现集群基础设施自动化 - Amazon EKS
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

帮助改进此页面

想为本用户指南做出贡献? 滚动到页面底部,然后选择在 GitHub 上编辑此页面。您的贡献有助于我们的用户指南为每个人提供更充分的参考。

使用 EKS 自动模式实现集群基础设施自动化

EKS 自动模式将 Kubernetes 集群的 Amazon 管理扩展到集群本身之外,从而让 Amazon 还可以设置和管理基础设施,确保工作负载的平稳运行。您可以将关键基础设施决策委派给 Amazon 并利用其专业知识进行日常运营。由 Amazon 管理的集群基础设施将多种 Kubernetes 功能作为核心组件包含在内,而不是作为附加组件,例如计算自动扩缩、容器和服务联网、应用程序负载均衡、集群 DNS、块存储和 GPU 支持等。

要开始使用,您可以部署一个新的 EKS 自动模式集群或在现有集群上启用 EKS 自动模式。您可以使用 eksctl、Amazon CLI、Amazon 管理控制台、EKS API 或您偏好的基础设施即代码工具,来部署、升级或修改 EKS 自动模式集群。

使用 EKS 自动模式时,您可以继续使用自己偏好的 Kubernetes 兼容工具。EKS 自动模式与 Amazon EC2、Amazon EBS 和 ELB 等 Amazon 服务集成,利用遵循最佳实践的 Amazon 云资源。这些资源可自动扩展、优化成本并定期更新,有助您尽可能降低运营成本和开销。

特征

EKS 自动模式提供以下高级别功能:

简化 Kubernetes 集群管理:EKS 自动模式通过提供运行开销极小的生产就绪型集群,来简化 EKS 的管理。使用 EKS 自动模式时,您可以放心地运行要求严苛的动态工作负载,无需深入的 EKS 专业知识。

应用程序可用性:EKS 自动模式会根据 Kubernetes 应用程序的需求动态添加或移除 EKS 集群中的节点。这尽可能减少了手动容量规划的需求,确保了应用程序的可用性。

效率:EKS 自动模式以优化计算成本为宗旨,同时符合节点池和工作负载需求所定义的灵活性。此外还会终止未使用的实例,并将工作负载整合到其他节点上,从而提高成本效率。

安全性:EKS 自动模式使用对节点而言不可变的 AMI。这些 AMI 强制使用锁定软件,启用 SELinux 强制访问控制,并提供只读的根文件系统。此外,由 EKS 自动模式启动的节点最长生命周期为 21 天(并且您可以缩短此周期),之后会自动替换为新节点。这种方法通过定期循环节点来增强安全态势,也符合许多客户已经采用的最佳实践。

自动升级:EKS 自动模式使用最新补丁来确保 Kubernetes 集群、节点和相关组件保持最新状态,同时遵守您配置的容器组中断预算(PDB)和节点池中断预算(NDB)。在不超过 21 天最长生命周期的前提下,如果阻止 PDB 或其他配置会妨碍更新,则可能需要进行干预。

托管式组件:EKS 自动模式将 Kubernetes 和 Amazon 云功能等作为核心组件,而这些组件本来会作为附加组件管理。这包括对容器组 IP 地址分配、容器组网络策略、本地 DNS 服务、GPU 插件、运行状况检查器和 EBS CSI 存储的内置支持。

可自定义节点池和节点类:如果工作负载需要更改存储、计算或联网配置,则可以使用 EKS 自动模式创建自定义节点池和节点类。虽然无法编辑默认的节点池和节点类,但可以在默认配置的同时添加新的自定义节点池或节点类来满足您的特定要求。

自动化组件

EKS 自动模式通过自动管理关键基础设施组件来简化 Amazon EKS 集群的操作。启用 EKS 自动模式可进一步减少 EKS 集群管理任务。

以下是自动管理的数据面板组件列表:

  • 计算:对于许多工作负载而言,使用 EKS 自动模式后,您都无需关注 EKS 集群计算的许多方面。这些指令包括:

    • 节点:EKS 自动模式节点在设计上可视为设备。EKS 自动模式可完成以下任务:

      • 选择合适的 AMI 并配置运行工作负载所需的多种服务,无需干预。

      • 使用 SELinux 强制实施模式和只读根文件系统锁定这些功能。

      • 通过禁用 SSH 或 SSM 访问来禁止直接访问节点。

      • 包含 GPU 支持,以及适用于 NVIDIA 和 Neuron GPU 的单独内核驱动程序和插件,从而支持高性能工作负载。

    • 自动扩缩:依托 Karpenter 自动扩缩功能,EKS 自动模式可以监控不可调度的容器组,并通过部署新节点来运行这些容器组。当工作负载终止时,EKS 自动模式会动态中断和终止不再需要的节点,从而优化资源使用。

    • 升级:通过接管节点的控制,简化 EKS 自动模式根据需要提供安全补丁以及操作系统和组件升级的能力。这些升级旨在尽可能减少工作负载的中断。EKS 自动模式强制实施最长 21 天的节点生命周期,以确保始终使用最新的软件和 API。

  • 负载均衡:EKS 自动模式通过与 Amazon 弹性负载均衡服务集成,自动为 Kubernetes 服务和 Ingress 资源预置和配置负载均衡器,从而简化负载均衡任务。支持应用程序均衡器和网络负载均衡器的高级功能,管理其生命周期,并根据集群需求进行扩展。这种集成提供了符合 Amazon 最佳实践的生产就绪型负载均衡解决方案,使您可以专注于应用程序,而无需关注基础设施管理。

  • 存储:EKS 自动模式通过设置卷类型、卷大小、加密策略以及节点终止时的删除策略,来为您配置临时存储。

  • 联网:EKS 自动模式可自动执行容器组和服务连接的关键联网任务。这包括 IPv4/IPv6 支持以及使用辅助 CIDR 块来扩展 IP 地址空间。

  • 身份和访问权限管理:您无需在 EKS 自动模式集群上安装 EKS 容器组身份代理。

有关这些组件的更多信息,请参阅了解 EKS 自动模式的工作原理

配置

虽然 EKS 自动模式无需您干预即可有效地管理大部分数据面板服务,不过有时您可能需要更改某些服务的行为。您可以通过以下任一方式修改 EKS 自动模式集群的配置:

  • Kubernetes 进程守护程序集:您可以使用 Kubernetes 进程守护程序集,而不修改节点上安装的服务。进程守护程序集旨在由 Kubernetes 管理,不过是在集群中的每个节点上运行的。这样,您可以添加特殊服务来监控或以其他方式观察节点。

  • 自定义节点池和节点类:默认节点池和节点类由 EKS 自动模式配置,无法编辑。要自定义节点行为,您可以针对应用场景创建其他节点池或节点类,例如:

    • 选择特定的实例类型(例如,加速处理器或 EC2 竞价型实例)。

    • 出于安全或成本跟踪目的隔离工作负载。

    • 配置临时存储设置,例如 IOPS、大小和吞吐量等。

  • 负载均衡:EKS 自动模式作为 Kubernetes 对象运行的某些服务(例如负载均衡),可以直接在 EKS 自动模式集群上配置。

要详细了解配置 EKS 自动模式的选项,请参阅更改 EKS 自动模式集群设置

📝 在 GitHub 上编辑此页面