【发布时间】:2021-03-18 18:38:35
【问题描述】:
我正在尝试通过以下命令使用JKube 生成我的 Kubernetes 清单(deployment.yml 和 service.yml):mvn k8s:resource
但是我收到了这个错误:
[INFO] Scanning for projects...
[INFO]
[INFO] -------------------< io.social.carpooling:trips-api >-------------------
[INFO] Building trips-api 0.0.1-SNAPSHOT
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- kubernetes-maven-plugin:1.1.1:resource (default-cli) @ trips-api ---
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 4.979 s
[INFO] Finished at: 2021-03-18T19:11:24+01:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.eclipse.jkube:kubernetes-maven-plugin:1.1.1:resource (default-cli) on project trips-api: Execution default-cli of goal org.eclipse.jkube:kubernetes-maven-plugin:1.1.1:resource failed.: NullPointerException -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/PluginExecutionException
这是我的pom.xml 的样子:
<properties>
...
<jkube.version>1.1.1</jkube.version>
<jkube.generator.name>my-dockerhub-username/${project.artifactId}:${project.version}</jkube.generator.name>
...
</properties>
...
<plugin>
<groupId>org.eclipse.jkube</groupId>
<artifactId>kubernetes-maven-plugin</artifactId>
<version>${jkube.version}</version>
<configuration>
<images>
<image>
<name>my-dockerhub-username/${project.artifactId}:${project.version}</name>
</image>
</images>
</configuration>
</plugin>
我尝试使用插件文档获取更多详细信息,但没有找到太多信息。 有没有人成功生成 yaml 文件并部署到 Kubernetes 集群。
【问题讨论】:
-
能否请您删除
<images>部分并重试?我认为这是由没有<build>配置的<image>字段引起的。这是一个错误,我们应该修复这个 NPE -
它不允许我重命名生成的 Docker 映像。奇怪的是,当我输入:
<jkube.generator.name>docker.io/ghassenkhalil/${project.artifactId}:${project.version}</jkube.generator.name>k8s:build在target/docker/carpooling/trips-api下生成并且图像被标记为carpooing/trips-api:latest instead of ghassenkhalil/trips-api等等时,当我执行mvn k8s:push时,我得到:Error while trying to push the image: Unable to push 'carpooling/trips-api:latest' : denied: requested access to the resource is denied,因为carpooling/不是正确的路径 -
你有一些我可以尝试的复制器项目吗?
-
@RohanKumar 这里是复制器项目的链接:github.com/ghassen1khalil/jkube-error-reproducer
-
您好,我试用了您的复制器,但无法复制 NullPointerException。我可以看到
Deployment正在生成,但没有Service。我注意到您的Dockerfile中没有EXPOSE语句。您没有在 Docker 映像中公开任何端口,这就是 jkube 没有创建任何服务的原因
标签: java kubernetes nullpointerexception maven-plugin jkube