Skip to content

Commit 4dde4a9

Browse files
committed
add release-1.35
Signed-off-by: carlory <[email protected]>
1 parent 1903139 commit 4dde4a9

File tree

1 file changed

+144
-0
lines changed

1 file changed

+144
-0
lines changed
Lines changed: 144 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,144 @@
1+
# TBD
2+
3+
2025 年 12 月 17 日,主题为 TBD 的 Kubernetes v1.35 正式发布。
4+
5+
此版本距离上版本发布时隔 4 个月,是 2025 年的最后一个版本。
6+
7+
与之前的版本类似,Kubernetes v1.35 版本引入了多项新的 Alpha、Beta 和 Stable 的功能。一贯交付高质量版本的承诺凸显了 Kubernetes 社区的开发周期实力和社区的活跃支持。
8+
9+
此版本包含 53 项改进。在这些改进功能中,有 21 项已晋升为 Stable,有 17 项进入 Beta 阶段,有 15 项为 Alpha 阶段。
10+
11+
## 发布主题和 Logo
12+
13+
Kubernetes v1.35 的发布主题是 TBD:它描述地是 TBD。
14+
15+
![](./k8s-1.35.png)
16+
17+
## GA 和稳定的功能
18+
19+
GA 全称 General Availability,即正式发布。Kubernetes 的进阶路线通常是 Alpha、Beta、Stable (即 GA)、Deprecation/Removal 这四个阶段。下文择取了部分特性详述。如果对其他特性感兴趣,请移步至具体的 KEP 页面了解进展和详情。
20+
21+
### TBD
22+
23+
TBD
24+
25+
### 更新总览
26+
27+
- [KEP-859 Kubectl 发起请求时会携带 Kubectl-Command 和 Kubectl-Session 两个 HTTP Header,用于追踪请求来源和标识会话](https://kep.k8s.io/859)
28+
- [KEP-1287 支持了 Pod 资源原地升级(In-Place Update)功能,允许在不重新创建 Pod 或重新启动容器的情况下更改资源](https://kep.k8s.io/1287)
29+
- [KEP-3015 添加一种方法来向 kube-proxy 发出信号,表明它应该尽可能将流量传输到本地端点,以提高效率](https://kep.k8s.io/3015)
30+
- [KEP-3331 添加结构化身份验证配置](https://kep.k8s.io/3331)
31+
- [KEP-3619 细粒度的补充组控制](https://kep.k8s.io/3619)
32+
- [KEP-3673 为 kubelet 添加节点级限制,以限制并行镜像拉取的数量](https://kep.k8s.io/3673)
33+
- [KEP-3983 添加对 kubelet 插入式配置目录的支持](https://kep.k8s.io/3983)
34+
- [KEP-4006 将 Kubernetes 客户端的双向流协议从 SPDY/3.1 转换为 WebSockets](https://kep.k8s.io/4006)
35+
- [KEP-4210 添加 Kubelet 选项,用于指定镜像在被垃圾回收之前保留的最大期限](https://kep.k8s.io/4210)
36+
- [KEP-4368 允许 Job 的协调过程被委派给外部控制器的 `manage-by` 工作机制](https://kep.k8s.io/4368)
37+
- [KEP-4540 引入了新的 CPUManager 策略选项 strict-cpu-reservation,确保 reservedSystemCPUs 严格保留用于系统守护程序或中断处理,并且不会被 QoS 类为 Burstable 和 BestEffort 的 Pod 使用](https://kep.k8s.io/4540)
38+
- [KEP-4622 向 kubelet 添加一个配置选项,允许在 TopologyManager 中配置 maxAllowableNUMANodes 的值](https://kep.k8s.io/4622)
39+
- [KEP-5067 利用现有的元数据 Generation 字段,并在 Pod 状态中添加一个新的 status.observedGeneration 字段,允许 Pod 状态字段表示当前哪些 Pod 更新反映在 Pod 状态中](https://kep.k8s.io/5067)
40+
- [KEP-5468 用于在 Kubernetes E2E 测试期间, 通过组件指标检测指标不变性的违规情况](https://kep.k8s.io/5468)
41+
- [KEP-3304 `k8s.io/apimachinery/util/resourceversion` 提供了一个帮助函数 `CompareResourceVersion`, 用于允许客户端比较同一类型对象的资源版本大小](https://kep.k8s.io/5504)
42+
- [KEP-5589 删除 Kubernetes API 类型的 gogo protobuf 依赖项](https://kep.k8s.io/5589)
43+
44+
## 进入 Beta 阶段的功能
45+
46+
Beta 阶段的功能是指那些已经经过 Alpha 阶段的功能,且在 Beta 阶段中添加了更多的测试和验证,通常情况下是默认启用的。下文择取了部分特性详述。如果对其他特性感兴趣,请移步至具体的 KEP 页面了解进展和详情。
47+
48+
### TBD
49+
50+
TBD
51+
52+
### 更新总览
53+
54+
- [KEP-127 支持用户命名空间,进程能够在具有与主机不同的用户和组 ID 的 pod 中运行。](https://kep.k8s.io/127)
55+
- [KEP-961 StatefulSet 增加 `MaxUnavailable` 字段,支持同时下线多个 Pod 达到快速滚动更新的目的](https://kep.k8s.io/961)
56+
- [KEP-3077 下文日志记录使函数的调用者能够控制日志记录的所有方面(输出格式、详细程度、附加值和名称)](https://kep.k8s.io/3077)
57+
- [KEP-3721 支持从文件实例化容器的环境变量。该文件必须位于 emptyDir 卷中。该环境变量文件可以由 emptyDir 卷中的 initContainer 创建。kubelet 将从 emptyDir 卷中的指定文件实例化容器中的环境变量,但不会挂载该文件。请注意,该卷只会挂载到环境变量生产者容器(initContainer),而使用该环境变量的普通容器不会挂载该卷。](https://kep.k8s.io/3721)
58+
- [KEP-4192 移动存储版本迁移器到主库](https://kep.k8s.io/4192)
59+
- [KEP-4317 为 Pod 提供了使用 mTLS 向 kube-apiserver 进行身份验证的内置功能。它由易于外部项目复用的组件构建而成,以便使用 X.509 证书提供更多功能](https://kep.k8s.io/4317)
60+
- [KEP-4742 允许在 Pod 中通过 downward API 中使用节点标签](https://kep.k8s.io/4742)
61+
- [KEP-4762 在 podSpec 中引入了一个新的字段 hostnameOverride, 允许用户将任意的完全限定域名 (FQDN) 设置为 Pod 的主机名](https://kep.k8s.io/4762)
62+
- [KEP-4876 允许 CSI 驱动程序可以在运行时动态调整可附加卷的最大数量](https://kep.k8s.io/4876)
63+
- [KEP-4951 HorizontalPodAutoscaler 新增 tolerance 字段来指定允许的指标偏差,当使用比率约为 1 时,使用自定义值可精细地触发扩容操作](https://kep.k8s.io/4951)
64+
- [KEP-5278 除了使用 NominatedNodeName 来指示正在进行的抢占之外,调度器还可以在绑定周期开始时指定它,以向其他组件显示预期的 Pod 位置。此外,其他组件也可以将 NominatedNodeName 放在待处理的 Pod 上,以指示该 Pod 优先调度到特定节点](https://kep.k8s.io/5278)
65+
- [KEP-5295 kubectl 引入 KYAML,一种更安全、更少歧义的 YAML 子集/编码](https://kep.k8s.io/5295)
66+
- [KEP-5307 引入了容器重启规则,以便 kubelet 可以在容器退出时应用这些规则。这将允许用户配置容器的特殊退出代码,使其被视为非故障状态,即使 Pod 的 restartPolicy=Never 也能原地重启容器。](https://kep.k8s.io/5307)
67+
- [KEP-5311 放宽 Service 的名称验证, 允许服务名称以数字开头。](https://kep.k8s.io/5311)
68+
- [KEP-5538 现在,CSI 驱动程序可以通过在 CSIDriver 对象中设置 `spec.serviceAccountTokenInSecrets: true` 来选择通过 secrets 字段而非卷上下文接收服务帐户令牌。这可以防止令牌在日志和其他输出中暴露。](https://kep.k8s.io/5538)
69+
- [KEP-5573 Kubernetes 已弃用 cgroup v1, 移除将遵循 Kubernetes 弃用策略。默认情况下,kubelet 将不再在 cgroup v1 节点上启动。要禁用此设置,集群管理员应在 kubelet 配置文件中将 failCgroupV1 设置为 false](https://kep.k8s.io/5573)
70+
- [KEP-5593 改进 Pod 重启退避逻辑,以更好地匹配它创建的实际负载并满足新兴用例,同时为集群作员提供一个选项,以便为特定节点上的所有容器配置更低的最大回退,最低可至 1 秒](https://kep.k8s.io/5593)
71+
72+
73+
## 进入 Alpha 阶段的功能
74+
75+
Alpha 阶段的功能是指那些刚刚被引入的功能,这些功能是默认关闭的,需要用户手动开启。
76+
77+
### TBD
78+
79+
TBD
80+
81+
### 更新总览
82+
83+
- [KEP-4020 允许在存在多个不同版本的 API 服务器时,由正确的 API 服务器处理资源请求](https://kep.k8s.io/4020)
84+
- [KEP-4815 向 DRA 添加对可分区设备的支持](https://kep.k8s.io/4815)
85+
- [KEP-4827 为所有核心组件实现 statusz 端点来公开有关组件基本信息、运行状况和关键指标的标准化实时数据](https://kep.k8s.io/4827)
86+
- [KEP-4828 为所有核心组件实现 flagz 端点来公开有关组件的命令行标志的配置参数](https://kep.k8s.io/4828)
87+
- [KEP-4872 加强 Kubelet Serving 中 Kube-API 服务器的证书验证](https://kep.k8s.io/4872)
88+
- [KEP-5007 DRA 引入一种机制 ( BindingConditions 和 BindingFailureConditions),允许调度程序推迟 Pod 绑定,直到确认外部资源已准备就绪](https://kep.k8s.io/5007)
89+
- [KEP-5030 修复集群自动扩缩器 (CAS),使其在扩缩新节点时能够感知节点的卷挂载限制,并防止调度器将 pod 放置在未安装特定 CSI 驱动程序的节点上。](https://kep.k8s.io/5030)
90+
- [KEP-5055 支持将设备标记为受污染可以防止将其用于新 Pod 和/或导致使用它们的 Pod 停止, 用户可以决定是否容忍这些污染。](https://kep.k8s.io/5055)
91+
- [KEP-5075 允许 ResourceSlice 中的单个设备在不同的独立 ResourceClaims 之间共享,这些 ResourceClaims 由可分配容量值进行管理(前提是驱动程序允许)。这使得 DRA 设备可以由独立的工作负载共享,而不是像现在这样只能由协作的工作负载共享](https://kep.k8s.io/5075)
92+
- [KEP-5237 将路由控制器( k8s.io/cloud-provider )的协调循环从固定间隔切换到基于 Watch 的方式](https://kep.k8s.io/5237)
93+
- [KEP-5284 引入新的授权规则,以限制对指定资源执行指定操作的模拟](https://kep.k8s.io/5284)
94+
- [KEP-5328 提出了一个节点声明特性框架,用于节点声明特定、特性门控的 Kubernetes 特性的可用性。控制平面将使用此框架进行调度和准入决策,主要用于管理版本偏差。对于调度,kube-scheduler 将利用这些声明的特性来确保 pod 仅被部署到具备成功运行所需特性的节点上。对于 API 请求验证,准入控制器将阻止在缺乏所需特性支持的节点上执行操作。其目的是通过减少对手动配置(例如污点、容忍度和复杂的节点标签方案)的依赖来简化集群操作](https://kep.k8s.io/5328)
95+
- [KEP-5381 将 PersistentVolume.spec.nodeAffinity 字段设为可变字段](https://kep.k8s.io/5381)
96+
- [KEP-5440 允许在 Job 被暂停时修改 PodTemplate 上的容器请求/限制。](https://kep.k8s.io/5440)
97+
- [KEP-5607 允许 Pod 同时使用用户命名空间和主机网络](https://kep.k8s.io/5607)
98+
99+
## 删除和废弃功能
100+
101+
### kube-proxy 中的 ipvs 模式
102+
103+
已将 kube-proxy 中的 ipvs 模式标记为已弃用。kube-proxy 中的 ipvs 模式已被弃用,并将在未来的 Kubernetes 版本中移除。建议用户迁移到 nftables。
104+
105+
### 重启 kubelet 会改变 pod 状态
106+
107+
确保高可用性并最大限度地减少服务中断是 Kubernetes 集群的关键考量因素。默认情况下,kubelet 重启时会将所有容器的 Start 和 Ready 状态重置为 False。这意味着之前建立的任何成功探测状态都会在重启后丢失。因此,即使在 kubelet 重启前服务运行正常,也可能被错误地标记为不可用。这种重置会导致对服务健康状况的错误判断,并对集群的整体性能产生负面影响,甚至可能触发不必要的警报或负载均衡调整。我们将添加一个已弃用的功能门控: ChangeContainerStatusOnKubeletRestart 。此功能门控默认处于禁用状态。禁用后,Kubelet 在重启后将不会更改容器状态。用户可以启用功能门控 ChangeContainerStatusOnKubeletRestart 来恢复 Kubelet 在重启后更改容器状态的行为。
108+
109+
## DaoCloud 社区贡献
110+
111+
上半年,DaoCloud 参与多个问题修复和功能研发,并取得了不少成就。其中:
112+
113+
- [徐俊杰(pacoxu)](https://github.com/pacoxu) 连任 Kubernetes 指导委员会(Steering Committee)席位;
114+
- [蒋兴彦(chaunceyjiang)](https://github.com/chaunceyjiang) 成为 vllm 项目 Function Call Owner;
115+
116+
## 发行说明
117+
118+
上述内容就是 Kubernetes v1.35 的主要更新和内容啦,更多的发布说明可以查看 [Kubernetes v1.35 版本的完整详细信息](https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.35.md)
119+
120+
我们下次版本发布时再见!
121+
122+
## 历史文档
123+
124+
- [迎风破浪的三只熊——Kubernetes v1.34 发布,看点全解析](https://mp.weixin.qq.com/s/adEqoMmWXWpqck6ZbCvLLg)
125+
- [重磅!K8s正式支持Sidecar容器,v1.33版本这些改动将影响你的集群](https://mp.weixin.qq.com/s/a7ZLS59ibSbr-7m1TJpehw)
126+
- [Kubernetes 1.32 还在写 Webhook? 你已经 OUT 了!](https://mp.weixin.qq.com/s?__biz=MzI5ODQ2MzI3NQ==&mid=2247513735&idx=1&sn=e5f844df272b5bb691382fb5f324cbbd&chksm=ed0baa783029653a0e13882cd76ef2dc29eb75ada3a7d213c07a3bff3829abd230cad5d8f340&scene=126&sessionid=1734429261#rd)
127+
- [Kubernetes 1.31 发布!十年 OCI 镜像借着 AI 的风终于加入 Volume 的大家庭 ~](https://mp.weixin.qq.com/s/bl5ozc90PhWMO3l-deiJbw)
128+
- [最可爱的版本 UwU - Kubernetes v1.30 发布!](https://mp.weixin.qq.com/s?__biz=MzA5NTUxNzE4MQ==&mid=2659286459&idx=1&sn=bcb8d232b7b611caf89b7dbf17ce0299&chksm=8bcbfd29bcbc743f88806920a1f5200450deac6575db3d20371f76c54d33140d5f4ce39f19f7)
129+
- [Kubernetes 1.29 全新特性: 抛弃 iptables 还在等什么...](https://mp.weixin.qq.com/s/ZZJBRWauVo-VwNFHkNQ_2w)
130+
- [Kubernetes 1.28 震撼发布,Sidecar Containers 迎面而来](https://mp.weixin.qq.com/s/Dr_JpSD9tzfahslZO2bX5A)
131+
- [近两年功能增加最多!Kubernetes 1.27 正式发布](https://mp.weixin.qq.com/s/maDEiCGzOPSDkH9dUxIxdA)
132+
- [Kubernetes 正式发布 v1.26,稳定性显著提升](https://mp.weixin.qq.com/s/qwzmeIM4INz-_BK_gbwOxw)
133+
- [Kubernetes 1.25 正式发布,多方面重大突破](https://mp.weixin.qq.com/s/aRmLBYpk0MhLJAwY85DyuA)
134+
- [Kubernetes 1.24 走向成熟的 Kubernetes](https://mp.weixin.qq.com/s/vqH8ueaZeEeZbx_axNVSjg)
135+
- [Kubernetes 1.23 正式发布,有哪些增强?](https://mp.weixin.qq.com/s/A5GBv5Yn6tQK_r6_FSyp9A)
136+
- [Kubernetes 1.22 颠覆你的想象:可启用 Swap,推出 PSP 替换方案,还有……](https://mp.weixin.qq.com/s/9nH2UagDm6TkGhEyoYPgpQ)
137+
- [Kubernetes 1.21 震撼发布 | PSP 将被废除,BareMetal 得到增强](https://mp.weixin.qq.com/s/amGjvytJatO-5a7Nz4BYPw)
138+
139+
## 参考
140+
141+
1. Kubernetes 增强特性 <https://kep.k8s.io/>
142+
2. Kubernetes 1.35 发布团队 <https://github.com/kubernetes/sig-release/blob/master/releases/release-1.35>
143+
3. Kubernetes 1.35 变更日志 <https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.35.md>
144+
4. Kubernetes 1.35 主题讨论 <https://github.com/kubernetes/sig-release/discussions/2903>

0 commit comments

Comments
 (0)