帮助改进此页面
想为本用户指南做出贡献? 滚动到页面底部,然后选择在 GitHub 上编辑此页面。您的贡献有助于我们的用户指南为每个人提供更充分的参考。
查看 Kubernetes 标准支持版本的发布说明
本主题介绍有关标准支持中每个 Kubernetes 版本需要注意的重要更改。升级时,请仔细检查集群新旧版本之间发生的变化。
注意
对于 1.24
和更高版本的集群,正式发布的 Amazon EKS AMI 包括 containerd
作为唯一的运行时。低于 1.24
的 Kubernetes 版本将使用 Docker 作为默认运行时。这些版本有一个引导标志选项,您可以使用该选项在任何受支持的集群上通过 containerd
测试工作负载。有关更多信息,请参阅 从 dockershim 迁移到 containerd。
Kubernetes 1.31
Kubernetes 1.31
现已在 Amazon EKS 中推出。有关 Kubernetes 1.31
的更多信息,请参阅官方发布公告
重要
-
自 2017 年以来已弃用的 kubelet 标志
--keep-terminated-pod-volumes
已作为v1.31
版本的一部分删除。此更改会影响 kubelet 处理已终止的容器组(pod)卷的方式。如果您在节点配置中使用此标志,则必须先更新引导脚本并启动模板,以在升级前删除它。
-
测试版
VolumeAttributesClass
功能门和 API 资源已在 Amazon EKSv1.31
中启用。此功能允许集群操作员修改由兼容 CSI 驱动程序(包括 Amazon EBS CSI 驱动程序)管理的持久卷(PV)的可变属性。要利用此功能,请确保您的 CSI 驱动程序支持VolumeAttributesClass
功能(对于 Amazon EBS CSI 驱动程序,请升级到 v1.35.0 或更高版本以自动启用该功能)。您将能够创建VolumeAttributesClass
对象来定义所需的卷属性,例如卷类型和吞吐量,并将它们与您的持久卷声明(PVC)相关联。有关更多信息,请参阅 Kubernetes 官方文档以及 CSI 驱动程序的文档。 -
Kubernetes 对 AppArmor
的支持已逐渐达到稳定状态,现已正式可供公众使用。此功能允许您通过在容器的 securityContext
中设置appArmorProfile.type
字段来使用 Apparmor 保护您的容器。在 Kubernetesv1.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 Linux 的更多信息,请参阅 Amazon Linux 用户指南中的比较 AL2 和 AL2023。
-
有关为托管节点组指定操作系统的更多信息,请参阅 为集群创建托管式节点组。
-
-
使用 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
。或者,您可以通过在安装defaultStorageClass.enabled
的v1.31.0
或更高版本时将aws-ebs-csi-driver add-on
参数设置为 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
Kubernetes 1.29
Kubernetes 1.29
现已在 Amazon EKS 中推出。有关 Kubernetes 1.29
的更多信息,请参阅官方发布公告
重要
-
Kubernetes
v1.29
中不再提供FlowSchema
和PriorityLevelConfiguration
已弃用的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
有关完整的 Kubernetes 1.29
更改日志,请参阅https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.29.md#changelog-since-v1280
Kubernetes 1.28
Kubernetes 1.28
现已在 Amazon EKS 中推出。有关 Kubernetes 1.28
的更多信息,请参阅官方发布公告
-
Kubernetes
v1.28
将核心节点和控制面板组件之间支持的偏差扩大了一个次要版本,从n-2
到n-3
,这样支持的最旧次要版本的节点组件(kubelet
和kube-proxy
)便可与支持的最新次要版本的控制面板组件(kube-apiserver
、kube-scheduler
、kube-controller-manager
、cloud-controller-manager
)一起使用。 -
Pod GC Controller
中的指标force_delete_pods_total
和force_delete_pod_errors_total
已增强,可以将所有强制容器组(pod)删除考虑在内。在指标中添加了一个原因,指示容器组(pod)是由于已终止、已孤立、因服务中断污点而终止还是已终止但未计划。 -
PersistentVolume (PV)
控制器已修改为自动为任何storageClassName
未设置的未绑定PersistentVolumeClaim
分配默认值StorageClass
。此外,API 服务器内的PersistentVolumeClaim
准入验证机制已经过调整,允许将值从未设置状态更改为实际StorageClass
名称。
有关完整的 Kubernetes 1.28
更改日志,请参阅https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.28.md#changelog-since-v1270