Jenkins pipeline: kubectl: not found



我有以下 Jenkinsfile:

node {
stage('Apply Kubernetes files') {
withKubeConfig([credentialsId: 'jenkins-deployer', serverUrl: 'https://192.168.64.2:8443']) {
sh 'kubectl apply -f '
}
}
}

在运行它时,我得到了"kubectl:未找到"。我将 Kubernetes-cli 插件安装到 Jenkins,通过kubectl create sa jenkins-deployer生成密钥。这是怎么回事?

我知道这是一个相当古老的问题,但我决定描述一个简单的解决方法,可能会有所帮助.
要使用 Kubernetes CLI 插件,我们需要安装一个kubectl的执行器。

获得kubectl的一种可能方法是将其安装在 Jenkins 管道中,如下面的截图所示:
注意:我正在使用./kubectl get pods列出默认命名空间中的所有 Pod。此外,您可能需要更改kubectl版本 (v1.20.5(。

node {
stage('List pods') {
withKubeConfig([credentialsId: 'kubernetes-config']) {
sh 'curl -LO "https://storage.googleapis.com/kubernetes-release/release/v1.20.5/bin/linux/amd64/kubectl"'  
sh 'chmod u+x ./kubectl'  
sh './kubectl get pods'
}
}
}

因此,在控制台输出中,我们可以看到它按预期工作:

curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.20.5/bin/linux/amd64/kubectl
...
[Pipeline] sh
+ chmod u+x ./kubectl
[Pipeline] sh
+ ./kubectl get pods
NAME            READY   STATUS    RESTARTS   AGE
default-zhxwb   1/1     Running   0          34s
my-jenkins-0    2/2     Running   0          134m

您可以从shellscript步骤调用kubectl。为了能够做到这一点,执行构建的代理(节点(需要将 kubectl 作为可执行文件提供。

相关内容

  • 没有找到相关文章

最新更新