Kubernetes 在 jenkins 管道内失败

时间:2021-06-30 02:16:26

标签: jenkins kubernetes jenkins-pipeline

我正在尝试在 jenkins 管道内运行 kubectl 命令,但它们失败了。在 powershell 窗口之外,它们工作正常,但在管道中,它们在执行时显示:

kubectl cluster-info --v=99

enter image description here

我尝试按照其他线程的建议添加 --token $TOKEN(生成的 jwt),但没有成功。任何人都知道为什么会发生这种情况以及任何绕过它的方法?当在 jenkins 管道之外运行时,所有这些命令都可以正常工作。

1 个答案:

答案 0 :(得分:0)

问题是 jenkins 实际上使用了不同的主目录,因此即使您的 kubectl 在命令行中工作,如果 jenkins 从管道运行它,它也不会运行,因为它无法访问来自用户目录的凭据.

因此找到您的 .kube 配置文件夹,通常在 C:/users/ 中,然后将该文件夹复制并粘贴到 $JENKINS_HOME 目录中。 jenkins 主目录可能因您的安装方式而异(对于 Windows 安装程序,它被放置在 System32 内的一个不起眼的位置)。完成后,jenkins 将有权访问您在本机运行 kubectl 命令时使用的相同证书,并且将拥有完全访问权限。