查看 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

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 之前,请将适用于 Kubernetes 的 Amazon VPC CNI 插件升级到 1.12 版本或更高版本。如果不将适用于 Kubernetes 的 Amazon VPC CNI 插件升级到 1.12 版本或更高版本,则适用于 Kubernetes 的 Amazon VPC CNI 插件会崩溃。有关更多信息,请参阅 使用 Amazon VPC CNI 将 IP 分配给容器组(pod)

  • 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