首页/云/Kubernetes 速查/kubectl patch 局部修改资源
kubectl 基础56 条

kubectl patch 局部修改资源

不重写整个清单,只提交差异字段:默认 strategic merge(对象合并),也可用 --type=json 做精确路径操作。

Kubernetes 速查云更新于 2026-10-12
用途对现网资源做最小化字段修改
语法kubectl patch <资源> <名称> -p '<补丁>' [--type=...]

常用示例

常用示例
kubectl patch deploy web -p '{"spec":{"replicas":3}}'
kubectl patch svc web --type=json -p='[{"op":"replace","path":"/spec/sessionAffinity","value":"ClientIP"}]'
kubectl patch node node-1 --type=merge -p '{"metadata":{"labels":{"disktype":"ssd"}}}'

补丁类型

补丁类型
strategic(默认):按字段语义合并,列表可按 name 键合并
json:RFC 6902 操作序列(add/remove/replace)
merge:RFC 7386 简单合并,列表整体替换
JSON patch 中 replace 要求路径必须已存在,新增字段用 add;写路径前先用 kubectl get -o yaml 确认层级。

易错点

  • 列表字段用 merge patch 会整体替换:改容器 env 请用 strategic merge 或 JSON patch 精确到下标
  • patch 修改的是现网对象,下次 apply 可能被清单覆盖,长期配置应回写到 Git 清单

数据来源与参考

  • Kubernetes 官方文档 · kubectl patch / Update API Objects in Place
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