简介
对比当前在线配置与通过文件名或标准输入所指定的配置之间的差异,并显示如果应用配置后将会如何变化。
输出始终是 YAML。
KUBECTL_EXTERNAL_DIFF 环境变量可用于选择你自己的 diff 命令。 用户也可以使用带参数的外部命令,例如:
KUBECTL_EXTERNAL_DIFF="colordiff -N -u"
默认情况下,路径中可用的 "diff" 命令在运行时会附带 "-u"(统一差异)和 "-N"(将缺失的文件视为空)选项。
退出状态:0 表示未发现差异。1 表示发现差异。>1 表示 kubectl 或 diff 发生错误。
注意:如果使用 KUBECTL_EXTERNAL_DIFF,则需要遵循该约定。
kubectl diff -f FILENAME
示例
# 对比 pod.json 中包含的资源
kubectl diff -f pod.json
# 对比从标准输入读取到的文件
cat service.yaml | kubectl diff -f -
选项
--concurrency int 默认值:1 | |
在与当前版本进行差异比较时并行处理的对象的数量。 数量越多,速度越快,但在短时间内会消耗更多的内存、I/O 和 CPU 等资源。 | |
--field-manager string 默认值:"kubectl-client-side-apply" | |
用于跟踪字段属主关系的管理器的名称。 | |
-f, --filename strings | |
包含 diff 操作所用配置的文件名、目录或指向文件的 URL。 | |
--force-conflicts | |
如果为 true,服务器端应用将基于冲突强制进行更改。 | |
-h, --help | |
diff 操作的帮助命令。 | |
-k, --kustomize string | |
处理 kustomization 目录。此标志不能与 -f 或 -R 一起使用。 | |
--prune | |
包含将通过裁剪操作被删除的资源。可以与 -l 一起使用,默认显示所有将被裁剪的资源。 | |
--prune-allowlist strings | |
使用 <group/version/kind> 覆写默认的允许列表以执行 --prune 操作。 | |
-R, --recursive | |
以递归方式处理以 -f 或 --filename 指定的目录。当你希望管理在同一目录中组织的相关清单时,这很有用。 | |
-l, --selector string | |
过滤所用的选择算符(标签查询),支持 '='、'==' 和 '!='。 (例如 -l key1=value1,key2=value2)。匹配的对象必须满足所有指定的标签约束。 | |
--server-side | |
如果为 true,应用操作将在服务器上运行,而不是在客户端运行。 | |
--show-managed-fields | |
如果为 true,则在 diff 中包含托管的字段。 |
Options inherited from parent commands
--as string | |
操作所用的伪装用户名。用户可以是常规用户或命名空间中的服务账号。 | |
--as-group strings | |
操作所用的伪装用户组,此标志可以被重复设置以指定多个组。 | |
--as-uid string | |
操作所用的伪装 UID。 | |
--cache-dir string 默认值:"$HOME/.kube/cache" | |
默认缓存目录。 | |
--certificate-authority string | |
证书机构的证书文件的路径。 | |
--client-certificate string | |
TLS 客户端证书文件的路径。 | |
--client-key string | |
TLS 客户端密钥文件的路径。 | |
--cluster string | |
要使用的 kubeconfig 中的集群名称。 | |
--context string | |
要使用的 kubeconfig 上下文的名称。 | |
--default-not-ready-toleration-seconds int 默认值:300 | |
设置针对 notReady:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。 | |
--default-unreachable-toleration-seconds int 默认值:300 | |
设置针对 unreachable:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。 | |
--disable-compression | |
如果为 true,则对服务器所有请求的响应不再压缩。 | |
--insecure-skip-tls-verify | |
如果为 true,则不检查服务器证书的有效性。这将使你的 HTTPS 连接不安全。 | |
--kubeconfig string | |
CLI 请求要使用的 kubeconfig 文件的路径。 | |
--match-server-version | |
要求服务器版本与客户端版本匹配。 | |
-n, --namespace string | |
如果存在,则是此 CLI 请求的命名空间范围。 | |
--password string | |
向 API 服务器进行基本身份认证所用的密码。 | |
--profile string 默认值:"none" | |
要记录的性能分析信息。可选值为(none|cpu|heap|goroutine|threadcreate|block|mutex)。 | |
--profile-output string 默认值:"profile.pprof" | |
性能分析信息要写入的目标文件的名称。 | |
--request-timeout string 默认值:"0" | |
在放弃某个服务器请求之前等待的时长。非零值应包含相应的时间单位(例如 1s、2m、3h)。 值为零表示请求不会超时。 | |
-s, --server string | |
Kubernetes API 服务器的地址和端口。 | |
--storage-driver-buffer-duration duration 默认值:1m0s | |
对存储驱动的写入操作将被缓存的时长;缓存的操作会作为一个事务提交给非内存后端。 | |
--storage-driver-db string 默认值:"cadvisor" | |
数据库名称。 | |
--storage-driver-host string 默认值:"localhost:8086" | |
数据库 host:port | |
--storage-driver-password string 默认值:"root" | |
数据库密码。 | |
--storage-driver-secure | |
使用与数据库的安全连接。 | |
--storage-driver-table string 默认值:"stats" | |
表名。 | |
--storage-driver-user string 默认值:"root" | |
数据库用户名。 | |
--tls-server-name string | |
服务器证书验证所用的服务器名称。如果未提供,则使用与服务器通信所用的主机名。 | |
--token string | |
向 API 服务器进行身份认证的持有者令牌。 | |
--user string | |
要使用的 kubeconfig 用户的名称。 | |
--username string | |
向 API 服务器进行基本身份认证时所用的用户名。 | |
--version version[=true] | |
--version, --version=raw 打印版本信息并退出;--version=vX.Y.Z... 设置报告的版本。 | |
--warnings-as-errors | |
将从服务器收到的警告视为错误,并以非零退出码退出。 |
另请参见
- kubectl - kubectl 控制 Kubernetes 集群管理器