docker - jenkins管道中docker gcloud容器中的kubectl问题

标签 docker jenkins kubernetes google-kubernetes-engine gcloud

我在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/

相关文章:

email - 如何在 Jenkins 中设置发件人地址?

Kubernetes:单 POD 多容器,或多 Pod 单容器

azure - 连接到 AKS 节点的磁盘过多

Jenkins - 如何在 Gerrit 补丁集上显示下游作业构建结果?

kubernetes - 网络负载均衡器如何与 Kubernetes (AWS/EKS) 中的入口 Controller 配合使用?

Docker 与共享 Windows 文件夹

docker - ubuntu docker容器中的可用软件包版本根据主机操作系统而变化

python - 当我通过管道使用 sh ( echo "docker-compose"| sh ) 时出现 "docker-compose... "错误

postgresql - 如何使用 Docker/Kubernetes 为 PostgreSQL 故障转移集群建模?

maven - 在哪里保存 Windows 上运行的 Jenkins 的 GPG key ?