帮助改进此页面
要帮助改进本用户指南,请选择位于每个页面右侧窗格中的在 GitHub 上编辑此页面链接。
查看 Kubernetes 版本延期支持的发布说明
Amazon EKS 支持 Kubernetes 版本的时间长于上游支持的时间。从 Kubernetes 次要版本在 Amazon EKS 中发布之日起,标准支持期为 14 个月;Kubernetes 次要版本的扩展支持在此基础上提供额外 12 个月的支持(每个版本总计 26 个月)。
本主题介绍有关扩展支持中每个 Kubernetes 版本需要注意的重要更改。升级时,请仔细检查集群新旧版本之间发生的变化。
Kubernetes 1.29
Kubernetes 1.29
现已在 Amazon EKS 中可用。有关 Kubernetes 1.29
的更多信息,请参阅官方发布公告
重要
-
Kubernetes 版本
1.29
中不再提供已弃用的flowcontrol.apiserver.k8s.io/v1beta2
API 版本FlowSchema
和PriorityLevelConfiguration
。如果您有清单或客户端软件在使用已弃用的测试版 API 组,则应该先更改这些清单或客户端软件,然后再升级版本1.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
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