首页/云/云与容器速查/kubectl diff 预览变更
Kubernetes68 条

kubectl diff 预览变更

在执行前预览 apply 会改什么:输出服务端现状与文件的差异(类 UNIX diff),有差异时退出码为 1;上线前审查变更的主流手段,配合 CI 使用。

云与容器速查云更新于 2026-10-12
用法kubectl diff -f deploy.yaml;支持目录与 -k
输出类似 diff 的 +/‑ 行,含资源 header
退出码0 无差异;1 有差异;>1 出错——CI 里注意语义
对照diff 是『文件 vs 集群』;get -o yaml 是单看现状

使用示例

使用示例
kubectl diff -f deploy.yaml
kubectl diff -k overlays/prod/ | head -80
echo "exit=$?"   # 1 表示存在差异
需要集群版本 ≥1.13 的服务端 diff 支持;老版本可用 dry-run 输出对比替代。

易错点

  • 把 diff 的退出码 1 当失败:CI 判定写错,正常差异被误判为错误
  • 只看 diff 不看控制器默认字段:服务端默认值导致噪声,重点看 spec 变更

数据来源与参考

  • Kubernetes Docs:kubectl diff

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