文章

K8s 1.32 Penelope 详解

Kubernetes 1.32 Penelope 详解

概述

v1.32「Penelope」于 2024-12-11 发布,代号取自《奥德赛》中编织又拆解的 Penelope,寓意版本的「增与删」循环。含 44 项增强(GA 13 / Beta 12 / Alpha 19),是十周年纪念年的收官版本。关键事件:旧版 DRA 实现被撤回、由结构化参数模型替代;引入 CEL 变更准入策略、Pod 级资源规格、/statusz /flagz 等面向未来的 Alpha 特性。

发布基本信息

项目内容
发布日期2024-12-11
代号Penelope
开发周期14 周(2024-09-09 ~ 2024-12-11)
增强总数44(GA 13 / Beta 12 / Alpha 19)
贡献125 家公司、559 名个人(核心);生态 433 家/2441 人

主要新特性解读

🟢 GA 特性

1. 结构化授权配置 GA(KEP-3221)

  • 解读:API Server 支持配置多个授权器,webhook 支持 CEL 匹配条件。告别单一 webhook + 命令行标志的局限。
  • 相关概念:AuthorizationConfiguration、--authorization-config、webhook authorizer、CEL matchConditions。

2. Bound SA Token 改进 GA(KEP-4193)

  • 解读:令牌声明含节点名,用于授权与准入,防止 SA 凭证成为节点提权路径。
  • 相关概念:BoundToken、TokenRequest、node restriction、ServiceAccountTokenNodeBinding

3. CRD 字段选择器 GA(KEP-4358)

  • 解读:CRD 可像内置对象一样支持字段选择器,API 设计更规范,配合细粒度授权更安全。
  • 相关概念:field selector、nodeSelectorlabelSelector、CRD schema。

4. StatefulSet PVC 自动清理 GA(KEP-1847)

  • 解读:StatefulSet 创建的 PVC 在不再需要时自动删除,同时保证更新与维护期间数据持久性。
  • 注意:通过 persistentVolumeClaimRetentionPolicy 控制;需评估是否真的要自动删 PVC。
  • 相关概念volumeClaimTemplateswhenDeleted/whenScaled、StatefulSet 存储生命周期。

5. 内存管理器 GA & 内存卷动态大小 GA

  • 内存管理器为 NUMA 感知的内存分配;内存卷大小可基于 Pod 资源限制动态调整。

6. 其他 GA:重试 generateName、LoadBalancer 行为感知、status.hostIPs、kubectl debug 自定义 profile、Pod 索引标签、Job 创建时间戳注解等。

🟡 Beta 特性

1. Job managedBy 机制(KEP-4368)

  • 解读managedBy 字段允许外部控制器(如 Kueue)管理 Job 同步,提供更大灵活性。
  • 相关概念:Kueue、MultiKueue、批调度、Job controller。

2. 卷组快照 / VolumeGroupSnapshot(KEP-3476)

  • 解读:同时对多个卷做快照,保证数据一致性。对数据库等多卷有状态应用意义重大。
  • 相关概念:VolumeSnapshot、crash-consistent、CSI GroupSnapshot。

3. DRA 结构化参数 Beta(KEP-4381)

  • 解读:kube-scheduler 与 Cluster Autoscaler 可直接模拟 claim 分配,无需第三方驱动验证。
  • 相关概念:ResourceClaim、ResourceSlice、Cluster Autoscaler 模拟、DRA。

4. QueueingHint 全插件 Beta & 卷扩容失败恢复 Beta & 匿名认证端点精细化 Beta & 标签/字段选择器授权 Beta。

🔴 Alpha 特性

1. CEL 变更准入策略 / MutatingAdmissionPolicies(KEP-3962)

  • 解读:基于 CEL 的轻量级变更准入策略,替代变更 webhook;支持设置标签、默认字段、注入 sidecar。
  • 演进:v1.36 GA。
  • 相关概念:MutatingWebhookConfiguration、CEL、admission patch、JSONPatch。

2. Pod 级资源规格(KEP-2837)

  • 解读:Pod 级别设资源请求/限制,创建所有容器共享的资源池,利用 cgroup 在 Pod 级执行。
  • 价值:多容器 Pod(sidecar 架构)减少过度配置。
  • 相关概念:cgroup v2、resources.limits、QoS、sidecar。

3. 异步抢占(KEP-4832)

  • 解读:抢占操作(如删 Pod 的 API 调用)异步处理,提升调度吞吐,利好高 Pod 变动率集群。
  • 相关概念:抢占、PriorityClass、preemptionPolicy、调度吞吐。

4. /statusz/flagz 端点(KEP-4827/4828)

  • 解读:核心组件新增 HTTP 端点,查看版本(含 Go 版本)、运行时间、命令行标志,便于诊断。
  • 相关概念/healthz/metrics、运维可观测性、组件配置审计。

5. Windows 优雅关机 Alpha & DRA 网络接口数据 Alpha & PreStop sleep 零值 Alpha。

弃用与移除

类型项目说明
撤回旧版 DRA 实现(KEP-3063)与 Cluster Autoscaler 不兼容,由结构化参数模型替代
移除flowcontrol.v1beta3迁移到 flowcontrol.v1

重大变更与升级注意

⚠️ FlowSchema 迁移

  • 所有 manifest 与客户端从 flowcontrol.apiserver.k8s.io/v1beta3 迁到 v1
  • 注意 nominalConcurrencyShares 显式值 0 不再改 30。

⚠️ DRA 驱动迁移

  • 使用旧 DRA API 的驱动需迁结构化参数模型。

🔧 质量改进

  • systemd watchdog 重启 kubelet(限制周期内最大重启次数)。
  • 镜像拉取退避错误消息更人性化。

运维实践要点

  1. StatefulSet PVC 清理策略:评估 persistentVolumeClaimRetentionPolicy,避免 PVC 堆积,但谨慎对待需保留数据的场景。
  2. 卷组快照试点:多卷数据库启用一致性快照,简化备份恢复。
  3. 结构化授权配置上线:多授权器 + CEL 匹配,简化复杂授权链。
  4. DRA 路线跟踪:AI/ML 平台关注结构化参数 Beta,规划 GPU 调度升级。
  5. /statusz /flagz 启用观测:纳入监控/排障工具链。

常见问题 / 坑点

问题原因解决方案
StatefulSet PVC 被意外删除自动清理 GA + whenDeleted=Delete评估策略,关键数据用 Retain
FlowSchema 应用报错v1beta3 移除flowcontrol.v1
旧 DRA 驱动失效旧实现撤回迁结构化参数模型

关联知识

参考资源


状态: 📖 已掌握