Powershell
PowerShell 上的 kubectl 差異?
在 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 變數中(應該自動完成)
- 重啟機器
請讓我知道這是否有幫助。