Проблема с kubectl внутри контейнера docker gcloud в конвейере jenkins - PullRequest
2 голосов
/ 18 марта 2020

У меня есть этап развертывания в Дженкинсе, как показано ниже.

 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")

               }
            }
        }
    } 

Несмотря на то, что журналы Дженкинса показывают мне, что аутентификация прошла успешно. Но команды kubectl get pods не работают с этой ошибкой: было отказано в соединении с сервером localhost: 8080 - вы указали правильный хост или порт?

В чем может быть проблема?

PS Я могу запустить его внутри docker вручную.

1 Ответ

1 голос
/ 18 марта 2020

Недавно я столкнулся с такой проблемой, и это помогло: Проблема GitHub на kubectl

В основном это происходит из-за неправильного kubeconfig. Пожалуйста, проверьте, что у вас нет старой ~/.kube/config в вашей файловой системе.

Если это также не работает, пожалуйста, попробуйте явно дать серверу kube api, поскольку он пытается подключиться к localhost, а не к вашему серверу kubectl api:

kubectl config set-cluster some-cluster --server=http://master.example.com:8080

...