【问题标题】:nullpointer exception while deploying via kubernetes plugin in jenkins通过 jenkins 中的 kubernetes 插件部署时出现空指针异常
【发布时间】:2020-10-04 04:28:51
【问题描述】:

我们正在使用 Google kubernetes engine-plugin- 0.8.1 for Jenkins 通过 yaml 文件部署应用程序,奇怪的是,当我们使用 python 开发应用程序时,我们遇到了 java 异常。 以下是详细的错误信息:

java.lang.NullPointerException
    at com.google.jenkins.plugins.k8sengine.Manifests$ManifestObject.addLabel(Manifests.java:114)
    at com.google.jenkins.plugins.k8sengine.KubernetesEngineBuilder.addMetricsLabel(KubernetesEngineBuilder.java:303)
    at com.google.jenkins.plugins.k8sengine.KubernetesEngineBuilder.perform(KubernetesEngineBuilder.java:266)
    at org.jenkinsci.plugins.workflow.steps.CoreStep$Execution.run(CoreStep.java:80)
    at org.jenkinsci.plugins.workflow.steps.CoreStep$Execution.run(CoreStep.java:67)
    at org.jenkinsci.plugins.workflow.steps.SynchronousNonBlockingStepExecution.lambda$start$0(SynchronousNonBlockingStepExecution.java:47)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)
Finished: FAILURE

请注意,构建 Docker 映像步骤并将其推送到 DockerHub 工作正常,正如在 jenkinsfile 中声明的那样,以下是我的 Jenkinsfile,其中正在部署到 kubernetes 集群。

stage("Step 3: Deploy BUILT artifacts to K8"){
            steps{
                step([$class: 'KubernetesEngineBuilder', projectId: env.PROJECT_ID, clusterName: env.CLUSTER_NAME, location: env.LOCATION, manifestPattern: 'configmap-staging.yaml', credentialsId: env.CREDENTIALS_ID, verifyDeployments: true])
                step([$class: 'KubernetesEngineBuilder', projectId: env.PROJECT_ID, clusterName: env.CLUSTER_NAME, location: env.LOCATION, manifestPattern: 'deployment.yaml', credentialsId: env.CREDENTIALS_ID, verifyDeployments: true])
            }

非常感谢任何帮助,因为这是我们第一次开始实施 CI/CD。

【问题讨论】:

  • 您没有指定您正在使用的插件版本,也没有指定您是实际部署到 GKE 还是只是蹲在他们的插件上,但抛开这些假设,似乎无法@ 987654321@;你最好的选择是work with their GitHub issues,因为他们似乎有 NPE 问题
  • 感谢您的回复,@mdaniel 插件版本是 0.8.1,我们实际上正在将 docker app 部署到 gke。
  • 0.8.1 不存在(并且会使用多年)看起来您正在使用 google-kubernetes-engine-plugin github.com/jenkinsci/google-kubernetes-engine-plugin
  • 是的,我使用的是 google kubernetes 插件,我在问题中进行了更正,谢谢。

标签: jenkins kubernetes google-cloud-platform jenkins-plugins


【解决方案1】:

不确定你是否解决了这个问题。我之前遇到过这个问题,请检查您的 YAML 文件。

我在 YAML 文件末尾留下了一个 ---,这会导致 Jenkins 出现此类错误。删除最后一个 --- 清除错误。

apiVersion: batch/v1beta1
kind: CronJob
metadata:
  ...
spec:
  ...

---

apiVersion: batch/v1beta1
kind: CronJob
metadata:
  ...
spec:
  ...

---  # <-- remove it

注意:当您执行独立的“kubectl apply ...”时,结尾的--- 将被忽略

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-12-04
    • 1970-01-01
    • 2013-10-29
    • 2021-10-30
    • 1970-01-01
    • 2023-04-06
    • 2011-10-07
    • 1970-01-01
    相关资源
    最近更新 更多