查看 Kubernetes 版本标准支持的发布说明 - Amazon EKS

帮助改进此页面

要帮助改进本用户指南,请选择位于每个页面右侧窗格中的在 GitHub 上编辑此页面链接。

查看 Kubernetes 版本标准支持的发布说明

本主题介绍有关标准支持中每个 Kubernetes 版本需要注意的重要更改。升级时,请仔细检查集群新旧版本之间发生的变化。

Kubernetes 1.33

Kubernetes 1.33 现已在 Amazon EKS 中可用。有关 Kubernetes 1.33 的更多信息,请参阅官方发布公告

重要
  • 动态资源分配测试版 Kubernetes API 已启用。

    • 此测试版 API 改善了调度和监控需要 GPU 等资源的工作负载的体验。

    • 此测试版 API 由 Kubernetes 社区定义,以后的 Kubernetes 版本中可能会有变化。

    • 仔细查看 Kubernetes 文档中的功能阶段,了解使用测试版 API 的含义。

  • AWS 没有发布适用于 Kubernetes 1.33 的 EKS 优化版 Amazon Linux 2 AMI。

  • 就地容器组(pod)资源调整大小(测试版):就地资源调整已升级为测试版,允许在不重启的情况下动态更新现有容器组(pod)的 CPU 和内存资源,从而可以在零停机时间的情况下垂直扩缩有状态工作负载,并根据流量模式进行无缝资源调整。

  • 附加容器现已稳定:附加容器已升级到稳定状态,使用 restartPolicy: Always 将附加容器作为特殊的初始化容器实施,其在应用程序容器之前启动,在整个容器组(pod)生命周期中运行,并支持操作状态信令的探测器。

  • 端点 API 弃用:端点 API 现已正式弃用,访问时将返回警告 – 可迁移工作负载和脚本,改用 EndpointSlices API,后者支持双堆栈联网等现代功能,并且每项服务可以处理多个 EndPointSlice。

  • Elastic Fabric Adapter 支持:Amazon EKS 集群的默认安全组现在支持 Elastic Fabric Adapter(EFA)流量。默认安全组包含一条新的出站规则,该规则允许目标为同一安全组的 EFA 流量。这允许集群内的 EFA 流量。

有关完整的 Kubernetes 1.33 更改日志,请参阅 https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.33.md

Kubernetes 1.32

Kubernetes 1.32 现已在 Amazon EKS 中可用。有关 Kubernetes 1.32 的更多信息,请参阅官方发布公告

重要
  • FlowSchema 和 PriorityLevelConfiguration 的 flowcontrol.apiserver.k8s.io/v1beta3 API 版本已在版本 1.32 中移除。如果您使用这些 API,则必须先更新配置以使用支持的最新版本,然后才能升级。

  • ServiceAccount metadata.annotations[kubernetes.io/enforce-mountable-secrets] 已在版本 1.32 中弃用,并将在未来的 Kubernetes 次要版本发布时移除。建议使用单独的命名空间来隔离对已附加密钥的访问。

  • Kubernetes 版本 1.32 是 Amazon EKS 将为其发布 Amazon Linux 2(AL2)AMI 的最后一个版本。从版本 1.33 起,Amazon EKS 将继续发布基于 Amazon Linux 2023(AL2023)和 Bottlerocket 的 AMI。

  • 在 Kubernetes 版本 1.32 中,内存管理器功能已升级为正式发布(GA)功能。此增强功能可为容器化应用程序提供了更高效、更可预测的内存分配,对于具有特定内存要求的工作负载尤其实用。

  • StatefulSets 创建的 PersistentVolumeClaims(PVC)现在包含自动清理功能。不再需要的 PVC 将被自动删除,同时在 StatefulSet 更新和节点维护操作期间保持数据持久性。此功能简化了存储管理,有助于防止集群中出现孤岛 PVC。

  • 推出了自定义资源字段选择器功能,让开发人员能够向自定义资源添加字段选择器。此功能为自定义资源提供了与内置 Kubernetes 对象相同的筛选功能,从而实现了更精确、更高效的资源筛选,并促进了更好的 API 设计实践。

有关完整的 Kubernetes 1.32 更改日志,请参阅 https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.32.md

匿名身份验证更改

从 Amazon EKS 1.32 开始,匿名身份验证将仅限于以下 API 服务器运行状况检查端点:

  • /healthz

  • /livez

  • /readyz

使用 system:unauthenticated 用户向任何其他端点发出的请求都将收到 401 Unauthorized HTTP 响应。此安全增强功能有助于防止由于 RBAC 策略配置错误而可能发生的意外集群访问。

注意

