我们客户的核心团队使用 kubeconfig 和客户端 go 身份验证执行 python 脚本来获取令牌。他们都使用 Mac。我使用带有 mingw64 的 Windows。无论我如何尝试指定该脚本的路径:正斜杠,斜杠之间带有驱动器号或经典 Windows 样式(即使它存在于 PATH 中),即使我将脚本放入与 kube 配置文件相同的目录中并且不指定任何路径,我也会得到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 仍然抱怨它找不到具有该名称的可执行文件。
另外,顺便提一下,如果您使用 Windows 环境变量(如%userprofile%
在 kubeconfig 中),则需要在单引号内引用它们。