帮助改进此页面
想为本用户指南做出贡献? 滚动到页面底部,然后选择在 GitHub 上编辑此页面。您的贡献有助于我们的用户指南为每个人提供更充分的参考。
标准支持版本的发布说明
本主题介绍有关标准支持中每个 Kubernetes 版本需要注意的重要更改。升级时,请仔细检查集群新旧版本之间发生的变化。
注意
对于 1.24
和更高版本的集群,正式发布的 Amazon EKS AMI 包括 containerd
作为唯一的运行时。低于 1.24
的 Kubernetes 版本将使用 Docker 作为默认运行时。这些版本有一个引导标志选项,您可以使用该选项在任何受支持的集群上通过 containerd
测试工作负载。有关更多信息,请参阅 Amazon EKS 结束了对 Dockershim 的支持。
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),以确定一个账户中的资源相对于另一个账户中的资源所在的位置。有关更多信息,请参阅 Amazon RAM 用户指南中的适用于 Amazon 资源的可用区 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 -nkube-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
Kubernetes 1.27
Kubernetes 1.27
现已在 Amazon EKS 中推出。有关 Kubernetes 1.27
的更多信息,请参阅官方发布公告
重要
-
已移除对 alpha
seccomp
注释seccomp.security.alpha.kubernetes.io/pod
和container.seccomp.security.alpha.kubernetes.io
注释的支持。alphaseccomp
注释在1.19
中已弃用,随着它们在1.27
中的移除,Pods
的seccomp
字段将不再自动填充seccomp
注释。反之,将会使用Pods
或容器的securityContext.seccompProfile
字段配置seccomp
配置文件 要检查您是否在集群中使用了弃用的 alphaseccomp
注释,请运行以下命令:kubectl get pods --all-namespaces -o json | grep -E 'seccomp.security.alpha.kubernetes.io/pod|container.seccomp.security.alpha.kubernetes.io'
-
kubelet
的--container-runtime
命令行参数已移除。Amazon EKS 的默认容器运行时系统自1.24
开始便已containerd
,从而不需要指定容器运行时系统。从1.27
开始,Amazon EKS 将忽略传递给任何引导脚本的--container-runtime
参数。重要的是不要将此参数传递给--kubelet-extra-args
,以防止在节点引导过程中出现错误。您必须从所有节点创建工作流和生成脚本中删除--container-runtime
参数。
-
Kubernetes
1.27
中的kubelet
将默认值kubeAPIQPS
增加到50
,将kubeAPIBurst
增加到100
。这些增强功能使kubelet
能够处理更多的 API 查询,从而缩短响应时间并提高性能。当Pods
的需求由于扩展要求而增加时,修订后的默认值可确保kubelet
能够有效地管理增加的工作负载。因此,Pod
启动速度更快,集群操作更有效。 -
您可以使用更精细的
Pod
拓扑结构来传播策略,例如minDomain
。此参数使您能够指定Pods
应分布的最小域数量。nodeAffinityPolicy
和nodeTaintPolicy
允许在管理Pod
分布时提供额外的精细度。这与您Pod's
规范的topologySpreadConstraints
中的节点亲和性、污点和matchLabelKeys
字段一致。这样一来,便可以在滚动升级后选择Pods
进行发散计算。 -
Kubernetes
1.27
已升级到测试版,StatefulSets
的控制其PersistentVolumeClaims
(PVCs
)生命周期的新策略机制。新的PVC
保留策略可让您指定在删除StatefulSet
或缩减StatefulSet
中的副本时,通过StatefulSet
规范模板生成的PVCs
将会自动删除还是保留。 -
Kubernetes API 服务器中的
goaway-chance
选项通过随机关闭连接,帮助防止 HTTP/2
客户端连接卡在单个 API 服务器实例上。连接关闭后,客户端将尝试重新连接,并且由于负载均衡,很可能会登录不同的 API 服务器。Amazon EKS 版本1.27
已启用goaway-chance
标志。如果您在 Amazon EKS 集群上运行的工作负载使用的客户端与HTTP GOAWAY
不兼容,则建议您在连接终止时重新连接,以更新您的客户端处理 GOAWAY
。
有关完整的 Kubernetes 1.27
更改日志,请参阅https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.27.md#changelog-since-v1260
Kubernetes 1.26
Kubernetes 1.26
现已在 Amazon EKS 中推出。有关 Kubernetes 1.26
的更多信息,请参阅官方发布公告
重要
Kubernetes 1.26
不再支持 CRI v1alpha2
。如果容器运行时系统不支持 CRI v1
,这会导致 kubelet
不再注册该节点。这也意味着 Kubernetes 1.26
不支持 containerd 1.5
次要版本及更早版本。如果您使用的是 containerd,则需要先升级到 containerd 1.6.0
版本或更高版本,然后再将任何节点升级到 Kubernetes 1.26
。您还需要升级任何其他仅支持 v1alpha2
的容器运行时系统。有关更多信息,请咨询容器运行时系统供应商。默认情况下,Amazon Linux 和 Bottlerocket AMI 包含 containerd 1.6.6
版本。
-
在升级到 Kubernetes
1.26
之前,请将您的 Amazon VPC CNI plugin for Kubernetes 升级到1.12
版本或更高版本。如果您不升级到 Amazon VPC CNI plugin for Kubernetes 版本1.12
或者更高版本,则 Amazon VPC CNI plugin for Kubernetes 将会崩溃。有关更多信息,请参阅 使用 Amazon VPC CNI plugin for Kubernetes Amazon EKS 附加组件。 -
Kubernetes API 服务器中的
goaway-chance
选项通过随机关闭连接,帮助防止 HTTP/2
客户端连接卡在单个 API 服务器实例上。连接关闭后,客户端将尝试重新连接,并且由于负载均衡,很可能会登录不同的 API 服务器。Amazon EKS 版本1.26
已启用goaway-chance
标志。如果您在 Amazon EKS 集群上运行的工作负载使用的客户端与HTTP GOAWAY
不兼容,则建议您在连接终止时重新连接,以更新您的客户端处理 GOAWAY
。
有关完整的 Kubernetes 1.26
更改日志,请参阅https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.26.md#changelog-since-v1250