public-info-viewer RBAC 角色继续适用于上面列出的运行状况检查端点。

Amazon Linux 2 AMI 弃用

对于 Kubernetes 版本 1.33 及更高版本,EKS 将不提供预构建的优化型 Amazon Linux 2(AL2)亚马逊机器映像(AMI)。

AWS 建议采用 EKS 自动模式,或者迁移到更新版本的操作系统,例如 Amazon Linux 2023(AL2023)或 Bottlerocket。

注意

此更新适用于 EKS 优化型 AL2 AMI。有关操作系统本身的更多信息,请参阅 Amazon Linux 2 常见问题

Kubernetes 1.31

Kubernetes 1.31 现已在 Amazon EKS 中可用。有关 Kubernetes 1.31 的更多信息,请参阅官方发布公告

重要
  • 自 2017 年以来已弃用的 kubelet 标志 --keep-terminated-pod-volumes 已在版本 1.31 发布时移除。此更改会影响 kubelet 处理已终止的容器组(pod)卷的方式。如果您在节点配置中使用此标志,则必须先更新引导脚本并启动模板,以在升级前删除它。

  • 测试版 VolumeAttributesClass 功能门和 API 资源已在 Amazon EKS 版本 1.31 中启用。此功能允许集群操作员修改由兼容 CSI 驱动程序(包括 Amazon EBS CSI 驱动程序)管理的持久卷(PV)的可变属性。要利用此功能,请确保您的 CSI 驱动程序支持 VolumeAttributesClass 功能(对于 Amazon EBS CSI 驱动程序,请升级到版本 1.35.0 或更高版本以自动启用该功能)。您将能够创建 VolumeAttributesClass 对象来定义所需的卷属性,例如卷类型和吞吐量,并将它们与您的持久卷声明(PVC)相关联。有关更多信息,请参阅 Kubernetes 官方文档以及 CSI 驱动程序的文档。

  • Kubernetes 对 AppArmor 的支持已逐渐达到稳定状态,现已正式可供公众使用。此功能允许您通过在容器的 securityContext 中设置 appArmorProfile.type 字段来使用 Apparmor 保护您的容器。在 Kubernetes 版本 1.30 之前,AppArmor 由注释控制。从版本 1.30 开始,它使用字段进行控制。要利用此功能,我们建议不要使用注释,而是使用 appArmorProfile.type 字段来确保您的工作负载兼容。

  • PersistentVolume 最后阶段的转换时间功能已逐渐达到稳定状态,现已在 Kubernetes 版本 1.31 中正式可供公众使用。此功能在 PersistentVolumeStatus 中引入了一个新字段 .status.lastTransitionTime,该字段提供了 PersistentVolume 上次转换到不同阶段的时间戳。此增强功能可以更好地跟踪和管理 PersistentVolumes,尤其是在有必要了解卷生命周期的情况下。

有关完整的 Kubernetes 1.31 更改日志,请参阅 https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.31.md

Kubernetes 1.30

Kubernetes 1.30 现已在 Amazon EKS 中可用。有关 Kubernetes 1.30 的更多信息,请参阅官方发布公告

重要
  • 从 Amazon EKS 版本 1.30 或更高版本开始,任何新创建的托管节点组都将自动默认使用 Amazon Linux 2023(AL2023)作为节点操作系统。以前,新节点组将默认为 Amazon Linux 2(AL2)。在创建新节点组时,您可以通过选择 AL2 作为 AMI 类型来继续使用 AL2。

  • 使用 Amazon EKS 1.30,将 topology.k8s.aws/zone-id 标签添加到工作线程节点中。您可以使用可用区 ID(AZ ID),以确定一个账户中的资源相对于另一个账户中的资源所在的位置。有关更多信息,请参阅《AWS RAM 用户指南》中的适用于 AWS 资源的可用区 ID

  • 1.30 开始,Amazon EKS 不再包含有关应用于新创建集群的 gp2 StorageClass 资源的 default 注释。如果您按名称引用此存储类,则不会产生任何影响。如果您依赖集群中具有默认 StorageClass,则必须采取措施。您应该通过名称 StorageClass 来引用 gp2。您也可以通过在安装版本 1.31.0 或更高版本 的 aws-ebs-csi-driver add-on 时将 defaultStorageClass.enabled 参数设置为 true,来部署 Amazon EBS 建议的默认存储类。

  • Amazon EKS 集群 IAM 角色所需的最低 IAM 策略已更改。操作 ec2:DescribeAvailabilityZones 是必需的。有关更多信息,请参阅 Amazon EKS 集群 IAM 角色

有关完整的 Kubernetes 1.30 更改日志,请参阅 https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.30.md