文章
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、
nodeSelector、labelSelector、CRD schema。
4. StatefulSet PVC 自动清理 GA(KEP-1847)
- 解读:StatefulSet 创建的 PVC 在不再需要时自动删除,同时保证更新与维护期间数据持久性。
- 注意:通过
persistentVolumeClaimRetentionPolicy 控制;需评估是否真的要自动删 PVC。
- 相关概念:
volumeClaimTemplates、whenDeleted/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(限制周期内最大重启次数)。
- 镜像拉取退避错误消息更人性化。
运维实践要点
- StatefulSet PVC 清理策略:评估
persistentVolumeClaimRetentionPolicy,避免 PVC 堆积,但谨慎对待需保留数据的场景。
- 卷组快照试点:多卷数据库启用一致性快照,简化备份恢复。
- 结构化授权配置上线:多授权器 + CEL 匹配,简化复杂授权链。
- DRA 路线跟踪:AI/ML 平台关注结构化参数 Beta,规划 GPU 调度升级。
/statusz /flagz 启用观测:纳入监控/排障工具链。
常见问题 / 坑点
| 问题 | 原因 | 解决方案 |
|---|
| StatefulSet PVC 被意外删除 | 自动清理 GA + whenDeleted=Delete | 评估策略,关键数据用 Retain |
| FlowSchema 应用报错 | v1beta3 移除 | 改 flowcontrol.v1 |
| 旧 DRA 驱动失效 | 旧实现撤回 | 迁结构化参数模型 |
关联知识
参考资源
状态: 📖 已掌握