ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

9.4 优雅发布:Pod 资源原地更新原理与生产实践

2026/8/5 20:14:00 拓冰建站 浏览量
9.4 优雅发布:Pod 资源原地更新原理与生产实践

9.4 优雅发布:Pod 资源原地更新原理与生产实践

1. 引言:传统更新的痛点

在 Kubernetes 中,更新 Pod 的资源配额(如 CPU、Memory)通常需要:

  1. 修改 Deployment 的resources
  2. 删除旧 Pod
  3. 创建新 Pod
  4. 新 Pod 通过 Readiness Probe 后接收流量

这个过程叫Recreate(重建)

问题

  • 服务中断:删除 Pod 到新 Pod 就绪之间有间隙
  • 数据丢失:如果 Pod 有本地状态,会丢失
  • 启动慢:新 Pod 需要重新初始化(如连接池、缓存)

解决方案原地更新(In-Place Update)


2. 原地更新的原理

2.1 什么是原地更新?

原地更新是指:在不删除 Pod 的情况下,直接修改 Pod 的资源配额

传统方式

Pod A (CPU: 500m) -> 删除 -> Pod B (CPU: 1000m)

原地更新

Pod A (CPU: 500m) -> 直接修改 -> Pod A (CPU: 1000m)

2.2 技术实现

Kubernetes 1.27+ 支持Pod 原地更新,通过kubectl patch或更新 Deployment 的resources,Kubelet 会:

  1. 更新 Cgroup 的资源限制
  2. 不重启容器
  3. 不中断服务

3. 实战:原地更新资源配额

3.1 初始状态

apiVersion:apps/v1kind:Deploymentmetadata: