Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Kubernetes 1.29正式发布,包含49个增强功能

Kubernetes 1.29正式发布,包含49个增强功能

作者头像
公众号: 云原生生态圈
发布于 2024-01-23 05:07:27
发布于 2024-01-23 05:07:27
1.1K0
举报
文章被收录于专栏:云原生生态圈云原生生态圈

现在宣布 Kubernetes v1.29:Mandala 版本正式发布,这是 2023 年发布的最后一个版本!

Kubernetes v1.29 的发布,如同以往版本一样,带来了新的稳定版(Stable)、测试版(Beta)和开发版(Alpha)特性。这次发布再次证明了我们高效的开发周期和社区的热情支持,体现了我们的强大实力。

这个版本包含了 49 个增强功能,其中 11 个已经成熟到稳定版,19 个进入 Beta 版阶段,另外 19 个达到了 Alpha 版水平。

#01

主题与标志

Kubernetes v1.29:Mandala

与我们一起踏上 Kubernetes v1.29 这场宇宙探索之旅吧!

这个版本的灵感来源于 Mandala,是完美的宇宙的象征。我们紧密相连的发布团队约 40 人,在众多社区贡献者的支持下,克服重重挑战,为全球数百万用户带来喜悦。

Mandala 主题展现了我们社区成员之间的密切联系,就像由各路热情爱好者和专家共同编织的多姿多彩的画卷。每一位贡献者都像 Mandala 艺术中的独特图案,为项目注入了他们的独特活力。Kubernetes 的繁荣发展正是建立在这种协作和 Mandala 艺术中所体现的和谐之上的。

这次版本的标志,由 Mario Jason Braganza 设计(基础 Mandala 艺术作品是 Fibrel Ojalá 提供的),象征着 Kubernetes 项目及其团队构成的小小宇宙。

在 Mandala 象征着变革的精神引导下,Kubernetes v1.29 庆祝了我们项目的成长。就像 Kubernetes 宇宙中的每一颗星星,每位贡献者、用户和支持者都在照亮我们的道路。我们一起创造了一个充满无限可能的宇宙,每一次版本更新都是我们共同创造的成果。

#02

重大改进

以下是一些在 Kubernetes v1.29 版本发布后成为稳定特性的重要改进。

ReadWriteOncePod 持久卷访问模式

在 Kubernetes 世界里,卷访问模式定义了持久存储的使用方式。这些模式是持久卷(PersistentVolumes,简称 PV)和持久卷申请(PersistentVolumeClaims,简称 PVC)规范的一部分。当我们使用存储时,有不同的模型来描述存储的消耗。

举个例子,像网络文件共享这种存储系统,可能允许多个用户同时进行读写操作。在其他场景下,可能所有人都能读取数据,但不能进行写入。对于极其敏感的数据,可能只允许一个用户进行读写,而其他人则不能。

在 v1.22 版本之前,Kubernetes 为 PV 和 PVC 提供了三种访问模式:

  • ReadWriteOnce:一个卷可以被单个节点以读写的方式挂载
  • ReadOnlyMany:一个卷可以被多个节点以只读的方式挂载
  • ReadWriteMany:一个卷可以被多个节点以读写的方式挂载

ReadWriteOnce 访问模式将卷访问限制在单个节点,这意味着同一个节点上的多个 Pod 可以对同一个卷进行读写。这对于某些应用来说可能是个大问题,特别是在那些出于数据安全考虑需要最多一个写入者的场景中。

为了应对这个问题,v1.22 版本引入了第四种访问模式 ReadWriteOncePod,作为 CSI 卷的 Alpha 特性。如果你创建了一个使用 ReadWriteOncePod 访问模式的 PVC 的 Pod,Kubernetes 会确保这个 Pod 是你整个集群中唯一一个可以读写该 PVC 的 Pod。到了 v1.29 版本,这个功能已经普遍可用。

节点卷扩展时对 CSI 驱动程序的 Secret 支持

在 Kubernetes 中,卷扩展操作可能涉及在节点上扩展卷,包括文件系统的调整。某些 CSI 驱动在节点扩展过程中需要 Secret,比如访问 SAN 网络的凭据,这在以下情况下尤为重要:

  • 当一个 PersistentVolume 代表加密的块存储时,例如使用 LUKS,你可能需要提供一个密码短语来扩展设备。
  • 为了进行各种验证,CSI 驱动在节点扩展时需要用到与后端存储系统通信的凭据。

