查看 Kubernetes 标准支持版本的发布说明 - Amazon EKS
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

帮助改进此页面

想为本用户指南做出贡献? 选择位于每个页面右侧窗格中的在 GitHub 上编辑此页面链接。您的贡献有助于我们的用户指南为每个人提供更充分的参考。

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

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

注意

对于 1.24 和更高版本的集群,正式发布的 Amazon EKS AMI 包括 containerd 作为唯一的运行时。低于 1.24 的 Kubernetes 版本将使用 Docker 作为默认运行时。这些版本有一个引导标志选项,您可以使用该选项在任何受支持的集群上通过 containerd 测试工作负载。有关更多信息,请参阅 从 dockershim 迁移到 containerd

Kubernetes1.32

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

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

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

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

  • 在 Kubernetes v1.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)。

Amazon 建议采用 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 已作为 v1.31 版本的一部分删除。此更改会影响 kubelet 处理已终止的容器组(pod)卷的方式。如果您在节点配置中使用此标志,则必须先更新引导脚本并启动模板,以在升级前删除它。

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

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

  • PersistentVolume 最后阶段的转换时间功能已逐渐达到稳定状态,现已在 Kubernetes v1.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),以确定一个账户中的资源相对于另一个账户中的资源所在的位置。有关更多信息,请参阅《Amazon RAM 用户指南》中的适用于 Amazon 资源的可用区 ID

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

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

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

Kubernetes 1.29

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

重要
  • Kubernetes v1.29 中不再提供 FlowSchemaPriorityLevelConfiguration 已弃用的 flowcontrol.apiserver.k8s.io/v1beta2 API 版本。如果您有使用已弃用 beta API 组的对象或客户端软件,则应该先更改这些,然后再升级到 v1.29

  • 节点对象的 .status.kubeProxyVersion 字段已弃用,而 Kubernetes 项目在未来版本中延迟删除此字段。已弃用的字段不正确,且过去一直由 kubelet 管理 - 并不真的知道 kube-proxy 版本,或 kube-proxy 是否正在运行。如果您一直在客户端软件中使用此字段,请停止使用 – 其中的信息不可靠且该字段已弃用。

  • 在 Kubernetes 1.29 中用于减少潜在攻击面,LegacyServiceAccountTokenCleanUp 功能将自动生成的旧基于密钥的令牌标记为无效,如果这些令牌长时间未使用的话(默认为 1 年),且如果在标记为无效后长时间无人使用,则会自动删除(默认为额外增加 1 年)。可运行以下内容识别此类令牌:

    kubectl get cm kube-apiserver-legacy-service-account-token-tracking -n kube-system

有关完整 Kubernetes1.29 的更改日志,请参阅 https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.29.md#changelog-since-v1280