在 Linux 上,这很好用(WSL、Ubuntu 18、bash)。它给了我类似于以下的合理输出。
$ kubectl diff --filename some-resources.yaml
diff -u -N /tmp/LIVE-022965340/apps.v1.Deployment.… /tmp/MERGED-396067851/apps.v1.Deployment.…
--- /tmp/LIVE-022965340/apps.v1.Deployment.… 2020-07-20 17:06:21.444811700 +0200
+++ /tmp/MERGED-396067851/apps.v1.Deployment.… 2020-07-20 17:06:21.470315500 +0200
@@ -6,7 +6,7 @@
kubectl.kubernetes.io/last-applied-configuration: |
{"apiVersion":"apps/v1",…
creationTimestamp: "2020-07-16T15:13:03Z"
- generation: 1
+ generation: 2
name: …
namespace: …
resourceVersion: "32827467"
@@ -121,7 +121,7 @@
- chown www-data:www-data /files/ -R;chmod -R 755 /files/; chmod -R g+ws /files/
command:
- /bin/bash
- - -c
+ - -cv
image: …
imagePullPolicy: IfNotPresent
name: init-sites-volume
在 PowerShell 上,kubectl diff
失败(PowerShell 7、Windows 10)。
PS > kubectl diff --filename some-resources.yaml
error: failed to run "diff": executable file not found in %PATH%
似乎要么kubectl
找不到名为 的可执行文件diff
,要么因为它diff
是 的别名而出错Compare-Object
,这当然与 Linux 的语法有很大不同diff
。
是否可以kubectl diff
在 PowerShell 上工作?如果是这样,我应该安装哪个 diff-tool 以及应该$env:KUBECTL_EXTERNAL_DIFF=…
设置什么?
这可以通过安装DiffUtils for Windows来完成。
kubectl diff
正在使用 Unix程序,diff
因此 Windows 需要一些帮助。简单地:安装 DiffUtils
确保 bin 文件夹映射到您的 Win10 PATH 变量中(应该自动完成)
重启机器
请让我知道这是否有帮助。