为了满足这一需求,Kubernetes v1.25 版本中引入了 CSI Node Expand Secret 功能。这一功能允许在 NodeExpandVolumeRequest 中传递一个可选的 Secret 字段,由 CSI 驱动使用,以便在底层存储系统上进行节点卷扩展操作。到了 Kubernetes v1.29 版本,这个功能已经成为普遍可用的特性。

KMS v2 静态加密功能正式上线

在保障 Kubernetes 集群安全的众多考虑中,对存储的 API 数据进行静态加密是首要任务之一。KMS 提供了一个接口,允许使用外部密钥服务中存储的密钥来执行这种加密。随着 Kubernetes v1.29 版本的发布,KMS v2 已经稳定上线,带来了性能提升、密钥轮换、健康检查与状态监控以及可观测性方面的多项改进。这些改进为用户提供了一个靠谱的方案,可以对他们的 Kubernetes 集群中的所有资源进行加密。

更多关于这方面的信息,可以参考:

https://kep.k8s.io/3299

推荐使用 KMS v2。KMS v1 的功能门默认是关闭的。如果你想继续使用它,需要主动选择加入。

#03

升级为 beta 版的新特性

以下是一些在 Kubernetes v1.29 版本发布后升级为 beta 版本的新特性。

调度器的吞吐量是我们不断面临的挑战。QueueingHint 功能为提升重新排队的效率带来了新思路,能够显著降低无效的调度重试次数。

节点生命周期与污点管理分离

正如标题所述,此举旨在将执行基于污点的 Pod 驱逐的 TaintManager 从 NodeLifecycleController 中分离,并将它们变为两个独立的控制器:NodeLifecycleController 负责向不健康的节点添加污点,而 TaintManager 则负责删除带有 NoExecute 效果的污点节点上的 Pod。

清理基于 Secret 的遗留 ServiceAccount 令牌

Kubernetes 在 1.22 版本切换到了更安全的服务账户令牌,这些令牌具有时间限制,并与特定的 Pod 绑定。到了 1.24 版本,停止了基于 Secret 的遗留服务账户令牌的自动生成。随后,在 1.27 版本中开始标记仍在使用的自动生成的基于 Secret 的令牌的最后使用日期。

在 v1.29 版本中,为了减少可能的攻击面,LegacyServiceAccountTokenCleanUp 功能将那些长时间未使用(默认为 1 年)的遗留自动生成的基于 Secret 的令牌标记为无效,并在被标记为无效后再经过长时间(默认另外 1 年)未尝试使用的情况下自动将其移除。

更多信息可参见:

https://kep.k8s.io/2799

#04

新推出的 alpha 特性

使用 matchLabelKeys 定义 Pod 的亲和性或反亲和性

PodAffinity/PodAntiAffinity 将在 alpha 版本中引入一项增强功能。这将提高在滚动更新过程中计算准确性的能力。

nftables 作为 kube-proxy 的后端

目前 Linux 上 kube-proxy 的默认实现基于 iptables,这长期以来一直是 Linux 内核中首选的包过滤和处理系统(自 2001 年的 2.4 内核开始)。然而,iptables 的一些无法解决的问题促使开发了它的继任者 nftables。iptables 的开发基本已停止,新功能和性能改进主要集中在 nftables 上。

这个特性为 kube-proxy 增加了一个基于 nftables 的新后端,因为一些 Linux 发行版已开始淘汰和移除 iptables,而 nftables 声称解决了 iptables 的主要性能问题。

用于管理服务 IP 地址范围的 API

服务是一种抽象的方式,用于暴露运行在一组 Pod 上的应用。服务可以有一个集群级的虚拟 IP 地址,这个地址从在 kube-apiserver 标志中定义的预设 CIDR 中分配。但是,用户可能想在不重启 kube-apiserver 的情况下添加、移除或调整已分配给服务的现有 IP 范围。

这个特性通过使用两个新的 API 对象:ServiceCIDR 和 IPAddress,实现了一个新的分配器逻辑,允许用户通过创建新的 ServiceCIDR 动态增加可用的服务 IP 数量。这有助于解决 IP 耗尽或 IP 重新编号等问题。

为 containerd/kubelet/CRI 添加支持,允许根据运行时类别拉取镜像

Kubernetes v1.29 新增了根据 Pod 的 RuntimeClass 拉取容器镜像的功能。这个功能在 v1.29 版本下默认关闭,属于名为 RuntimeClassInImageCriApi 的特性门。

