我在jenkins中有一个部署阶段,如下所示。
stage('Deploy service to K8S') {
steps {
withDockerContainer(image: "gcr.io/google.com/cloudsdktool/cloud-sdk", toolName: 'latest'){
withCredentials([file(credentialsId: 'jenkins_secret', variable: 'GC_KEY')]) {
sh("HOME=$WORKSPACE gcloud --quiet auth activate-service-account --key-file=${GC_KEY}")
sh("HOME=$WORKSPACE gcloud container clusters get-credentials test --zone us-central1-c --project ${PROJECT_ID}")
sh("kubectl get pods")
}
}
}
}
尽管有 Jenkins (Jenkins)的日志,但显示给我证明成功是成功的。但是kubectl get pods命令失败,并显示以下错误:与服务器localhost:8080的连接被拒绝-您是否指定了正确的主机或端口?
那里有什么问题?
PS我可以在docker内部手动运行它。
最佳答案
我最近遇到了这样的问题,这有所帮助:
GitHub Issue on kubectl
它基本上是由于错误的kubeconfig而失败的。
请检查文件系统中是否没有旧的~/.kube/config
。
如果这仍然不起作用,请尝试显式提供kube api服务器,因为它似乎尝试连接到localhost而不是您的kubectl api服务器:kubectl config set-cluster some-cluster --server=http://master.example.com:8080
关于docker - jenkins管道中docker gcloud容器中的kubectl问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60739835/