查看 Kubernetes 版本延期支持的发布说明 - Amazon EKS

帮助改进此页面

要帮助改进本用户指南,请选择位于每个页面右侧窗格中的在 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 版本 FlowSchemaPriorityLevelConfiguration。如果您有清单或客户端软件在使用已弃用的测试版 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-2n-3),这样支持的最旧次要版本的节点组件(kubeletkube-proxy)便可与支持的最新次要版本的控制面板组件(kube-apiserverkube-schedulerkube-controller-managercloud-controller-manager)结合使用。

  • Pod GC Controller 中的指标 force_delete_pods_totalforce_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/podcontainer.seccomp.security.alpha.kubernetes.io 注释的支持。alpha seccomp 注释在 1.19 中已弃用,随着它们在 1.27 中的移除,Podsseccomp 字段将不再自动填充 seccomp 注释。反之,将会使用 Pods 或容器的 securityContext.seccompProfile 字段配置 seccomp 配置文件 要检查您是否在集群中使用了弃用的 alpha seccomp 注释,请运行以下命令:

    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 应分布的最小域数量。nodeAffinityPolicynodeTaintPolicy 允许在管理 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