华为云鲲鹏服务器部署Java踩坑记

不止dotNET

共 1752字,需浏览 4分钟

 · 2022-01-22

f05bbed6c8191a1595ac580b32c250fa.webp

之前跟华为云的技术人员沟通,他们说在鲲鹏服务器上构建部署对微软的 dotNET 支持不是很好,建议使用 Java ,我们程序现在是混合模式 dotNET 和 Java 都有。让我没想到的是 dotNET 的构建部署很顺利,反倒是 Java 的部署遇到了些问题。

现象是 CCE 中的工作负载提示异常,应用不能正常访问,查看了容器日志,如下图:

54c95ea5c4752d43670c8497e024d9cc.webp

最终查出的原因是基础镜像使用错误,因之前跟华为技术人员沟通得知鲲鹏服务器只支持 openjdk ,并且鲲鹏服务器是 arm 芯片,所以就找到了 arm64v8/openjdk 的基础镜像, arm64v8 下只有一个 openjdk 的镜像,这个镜像中的 Java version 是 17 ,我们使用的 Java 的版本是 8 ,就导致了不兼容。

正确在华为云鲲鹏服务器构建一个 Java 的 Spring Boot 项目的步骤如下:

1、构建一个基础镜像推送到华为云的私有镜像仓库,ssh 进入任意一台 ECS 服务器,执行下面命令:


docker pull adoptopenjdk/openjdk8
## 登镜像仓库
docker login -u cn-north-
4@89VUVGA2PF5XSHSM6YB4 -p 40d6f47154ef844717e9acc4cc3240e2dfeb900b149058e60a3f6fa598fb1 swr.cn-north-5.myhuaweicloud.com
docker tag adoptopenjdk/openjdk8  swr.cn-north-
5.myhuaweicloud.com/xxx/openjdk:latest
docker push swr.cn-north-
5.myhuaweicloud.com/xxx/openjdk:latest

注意:docker pull 的镜像为 adoptopenjdk/openjdk8 ,这是 Java 8 的 openjdk 版本。值得一提的是这个镜像并非是 arm 的镜像,但依然可以用,只需要在创建构建任务的时候,指定是鲲鹏服务器就可以

1ca77e9ed4bf835e8c8155f2e73513d7.webp

2、创建一个 Spring Boot 项目,根目录下创建 Dcokerfile 文件,内容如下:

FROM swr.cn-north-5.myhuaweicloud.com/xxx/openjdk:latest

ENV PARAMS=""

ENV TZ=PRC

ADD Java-Test-SNAPSHOT.jar /Java-Test-SNAPSHOT.jar

ENTRYPOINT ["sh","-c","java -jar /Java-Test-SNAPSHOT.jar  $PARAMS"]

3、创建构建任务,这一步骤可以参考《华为云服务器初探二(完结)》中的描述;

4、在 CCE 中创建无状态负载,需要手动添加环境变量 PARAMS ,如下图:

e1cc47e01476f09203e1bb2187ed8ad8.webp

如果直接使用 docker run 命令创建容器,命令如下:

docker run -d -p 9214:9214 -e PARAMS='--spring.profiles.active=dev -server.port=9214' --name java-test  swr.cn-north-5.myhuaweicloud.com/xxx/openjdk:latest

可以看到上面 PARAMS 后面的值是加了单引号的,这个参数值在 CCE 的环境变量设置的时候需要去掉单引号,否则容器也不能正常启动

5、工作负载搞定,剩下的构建、部署、流水线和前面文章中的类似。

最后的一点思考:

像我遇到的这种问题,为什么在官网文档中没有提及呢?我觉得一个重要的原因是,写文档的人存在知识的诅咒,会认为很多基础知识大家应该都会。出发点是自己的角度,而不是从用户的角度。

我这篇文档也是一样,因为是踩坑记录,所以已经假设你在使用华为云鲲鹏服务器,并且能较熟练操作,否则可能也是一头雾水。

但如果是写一些基础文档或教程,还是要站在读者(用户)的角度去想,把他们当成是小白,写出的东西用处会更大。

相关阅读:

华为云服务器部署初探二(完结)

华为云服务器部署初探

浏览 192
点赞
评论
收藏
分享

手机扫一扫分享

举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

举报