Windows 10 上未找到 kubernetes client-go 插件 exec 命令

Windows 10 上未找到 kubernetes client-go 插件 exec 命令

我们客户的核心团队使用 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

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 仍然抱怨它找不到具有该名称的可执行文件。

另外,顺便提一下,如果您使用 Windows 环境变量(如%userprofile%在 kubeconfig 中),则需要在单引号内引用它们。

相关内容