亚马逊 EKS 现在支持 Kubernetes 版本 1.28

简介

亚马逊弹性 Kubernetes 服务( 亚马逊 EKS )团队很高兴地宣布支持亚马逊 EKS 和亚马逊 EKS 发行版的 Kubernetes 1.28 版。 亚马逊 EKS Anywher e (版本 0.18.0)也支持 Kubernetes 1.28。这个版本的主题被选为双关语,它结合了 植物 Kubernetes ,唤起了花园的形象。因此,恰当的版本名称是 Planter netes。Kubernetes 发布团队在 官方发布公告 中这样说道:“这个版本的幕后黑手来自不同的背景。”

Kubernetes 1.28 亮点

这篇文章介绍了 Kubernetes 版本 1.28 版本中一些值得注意的移除、弃用和增强功能。首先,请务必注意,此版本带来了一些关键变化,包括扩展了控制平面和节点组件之间支持的版本偏差。v1.28 中还有一些很棒的增强功能,我们都很兴奋,例如对高级状态工作负载管理的支持。

以下是一些让我们的技术社区对 1.28 版本感到兴奋的增强功能。 要查看 Kubernetes 版本 1.28 中变更和更新的完整列表,请查看 Kubernetes 发布博客。

对控制平面和节点版本之间支持的偏差的更改

  • Kubernetes v1.28 为其核心组件引入了更为宽松的版本兼容性政策,它将 Kubernetes 应用程序编程接口 (API) 服务器和 kubelet 之间支持的偏差扩大了一个次要版本,从 n-2 扩展到 n-3。这意味着支持的最旧次要版本的节点组件现在可以与最新支持的次要版本的 Amazon EKS 控制平面组件一起使用。例如,如果你的亚马逊 EKS 版本是 1.28,那么你可以使用的最早的 kubelet 版本是 1.25。 亚马逊云科技 Fargate 托管节点组 和 管理节点 都支持此更改。 最终,此更改可以让你有更多时间在数据层面上更新 kubelet。尽管此更改确实为您提供了更多时间在数据层面上更新 kubelet 次要版本,但请务必注意,出于安全原因,尤其是考虑到潜在的常见漏洞和暴露 (CVE),这并不能否定更新亚马逊系统映像 (AMI) 版本的重要性。请记住,n-3 偏差更改仅适用于当前支持的版本。如果某个版本已停用,则只能使用仍受支持的版本。
  • 要了解更多信息,请参阅 更改控制平面和节点版本 之间支持的偏差

