Kubernetes 1.33 升级指南:核心特性与重点注意事项

2 分钟阅读
224 字
Huxulm

Kubernetes v1.33 已经发布,代号 Octarine(魔法之色)。本文总结了从 v1.32 升级到 v1.33 的核心注意事项、功能变更以及废弃提醒。

Kubernetes v1.33 延续了其稳健演进的步伐,包含 18 项稳定特性、20 项 Beta 特性。对于运维和架构师而言,本次版本(Octarine)不仅带来了期待已久的 Pod 原地扩容等重磅 Beta 功能,也正式对一些历史包袱(如 Endpoints API)挥手作别。

如果你正计划将集群从 v1.32 升级至 v1.33,以下是必须关注的“避坑指南”。

⚠️ 核心注意事项与重大变更

1. Endpoints API 正式废弃

这是本次版本最显著的信号。虽然 v1.Endpoints 资源不会立即消失,但它已正式标记为废弃 (Deprecated)

  • 影响: API Server 会在读写 Endpoints 时返回警告。
  • 建议: 检查你的控制器、脚本或监控工具,尽快迁移到 EndpointSlices。EndpointSlices 提供了更好的可扩展性和双栈网络支持,特别是在后端 Pod 数量较多的场景下性能优势明显。

2. Node Status 中移除 kubeProxyVersion

在之前的版本中,Kubelet 会设置 status.nodeInfo.kubeProxyVersion,但这个字段长期以来并不能准确反映实际运行的 kube-proxy 版本。

  • 变更: v1.33 彻底移除了该字段。
  • 影响: 如果你的监控面板(Grafana)或自动化脚本依赖此字段来校验组件一致性,升级后这些逻辑将失效,请改用其他方式获取组件版本。

3. Windows Pod 不再支持 Host Network

  • 变更: 由于底层容器运行时(containerd)的行为一致性问题,Kubernetes 撤回了对 Windows Pod 使用主机网络的支持。
  • 建议: 依赖此特性的 Windows 工作负载需要寻找替代的网络方案。

🚀 令人兴奋的新特性

1. Pod 原地扩容 (In-Place Pod Vertical Scaling) 进入 Beta

这是 v1.33 的头号明星功能。

  • 亮点: 现在你可以在不重启 Pod 的情况下调整其 CPU 和内存限制。通过 Patch Pod 的 resources 并结合新的 resize 子资源,Pod 可以动态适配负载。
  • 默认启用: 作为一个 Beta 特性,它在 v1.33 中默认开启。对于有状态服务(如数据库)来说,这极大地减少了因资源扩缩容带来的业务中断。

2. Sidecar 容器正式迈入 Stable (GA)

自 v1.29 引入 Alpha 以来,Sidecar 容器(作为 initContainers 的特殊形式,设置 restartPolicy: Always)终于稳定。

  • 意义: 它们会在应用容器之前启动,并随 Pod 整个生命周期运行,在应用容器退出后自动终止。Istio、Linkerd 等 Mesh 用户的体验将大幅提升。

3. Linux 用户命名空间 (User Namespaces) 默认启用

  • 安全性提升: 该特性现在默认开启。通过将容器内的 UID/GID 映射到宿主机上的非特权 ID,极大增强了 Pod 的安全隔离,即使容器被攻破,攻击者也难以获得宿主机的 Root 权限。

4. Job API 增强

  • Indexed Job 成功策略: 现在可以为索引 Job 定义自定义成功规则(如只需 80% 的 Index 成功即可认为 Job 完成)。
  • 每个 Index 的独立重试上限: 避免了单个分片失败导致整个 Job 被提前终止的问题。

🛠 升级前的 Checklist

  1. 检查第三方 Cloud Provider 标志: v1.33 继续清理 In-tree 云厂商代码,--cloud-provider--cloud-config 标志在 kubeletkube-apiserver 中被进一步限制或移除,请确保已迁移到外部 (External) Cloud Controller Manager。

  2. 验证 Cgroup v2 兼容性: v1.33 的系统校验器更新了对 Cgroup v2 的逻辑。如果你的底层系统配置不当,升级过程中 kubelet 可能会报错。

  3. Kubectl 配置文件 .kuberc 新版本引入了 .kuberc 文件支持(Alpha),允许用户持久化配置 kubectl 偏好设置。升级后可以尝试此新功能提升开发体验。

结语

Kubernetes v1.33 是一个“稳中求变”的版本。对于大多数用户来说,Endpoints 废弃是需要排查的首要任务,而 Pod 原地扩容则是值得立即上手的利器。

准备好升级了吗?别忘了先在测试环境验证你的 EndpointSlice 兼容性!


参考链接: