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