容器镜像可以是清单或索引。当拉取的镜像是一个索引时(即镜像索引含有按平台排序的镜像清单列表),容器运行时将使用平台匹配逻辑从索引中拉取合适的镜像清单。默认情况下,平台匹配逻辑会选择与执行镜像拉取的主机匹配的清单。这对于基于 VM 的容器可能有所限制,比如用户可能希望拉取一个镜像,意图将其作为基于 VM 的容器运行,例如 Windows Hyper-V 容器。

按运行时类别拉取镜像的特性支持基于指定的运行时类别拉取不同的镜像。这是通过引用由 (imageID, runtimeClass) 元组组成的镜像实现的,而不仅仅是 imageName 或 imageID。容器运行时可以选择支持这一特性。如果他们不支持,那么 Kubernetes v1.29 之前 kubelet 的默认行为将被保留。

对 Windows Pod 的 Pod 资源进行就地更新

作为 alpha 特性,Kubernetes Pod 现在可以在资源方面进行更改,允许用户在不重启 Pod 的情况下更改 Pod 的资源请求和限制。在 v1.29 版本中,这一功能现已支持 Windows 容器。

#05

毕业、弃用和移除功能

升级为稳定版

以下列出了所有升级为稳定版(也称为通用可用)的特性。有关包括新功能以及从 alpha 到 beta 升级的完整列表,请参阅:

https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.29.md

本版本共有 11 项增强功能升级为稳定版:

  • 从 KCCM 的服务控制器中移除临时节点断言
  • 为动态和静态分配保留节点端口范围
  • API 服务器请求的优先级和公平性
  • KMS v2 的改进
  • 支持从 Kubernetes API 分页 LIST 查询
  • ReadWriteOncePod 持久卷访问模式
  • Kubernetes 组件健康 SLI
  • CRD 验证表达式语言
  • 在 CSI PV 源中引入 nodeExpandSecret
  • 跟踪工作状态中的就绪 Pod
  • Kubelet 资源指标端点

弃用和移除

移除与云提供商的树内集成

Kubernetes v1.29 默认情况下不再集成任何云提供商的内置集成。如果你之前依赖于树内云提供商集成(例如 Azure、GCE 或 vSphere),你可以:

  • 启用等效的外部云控制器管理器集成(推荐)
  • 通过将相关功能门设置为 false 来选择继续使用旧版集成;需要更改的功能门包括 DisableCloudProviders 和 DisableKubeletCloudCredentialProviders

启用外部云控制器管理器意味着你必须在集群控制平面内运行适当的云控制器管理器;它还要求在每个相关节点的 kubelet 上,以及整个控制平面(kube-apiserver 和 kube-controller-manager)中设置命令行参数 --cloud-provider=external。

有关如何启用和运行外部云控制器管理器的更多信息,请参阅:

https://kubernetes.io/docs/tasks/administer-cluster/running-cloud-controller/

以及:

https://kubernetes.io/docs/tasks/administer-cluster/controller-manager-leader-migration/

如果你需要某个旧版树内提供商的云控制器管理器,请参阅以下链接:

  • 云提供商 AWS:https://github.com/kubernetes/cloud-provider-aws
  • 云提供商 Azure:https://github.com/kubernetes-sigs/cloud-provider-azure
  • 云提供商 GCE:https://github.com/kubernetes/cloud-provider-gcp
  • 云提供商 OpenStack:https://github.com/kubernetes/cloud-provider-openstack
  • 云提供商 vSphere:https://github.com/kubernetes/cloud-provider-vsphere

更多详细信息请阅读:https://kep.k8s.io/2395

移除 v1beta2 流控 API 组

Kubernetes v1.29 版本中不再提供已弃用的 flowcontrol.apiserver.k8s.io/v1beta2 API 版本的 FlowSchema 和 PriorityLevelConfiguration。

如果你有使用已弃用 beta API 组的清单或客户端软件,应在升级到 v1.29 之前更改它们。详细信息和建议请参阅已弃用 API 的迁移指南:

https://kubernetes.io/docs/reference/using-api/deprecation-guide/#v1-29

Node 对象中 kubeProxyVersion 字段的弃用

Node 对象的 .status.kubeProxyVersion 字段现在被标记为弃用,Kubernetes 项目计划在未来的版本中移除这个字段。这个已弃用的字段并不准确,而且历史上一直是由 kubelet 管理的 - 实际上 kubelet 并不了解 kube-proxy 的确切版本,甚至不知道 kube-proxy 是否在运行。

如果你在客户端软件中一直在使用这个字段,请立即停止 - 这个信息不可靠,而且该字段现已被弃用。

