Kubernetes v1.37:Garhwal

💡 原文英文,约8100词,阅读约需30分钟。
📝

内容提要

Kubernetes v1.37发布,主题为Garhwal,包含67项增强:16项稳定、23项Beta、27项Alpha及1项弃用。亮点包括弹性watch缓存、HPA缩容至零、清单准入控制、Pod级检查点恢复、KYAML稳定、metrics API稳定、SELinux挂载、DRA设备支持、存储迁移、Pod证书、gang调度、原生直方图、内存QoS等。同时弃用kube-dns、ipvs模式及cgroup v1。

🔎

延伸解读

升级前需关注:默认启用与弃用项

v1.37 中多项功能默认启用,如 HPA 缩容至零、SELinuxMount、内存 QoS 等,可能影响现有集群行为。同时弃用 kube-dns、ipvs 模式及 cgroup v1,升级前需评估兼容性。建议关注 release notes 中的弃用说明,并测试关键工作负载。

性能与稳定性增强:watch 缓存与 etcd 流式读取

ResilientWatchCacheInitialization 和 EtcdRangeStream 等特性旨在减少 API 服务器启动和恢复时的 etcd 压力,避免请求堆积。ConcurrentWatchObjectDecode 默认开启,可显著缩短缓存初始化时间。这些改进对大型集群尤其重要,但需注意转换 webhook 的并发负载可能增加。

调度与资源管理:面向 AI/ML 工作负载

Gang 调度、Pod 级资源管理、DRA 增强等特性,旨在提升 AI/ML 和 HPC 工作负载的调度效率与资源利用率。HPA 缩容至零可降低空闲成本,但仅适用于对象或外部指标。Pod 级资源管理可优化 NUMA 对齐,但需启用相应 feature gate。

安全与合规:清单准入控制与不可解密资源清理

清单准入控制允许从磁盘加载准入配置,增强启动时安全并保护准入资源。Beta 支持识别并删除无法解密的资源,避免手动修改 etcd。这些功能有助于提升集群安全性和可管理性,但需注意配置文件的权限控制和变更管理。

Q&A

Kubernetes v1.37 的版本主题是什么?

Kubernetes v1.37 的版本主题是 Garhwal(गढ़वाल),这是印度北阿坎德邦的一个喜马拉雅地区。

Kubernetes v1.37 包含多少项增强?其中稳定、Beta、Alpha 和弃用各有多少?

Kubernetes v1.37 包含 67 项增强,其中 16 项稳定、23 项 Beta、27 项 Alpha 和 1 项弃用。

Kubernetes v1.37 中 HPA 缩容至零功能有什么变化?

HPA 缩容至零功能在 v1.37 中升级为 Beta 并默认启用。它允许基于对象或外部指标的 HPA 在空闲时缩容至零个 Pod,并在需求恢复时重新创建。设置 spec.minReplicas: 0 即可启用。但基于 CPU 和内存指标的缩容至零不支持,因为这些指标依赖活跃 Pod。

Kubernetes v1.37 中清单准入控制是什么?有什么好处?

清单准入控制是 v1.37 的 Beta 功能,允许从磁盘上的清单文件加载准入 webhook 和基于 CEL 的策略,而不是仅通过 Kubernetes API 配置。这样可以在 API 服务器启动时强制执行策略,即使 etcd 不可用也能工作,并能保护基于 API 的准入资源本身不被修改。

Kubernetes v1.37 中 Pod 级检查点恢复是什么?

Pod 级检查点恢复是 v1.37 的 Alpha 功能,通过扩展 CRI 添加 CheckpointPod 和 RestorePod RPC,允许 kubelet 和兼容的容器运行时创建 Pod 检查点并从检查点恢复 Pod。使用此功能需要容器运行时实现这些新的 RPC。

KYAML 在 v1.37 中达到稳定,它是什么?

KYAML 是专为 Kubernetes 设计的更安全、更少歧义的 YAML 子集,不是替代品。每个 KYAML 文件都是有效的 YAML,因此任何版本的 kubectl 都能解析。在 v1.37 中,KYAML 达到稳定,kubectl get -o kyaml 也稳定。现有清单、工具和管道无需更改。

metrics.k8s.io API 在 v1.37 中达到稳定,它有什么作用?

metrics.k8s.io API 在 v1.37 中达到稳定,它提供标准方式获取 Pod 和节点的 CPU 和内存使用情况,支持 HPA 和 kubectl top 等常用功能。v1 版本将逐步取代 v1beta1,但 v1beta1 在过渡期间仍可用。

Kubernetes v1.37 中 SELinux 挂载有什么变化?

SELinuxMount 和 SELinuxChangePolicy 在 v1.37 中达到稳定并默认启用。卷挂载时使用 -o context=<label> 选项,而不是递归重新标记,但仅当 CSI 驱动通过 .spec.seLinuxMount: true 选择加入时。如果 Pod 共享卷但 SELinux 标签不同,可能无法启动,可通过设置 .spec.seLinuxChangePolicy: Recursive 保留旧行为。

Kubernetes v1.37 中 DRA 有哪些稳定功能?

v1.37 中 DRA 的多个功能达到稳定:ResourceClaim 的 .status.devices 允许驱动报告设备状态;DRA 扩展资源支持允许通过传统扩展资源机制请求设备;设备污点和容忍度提供对设备调度的控制;标准 NUMA 节点属性 resource.kubernetes.io/numaNode 统一了设备 NUMA 信息。

Kubernetes v1.37 中存储迁移 API 达到稳定,它有什么用途?

StorageVersionMigration API 在 v1.37 中达到稳定并默认启用。它帮助在 API 升级后将现有资源从旧存储版本迁移到新存储版本,也可用于在加密配置更改后重写数据。用户创建 StorageVersionMigration 对象,内置控制器自动迁移资源。

🏷️

标签

➡️

继续阅读