在 Windows 10 上找不到 kubernetes client-go 外掛程式 exec 指令

在 Windows 10 上找不到 kubernetes client-go 外掛程式 exec 指令

我們客戶的核心團隊使用 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

Kubernetes client-go 已經有了使用 kubeconfig 進行身份驗證的輔助方法。它包含兩個帶有很好示例的變體:

我建議使用兩個內建的輔助方法,而不是滾動自訂變體。您可能想要新增一個參數,以便可以在兩者之間切換,例如,在 Windows 上本地運行時使用叢集外,而當應用程式(如果您的程式碼是應用程式?)作為服務運行時使用叢集內在集群中。

答案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 環境變量,則需要在單引號內引用它們。

相關內容