写点什么

k8s 部署 springboot

作者:tiandizhiguai
  • 2023-07-04
    浙江
  • 本文字数:1222 字

    阅读完需:约 4 分钟

综述

首先介绍发布步骤。


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 包:


mvn clean package
复制代码


生成的包为:springboot-1.0.0.jar

制作镜像

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


  1. 把 springboot-1.0.0.jar 放到/usr/local/springboot 目录下,并在该目录下创建 Dockerfile 文件,内容为:


FROM openjdk:8-jdk-alpineADD springboot-1.0.0.jar /usr/local/springboot.jarENTRYPOINT ["java", "-jar", "/usr/local/springboot.jar"]
复制代码


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


-rw-r--r-- 1 root root      119 Feb 22 17:50 Dockerfile-rw-r--r-- 1 root root 21863457 Feb 22 17:07 springboot-1.0.0.jar
复制代码


  1. 制作镜像,在/usr/local/springboot 目录下执行命令:


docker build -t 192.0.10.22:20080/dhorse/springboot:1.0.0 .
复制代码


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


  1. 登录仓库并上传镜像


docker login 192.0.10.22:20080 -u admin -p Harbor12345docker push 192.0.10.22:20080/dhorse/springboot:1.0.0
复制代码

编写 Deployment 文件

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


apiVersion: apps/v1kind: Deploymentmetadata:  name: springboot  labels:    app: springbootspec:  replicas: 1  selector:    matchLabels:      app: springboot  template:    metadata:      labels:        app: springboot    spec:      containers:      - name: springboot        image: 192.0.10.22:20080/dhorse/springboot:1.0.0        imagePullPolicy: Always
复制代码

部署应用

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


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


kubectl apply -f springboot-k8s.yml
复制代码


稍后,再执行如下命令:


kubectl get pods -o wide
复制代码


输出结果如下:


NAME                     READY   STATUS    RESTARTS   AGE   IP            NODE       NOMINATED NODE   READINESS GATESspringboot-79d56dc985-7dz6q   1/1     Running   0          8s    10.32.1.180   centos06   <none>           <none>
复制代码


然后访问/hello 接口:


curl http://10.32.1.180:8080/hello
复制代码


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


至此,发布结束。

用户头像

tiandizhiguai

关注

我笑世人看不穿 2018-11-08 加入

还未添加个人简介

评论

发布
暂无评论
k8s部署springboot_tiandizhiguai_InfoQ写作社区