k8s部署springboot

2023-07-04 21:00:42

綜述

首先介紹釋出步驟。

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-alpine
ADD springboot-1.0.0.jar /usr/local/springboot.jar
ENTRYPOINT ["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 Harbor12345
docker push 192.0.10.22:20080/dhorse/springboot:1.0.0

編寫Deployment檔案

建立springboot-k8s.yml檔案,內容如下:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: springboot
  labels:
    app: springboot
spec:
  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 GATES
springboot-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

至此,釋出結束。