CCE发布Kubernetes 1.35版本说明
更新时间:2026-08-10
百度智能云容器引擎 CCE 严格遵循社区一致性认证, 本文介绍 CCE 发布 Kubernetes 1.35 版本的主要说明,包括升级注意事项、重大变更、功能特性、弃用功能和API、特性门控等。
组件版本说明
下表为 CCE 集群核心组件版本的支持情况。
| 核心组件 | 版本号 |
|---|---|
| Kubernetes | 1.35.3-baidu.2 |
| etcd | v3.6.6 |
| containerd | 2.1.5 |
| CoreDNS | 1.20.6 |
| CSI | CCE CSI CDS Plugin:1.4.13 |
| CCE CSI PFS L2 Plugin:1.1.3 | |
| CCE CSI BOS Plugin:1.5.5 | |
| CCE CSI BOS2 Plugin:1.0.0 | |
| CNI | agent:2.13.5 |
| operator:2.13.5 |
重大变化
-
Kubernetes 自 1.35 版本起不再支持 cgroup v1,对 cgroup v2 的支持已在 1.25 版本进入稳定阶段。节点操作系统必须升级以支持 cgroup v2,否则 kubelet 将无法启动。
关于 CCE 如何将已有 cgroup v1 节点迁移至 cgroup v2,可请参见操作文档 将 CCE 节点迁移至 cgroup v2。
功能特性
- Service 的 trafficDistribution 字段新增的 PreferSameNode 选项进入稳定阶段(GA)。此选项使流量优先路由到本节点上的端点,仅在节点上无可用端点时回退到其他节点。该功能的特性门控 PreferSameTrafficDistribution 自 1.34 起默认启用,同时支持 PreferSameNode 和 PreferSameZone。原有的 PreferClose 选项已重命名为 PreferSameZone。
- PodObservedGenerationTracking进入稳定阶段。当 Pod 的 spec 更新时,其 .metadata.generation 会递增。Kubelet 会在 Pod 的 .status.observedGeneration 字段中记录其已处理的 spec 版本。 这有助于控制器和 Operator 准确判断 Pod 的变更(例如原地扩缩容)是否已在节点上生效,从而避免因状态更新延迟而引发的问题。
- 节点拓扑管理器策略选项 max-allowable-numa-nodes (max-allowable-numa-nodes)进入稳定阶段,拓扑管理器可在超过 8 个 NUMA 节点的服务器上正确计算亲和性。
- Downward API 现已支持将节点的拓扑标签(如 topology.kubernetes.io/zone、topology.kubernetes.io/region)注入到 Pod 中。
- StorageVersionMigrator进阶至Beta,默认关闭,将存储版本迁移(Storage Version Migration)能力从外部工具迁移至 Kubernetes 内部实现。详见 Move Storage Version Migrator in-tree。
- MutableCSINodeAllocatableCount 默认启用,允许 CSI 驱动定期更新节点上可分配卷的数量信息。这有助于解决节点可分配卷容量信息更新不及时的问题,此问题可能导致 Pod 被调度到卷容量不足的节点上,并卡在 ContainerCreating 状态。
- 通过引入 Opportunistic batching,调度器可以缓存调度中间结果,从而显著提升相似 Pod 的调度吞吐量。
- MaxUnavailableStatefulSet 进阶至 Beta 并默认启用。该功能允许为 StatefulSet 的滚动更新策略设置 maxUnavailable 字段,用于指定更新过程中不可用 Pod 数量的上限。
- Pod Certificates 进阶至 Beta,默认禁用。该功能支持为 Pod 生成证书用于和 kube-apiserver 进行双向认证访问,并支持证书的自动轮转,提供了比传统 ServiceAccount 令牌更安全的认证方式。详见 KEP-4317: Pod Certificates。
- Kubectl 支持使用 KYAML 格式。KYAML 是为 Kubernetes 设计的 YAML 子集,旨在解决标准 YAML 在解析时的一些歧义和安全问题。可通过设置环境变量 KUBECTL_KYAML=false 来禁用此功能。详见 Introducing KYAML。
- HorizontalPodAutoscaler (HPA) 的 behavior 字段现已支持配置容忍度阈值。此前,扩缩容决策依赖于一个固定的全局 10% 容忍度,现可按需灵活配置。
- 用户命名空间(User Namespaces)进阶至 Beta 。此功能允许 Pod 在一个与主机隔离的用户命名空间中运行。容器进程可以在其命名空间内以 root (UID 0) 身份运行,但在主机上会被映射为一个无特权的非零用户 ID,降低因容器逃逸而导致权限提升的安全风险。
- ImageVolume 默认启用,允许在 Pod 中使用 image 类型的卷。这种卷可以将容器镜像的内容作为只读卷挂载到 Pod 中。使用此功能时,containerd 需为 v2.1 或更高版本。
- KubeletEnsureSecretPulledImages 进阶至 Beta 并默认启用。此功能通过强制对使用 imagePullPolicy: IfNotPresent 的 Pod 进行凭据校验,提升多租户集群的安全性。它能有效防止以下场景:一个有凭据的 Pod 将私有镜像拉取到节点上后,同一节点上其他无凭据的 Pod 能够利用本地缓存访问该敏感镜像。
- ContainerRestartRules 进阶至 Beta 并默认启用,实现了更细粒度的容器级重启策略配置。支持通过为容器指定 restartPolicy 和 restartPolicyRules 来覆盖 Pod 级别的重启策略。详见 Individual container restart policy and rules。
- CSI 驱动支持将 CSIDriver 对象中的 spec.serviceAccountTokenInSecrets 字段设置为 true,以通过 Secret 挂载 ServiceAccount 令牌,而不是将其直接放在 volume context 中。这有助于防止凭据在日志和错误信息中被意外泄露。详见 CSI driver opt-in for service account tokens via secrets field。
- Deployment 新增 terminatingReplicas 字段,用于记录已设置删除时间戳但尚未从系统中完全移除的 Pod 数量。
参考链接
关于 Kubernetes 1.35 完整的变更记录,请参见:
评价此篇文章
