首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >kubernetes client-go plugin exec命令在Windows 10中找不到

kubernetes client-go plugin exec命令在Windows 10中找不到
EN

Server Fault用户
提问于 2020-12-30 14:44:41
回答 2查看 9K关注 0票数 3

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

代码语言:javascript
复制
- 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部分指定可执行文件?

EN

回答 2

Server Fault用户

回答已采纳

发布于 2021-01-05 12:29:21

关于在Windows下使用kubeconfig的文档很少,因此,通过大量的尝试和错误以及@mdaniel的评论,我想出了以下解决方案:

我创建了一个Windows批处理文件,其中包含一行:@python <path-to-script> %*,并在command:中引用了exec:下的完整路径。

我不得不使用%*,因为python脚本接受参数。

@防止Windows在运行批处理时在控制台中回显此命令。

我无法执行command: <path-to-python>\python <path-to-script>,因为kubernetes仍然抱怨它找不到具有这样名称的可执行文件。

另外,如果您在kubeconfig中使用诸如%userprofile%这样的Windows环境变量,则需要在单引号中引用它们。

票数 2
EN

Server Fault用户

发布于 2020-12-30 23:10:37

Kubernetes客户端-go已经有了使用kubeconfig进行身份验证的辅助方法。它包含两个变体,并有很好的例子:

我建议使用两个内置的助手方法,而不是滚动自定义的变体。您可能需要添加一个参数,以便在两者之间进行切换,例如,在Windows上本地运行时使用out集群,在应用程序(如果您的代码是应用程序的话)中使用集群内?作为群集中的服务运行。

票数 2
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/1048051

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档