经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » Java相关 » Spring Boot » 查看文章
k8s部署springboot
来源:cnblogs  作者:tiandizhiguai  时间:2023/7/5 9:28:40  对本文有异议

综述

首先介绍发布步骤。

1.从代码仓库下载代码,比如GitLab;

2.接着是进行打包,比如使用Maven;

3.编写Dockerfile文件,把步骤2产生的包制作成镜像;

4.上传步骤3的镜像到远程仓库,比如Harhor;

5.编写Deployment文件;

6.提交Deployment文件到k8s集群;

从以上步骤可以看出,发布需要的工具和环境至少包括:代码仓库(GitLab)、打包环境(Maven)、镜像制作(Docker)、镜像仓库(Harbor)、k8s集群等。
当前,也可以借助一些开源的工具或平台来发布应用,比如:Jenkins、https://github.com/512team/dhorse等。

发布过程

假如有一个名为springboot的SpringBoot应用,服务端口是8080,并且有一个/hello接口,下面详细介绍发布过程。

打包

这里直接从GitLab下载到本地,执行maven打包命令,这里打为Jar包:

  1. mvn clean package

生成的包为:springboot-1.0.0.jar

制作镜像

以下步骤在具有Docker环境的Linux机器上操作。

  1. 把springboot-1.0.0.jar放到/usr/local/springboot目录下,并在该目录下创建Dockerfile文件,内容为:
  1. FROM openjdk:8-jdk-alpine
  2. ADD springboot-1.0.0.jar /usr/local/springboot.jar
  3. ENTRYPOINT ["java", "-jar", "/usr/local/springboot.jar"]

则/usr/local/springboot目录的文件为:

  1. -rw-r--r-- 1 root root 119 Feb 22 17:50 Dockerfile
  2. -rw-r--r-- 1 root root 21863457 Feb 22 17:07 springboot-1.0.0.jar
  1. 制作镜像,在/usr/local/springboot目录下执行命令:
  1. docker build -t 192.0.10.22:20080/dhorse/springboot:1.0.0 .

其中,192.0.10.22:20080是Harbor镜像仓库地址,dhorse是项目名。

  1. 登录仓库并上传镜像
  1. docker login 192.0.10.22:20080 -u admin -p Harbor12345
  2. docker push 192.0.10.22:20080/dhorse/springboot:1.0.0

编写Deployment文件

创建springboot-k8s.yml文件,内容如下:

  1. apiVersion: apps/v1
  2. kind: Deployment
  3. metadata:
  4. name: springboot
  5. labels:
  6. app: springboot
  7. spec:
  8. replicas: 1
  9. selector:
  10. matchLabels:
  11. app: springboot
  12. template:
  13. metadata:
  14. labels:
  15. app: springboot
  16. spec:
  17. containers:
  18. - name: springboot
  19. image: 192.0.10.22:20080/dhorse/springboot:1.0.0
  20. imagePullPolicy: Always

部署应用

以下操作在k8s集群的mater机器上执行。

把springboot-k8s.yml文件复制/user/local目录下,并在当前目录执行如下命令:

  1. kubectl apply -f springboot-k8s.yml

稍后,再执行如下命令:

  1. kubectl get pods -o wide

输出结果如下:

  1. NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
  2. springboot-79d56dc985-7dz6q 1/1 Running 0 8s 10.32.1.180 centos06 <none> <none>

然后访问/hello接口:

  1. curl http://10.32.1.180:8080/hello

推荐一个不错的部署应用的工具,https://gitee.com/i512team/dhorse

至此,发布结束。

原文链接:https://www.cnblogs.com/tiandizhiguai/p/17526820.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号