遗留的 Linux 包存储

请注意,在 2023 年 8 月,遗留的包存储(apt.kubernetes.io 和 yum.kubernetes.io)被正式弃用,Kubernetes 项目宣布了 Debian 和 RPM 包的社区拥有的包存储的通用可用性,可在 https://pkgs.k8s.io 获取。

这些遗留存储在 2023 年 9 月被冻结,并将在 2024 年 1 月完全消失。如果你目前还在依赖这些仓存储,你必须进行迁移。

这次弃用并不是直接与 v1.29 版本相关。更多细节,包括这些变化可能对你产生的影响以及如果你受到影响应采取的措施,请查阅遗留包仓库弃用公告:

https://kubernetes.io/blog/2023/08/31/legacy-package-repository-deprecation/

#06

其他信息

想了解 Kubernetes v1.29 版本的完整详情,请查阅我们的发行说明:

https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.29.md

GitHub 下载链接:

https://github.com/kubernetes/kubernetes/releases/tag/v1.29.0

原文链接:https://kubernetes.io/blog/2023/12/13/kubernetes-v1-29-release/

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-01-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 云原生生态圈 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Kubernetes v1.30 新特性一览
Kubernetes v1.30 是 2024 年发布的第一个大版本,包含了 45 项主要的更新。 对比去年的话,v1.27 有近 60 项,v1.28 有 46 项,v1.29 有 49 项。可以看到 Kubernetes 变得更加谨慎了,会更加保守的控制进入其核心的功能。
Jintao Zhang
2024/04/16
1.5K0
Kubernetes v1.30 新特性一览
Kubernetes v1.29 新特性一览
Kubernetes v1.29 是 2023 年的第三个大版本更新,也是今年的最后一个大版本,包含了 49 项主要的更新。 而今年发布的第一个版本 v1.27 有近 60 项,第二个版本 v1.28 有 46 项。尽管 Kubernetes 已经发布快 10 年了,Kubernetes 的生命力仍然很旺盛!
Jintao Zhang
2023/12/14
5990
Kubernetes v1.29 新特性一览
Kubernetes 1.29 增强了 KMS V2 并提供对 nftables 的支持
云原生计算基金会(CNCF)发布了代号为 Mandala 的 Kubernetes 1.29。最新版本引入了一些新特性,比如 Service 负载均衡器的 IP 模式、Windows 容器的可变 Pod 资源以及基于 nftables 的 kube-proxy。
深度学习与Python
2024/02/17
2700
Kubernetes 1.29 增强了 KMS V2 并提供对 nftables 的支持
Kubernetes v1.17正式发布,22个增强功能,4个Beta版,2019年最后一次发布!
我们很高兴宣布Kubernetes 1.17的交付,这是2019年的第四次,也是最后一次发布!Kubernetes v1.17包含22个增强功能:14个增强功能已逐渐稳定,4个增强功能已进入beta版,4个增强功能已进入alpha版本。
灵雀云
2019/12/19
5140
Kubernetes v1.17正式发布,22个增强功能,4个Beta版,2019年最后一次发布!
Kubernetes v1.33 发布:64 项增强,18 项重磅功能转正 Stable!Sidecar 终于 Stable啦!
时间过得真快,一转眼k8s都更新到1.33了,我印象最深刻的是1.18,因为这是我正式学习和接触k8s的第一个版本,希里安那时候考试认证的时候也才1.2x的版本,一晃过去好几年了!
希里安
2025/04/30
4130
Kubernetes v1.33 发布:64 项增强,18 项重磅功能转正 Stable!Sidecar 终于 Stable啦!
​Kubernetes 1.17新特性:存储卷从 In-Tree向CSI的迁移已到达Beta阶段
Kubernetes存储插件从in-tree到CSI的迁移在v1.17达到了beta阶段。CSI迁移在Kubernetes v1.14中作为alpha版引入。
灵雀云
2019/12/19
1.1K0
​Kubernetes 1.17新特性:存储卷从 In-Tree向CSI的迁移已到达Beta阶段
Kubernetes v1.30正式发布!
我们很高兴地宣布发布 Kubernetes v1.30: Uwubernetes,这是迄今为止最可爱的版本!
用户1107783
2024/04/18
9540
Kubernetes v1.30正式发布!
Kubernetes 1.16.0发布 新版本四大主题
Kubernetes v1.16.0 已经发布,该版本由 31 个增强功能组成:8 个进入稳定,8 个进入 Beta,15 个进入 Alpha。
Debian中国
2020/01/21
4430
Kubernetes 1.22:再闖新高峰
我们很高兴地宣布 Kubernetes 1.22 的发布,这是 2021 年的第二个版本!
CNCF
2021/08/26
7790
Kubernetes 1.22:再闖新高峰
k8s 1.27 新特性(Pod无需重启调整CPU内存资源...)
太平洋时间 2023 年 4 月 11 日,Kubernetes 1.27 正式发布。此版本距离上版本发布时隔 4 个月,是 2023 年的第一个版本。
iginkgo18
2023/05/22
3.9K0
Kubernetes v1.20 重磅发布
美国时间 12 月 8 日,Kubernetes v1.20 正式发布,这是 2020 年的第三个新版本,也是最后一个版本。该版本包含 42 个增强功能:其中 11 个增强功能趋于稳定,15 个进入 Beta,16 个进入 Alpha。
kubernetes中文社区
2020/12/17
7610
Kubernetes v1.20 重磅发布
Kubernetes v1.17.0 正式发布
欢迎大家关注交流,定期分享自动化运维、DevOps、Kubernetes、Service Mesh和Cloud Native
YP小站
2020/06/04
8990
好似一场马拉松:历时5月,Kubernetes1.19正式发布 !Ingress迎来GA
我们迎来了Kubernetes1.19,这是2020年发布的第二个版本,也是迄今为止最长的发布周期,总共持续了20周。它包括33个增强功能:12个增强功能达到稳定版,18个增强处在beta版,还有13个是alpha版。
灵雀云
2020/08/31
5920
好似一场马拉松:历时5月,Kubernetes1.19正式发布 !Ingress迎来GA
K8S 在 v1.27 中移除的特性和主要变更
随着 Kubernetes 发展和成熟,为了此项目的整体健康,某些特性可能会被弃用、移除或替换为优化过的特性。基于目前在 v1.27 发布流程中获得的信息,本文将列举并描述一些计划在 Kubernetes v1.27 发布中的变更, 发布工作目前仍在进行中,可能会引入更多变更。
我的小碗汤
2023/03/23
1.4K0
K8S 在 v1.27 中移除的特性和主要变更
Kubernetes v1.19.0 正式发布!
终于,我们推出了Kubernetes 1.19,这是2020年的第二个发行版,并且迄今为止最长的发行周期持续了20周。它由33项增强功能组成。12个增强功能进入稳定版,18个增强功能进入测试版,13个增强功能进入alpha版。
YP小站
2020/08/28
8310
Kubernetes v1.19.0 正式发布!
Kubernetes v1.24版特性介绍篇
早在 2020 年 12 月,Kubernetes 就宣布弃用 Dockershim。在 Kubernetes 中,dockershim 是一个软件 shim,它允许您将Docker引擎用作 Kubernetes 中的容器运行时。在即将发布的 v1.24 版本中,我们将移除 Dockershim,弃用和移除之间的间隔,符合项目在弃用后至少一年支持功能的政策。如果您是集群操作员,则本指南包含您在此版本中需要了解的实际情况。此外,您需要做些什么来确保您的集群不会倒塌!
王先森sec
2023/04/24
1.1K0
刚刚,Kubernetes 1.24正式发布
今天,我们很高兴地向大家宣布,Kubernetes 1.24暨2022年的首个版本已经正式发布!
肉眼品世界
2022/06/15
7830
刚刚,Kubernetes 1.24正式发布
刚刚 Kubernetes 1.25 正式发布,所有变化都在这儿了
此版本带来了 40 项增强功能,略少于Kubernetes 1.24 中的 46 项。在这 40 项增强功能中,13 项正在升级到稳定版,10 项是对现有功能的不断改进,15 项是全新的,2 项是已弃用的功能。
我的小碗汤
2023/03/19
1.7K0
刚刚 Kubernetes 1.25 正式发布,所有变化都在这儿了
k8s 1.22发布:迈向新的巅峰
今天,我们兴奋地向大家宣布,Kubernetes在2021年内的第二个版本、即1.22版本已经正式来临!
肉眼品世界
2021/08/09
1.1K0
一文看懂Kubernetes v1.16!
9月18日,Kubernetes v1.16重磅发布!这是2019年以来发布的第三个版本! Kubernetes 1.16包含31个增强功能:8个增强趋于稳定,8个进入beta版,15个在alpha版。
灵雀云
2019/09/24
9300
一文看懂Kubernetes v1.16!
推荐阅读
相关推荐
Kubernetes v1.30 新特性一览
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档