我正在尝试在 jenkins 管道内运行 kubectl 命令,但它们失败了。在 powershell 窗口之外,它们工作正常,但在管道中,它们在执行时显示:
kubectl cluster-info --v=99
我尝试按照其他线程的建议添加 --token $TOKEN(生成的 jwt),但没有成功。任何人都知道为什么会发生这种情况以及任何绕过它的方法?当在 jenkins 管道之外运行时,所有这些命令都可以正常工作。
答案 0 :(得分:0)
问题是 jenkins 实际上使用了不同的主目录,因此即使您的 kubectl 在命令行中工作,如果 jenkins 从管道运行它,它也不会运行,因为它无法访问来自用户目录的凭据.
因此找到您的 .kube 配置文件夹,通常在 C:/users/ 中,然后将该文件夹复制并粘贴到 $JENKINS_HOME 目录中。 jenkins 主目录可能因您的安装方式而异(对于 Windows 安装程序,它被放置在 System32 内的一个不起眼的位置)。完成后,jenkins 将有权访问您在本机运行 kubectl 命令时使用的相同证书,并且将拥有完全访问权限。