有状态的工作负载增强功能升级到稳定状态

  • Kubernetes 1.28 推出了一套高级存储功能,专门增强了对有状态工作负载的处理。在 Kubernetes 增强提案 (KEP) ( #2268 , #3333 ) 中描述的这些增强功能在升级到稳定版后立即可用。它们共同提供了一个强大的工具集,可确保在集群内更有效地管理有状态的工作负载,例如VolumeAttactions和PersistentVolumeClaims (PVC)。在未定义存储类的情况下处理存储时,您仍然可以选择创建 PersistentVolumes。您可以直接手动配置和创建 PV,例如为 NFS 挂载创建 PV,使用 NFS 服务器详细信息定义 PV,而无需引用 StorageClass。然后可以通过 PVC 认领 PV,为有状态工作负载配置存储。
  • #2268 已升级 为稳定版,默认情况下 nodeOutofServiceVolumeDetach 功能门处于启用状态。此功能支持从非正常节点关闭中恢复,确保有状态的工作负载可以成功故障转移到其他节点。它解决了以前在各种平台上处理节点关闭时的限制,并确保现有的 VolumeAttachment 与原始关闭节点断开关联,从而实现有状态应用程序的无缝过渡。
  • #3333 已升级为稳定版,默认情况下,RetroactiveDefaultStorageClass 功能门处于启用状态。此功能为 PVC 的默认 StorageClass 提供了稳定的自动和追溯分配。如果 PVC 没有定义 StorageClassName,Kubernetes 会自动设置一个。此功能增强了有状态工作负载的存储管理的稳定性,从而确保 Kubernetes 集群中存储资源的一致处理。
  • 要了解更多信息,请参阅 Kubernetes 1.28:非正常关闭节点移至 GA 和 Kub ernetes v1.28:追溯默认 StorageCl ass 移至 正式版。

高级拓扑管理和微调的 Pod 布局已进入测试阶段

  • Kubernetes v1.28 引入了一系列复杂的拓扑管理功能。这些功能在 KEP ( #3545 ) 中有详细介绍,默认情况下已启用并在测试版中可用。它们共同构成了一个强大的强大力量,能够以最大限度地提高资源效率、增强性能和增强容错能力的方式应对协调容器布局的挑战。通过使用这两个选项,您可以确保 Pod 彼此靠近放置以获得更好的性能,还可以遵守其他限制,例如可用区,从而高效地利用集群资源。
  • TopologyManagerPolicybetaOptions 为你提供了高级设置,可以根据节点拓扑和资源可用性等因素微调容器的位置。关键设置是首选最近 numa-nodes 策略非均匀内存访问 (NUMA) 节点是一组 CPU 和内存。通常,拓扑管理器会将 Pod 分散到可用的 NUMA 节点上,但是此设置会告诉拓扑管理器偏爱附近的 NUMA 节点。启用此选项可以使其就 Pod 的放置做出更明智的决定,并指示其考虑 NUMA 节点之间的距离,这对于延迟敏感或需要高吞吐量的应用程序至关重要。
  • TopologyManagerPolicyOptions 在根据独特的集群拓扑量身定制容器布局方面提供了额外的粒度层。此功能允许您根据节点标签、关联性规则和资源约束定义约束,从而可以对 Pod 的放置进行微调控制。这允许您使用节点标签、关联性规则和资源限制来定义约束。例如,您可以指定 Pod 应限制在特定的可用区域内,以优化资源利用率。
  • 请注意,尽管这些功能强大,但需要调整现有的 Pod 规格或节点配置。我们建议全面测试其影响,并针对可能出现的任何问题制定回滚计划。如果你遇到任何问题,我们建议你禁用该功能并重启 kubelet。
  • 要了解更多信息,请参阅 节点上的 控制拓扑管理策略

弃用和其他更新

为了配合 Kubernetes 版本 1.28 的发布,亚马逊 EKS 引入了一些重要变更,包括直接影响亚马逊弹性计算云 ( Amazon EC2) 实例兼容性的弃用。 在过渡到 Kubernetes 1.28 之前,审查这些更新并相应地调整您的 Amazon EKS 集群和应用程序至关重要。以下是这方面的主要变化。

亚马逊 EC2 P2 实例弃用

  • 从 Kubernetes 版本 28 开始,您将无法再使用亚马逊 EC2 P2 实例以及开箱即用的亚马逊 EKS 优化的加速亚马逊 Linux AMI。这些适用于 Kubernetes 版本 1.28 或更高版本的 AMI 将支持 NVIDIA 525 系列或更高版本的驱动程序,这些驱动程序与 P2 实例不兼容。但是,NVIDIA 525 系列或更高版本的驱动程序与 P3、P4 和 P5 实例兼容,因此您可以将这些实例与 Kubernetes 版本 1.28 或更高版本的 AMI 一起使用。在将您的亚马逊 EKS 集群升级到版本 1.28 之前,请将任何 P2 实例迁移到 P3、P4 和 P5 实例。我们还建议您主动升级您的应用程序,以便与 NVIDIA 525 系列或更高版本兼容。

生命周期终止支持

亚马逊 EKS 在任何给定时间都支持至少四个 Kubernetes 版本。鉴于 Kubernetes 发布周期的性质,所有客户都有持续的升级计划至关重要。 如果你仍在运行旧版本的 Kubernetes,比如 1.23 和 1.24,那么请考虑升级到支持的新版本之一。 1.23 集群的支持将于2023年10月11日结束,对1.24集群的支持将于2024年1月结束。如果您对亚马逊 EKS 版本支持还有其他疑问,请参阅我们的 常见问题解答

结论

在这篇文章中,我们向您展示了 Kubernetes 版本 v1.28 中的显著变化,并重点介绍了一些最令人兴奋的可用功能。请务必查看 Kubernetes v 1.28 发行说明中记录的其他改进。 如果您在将集群升级到最新的 Amazon EKS 版本时需要帮助,请参阅 此处 的文档 。

Leah Tucker

Leah Tucker

Leah 是 亚马逊云科技 的资深开源软件作家。她在网络开发、软件集成、产品管理和技术写作方面拥有多年的经验。在对解决复杂难题的无限好奇心驱使下,她找到了解开 Kubernetes 错综复杂之处的最新挑战。在目前的职位上,Leah 将大部分时间用于弥合 亚马逊云科技 和开源 Kubernetes 集成之间的鸿沟。

Sheetal Joshi

Sheetal Joshi

Sheetal Joshi 是亚马逊 EKS 团队的首席开发者倡导者。在加入 亚马逊云科技 之前,Sheetal 曾在多家软件供应商工作,包括惠普、迈克菲、思科、Riverbed 和 Moogsoft。大约 20 年来,她一直专注于构建企业级分布式软件系统、虚拟化技术和云架构。目前,她正在努力简化在云端、本地和边缘部署 Kubernetes 集群的入门、采用和运行。


*前述特定亚马逊云科技生成式人工智能相关的服务仅在亚马逊云科技海外区域可用,亚马逊云科技中国仅为帮助您发展海外业务和/或了解行业前沿技术选择推荐该服务。