我們客戶的核心團隊使用 kubeconfig 和 client-go 驗證執行 python 腳本來取得令牌。他們都使用 Mac。我使用 Windows 和 mingw64。無論我如何嘗試指定該腳本的路徑:斜杠之間帶有驅動器號的正斜杠或經典Windows 樣式(即使它存在於PATH 中),即使我將腳本放入與kube 配置文件相同的目錄中並且不這樣做t 指定任何路徑,我得到Unable to connect to the server: getting credentials: exec: executable <our script name> not found
。我可以執行這個腳本,而無需從 CLI 指定它的路徑。我只是想嘗試一下kubectl get pods
。相關user:
片段:
- name: someName
user:
exec:
apiVersion: client.authentication.k8s.io/v1beta1
args:
- --creds
- '%userprofile%\path\to\credentials.properties'
command: path\to\script
env: null
問題:如何在 Windows 中的 kubeconfig 的 exec 部分指定執行檔?
答案1
答案2
關於在 Windows 下使用 kubeconfig 的文檔很少,因此經過大量試驗和錯誤以及 @mdaniel 評論的一些幫助,我想出了以下解決方案:
我建立了一個 Windows 批次文件,其中包含一行: 並在下方@python <path-to-script> %*
引用了該文件的完整路徑。command:
exec:
我必須使用,%*
因為 python 腳本需要參數。
@
阻止 Windows 在執行批次處理時在控制台中回顯此命令。
我做不到,command: <path-to-python>\python <path-to-script>
因為 kubernetes 仍然抱怨它找不到具有該名稱的可執行檔。
另外,作為旁注,如果您像%userprofile%
在 kubeconfig 中一樣使用 Windows 環境變量,則需要在單引號內引用它們。