K8S釋出應用步驟詳解

tiandizhiguai發表於2023-02-22

前言

首先以SpringBoot應用為例介紹一下k8s的釋出步驟。

1.從程式碼倉庫下載程式碼,比如GitLab;
2.接著是進行打包,比如使用Maven;
3.編寫Dockerfile檔案,把步驟2產生的包製作成映象;
4.上傳步驟3的映象到遠端倉庫,比如Harhor;
5.編寫Deployment檔案;
6.提交Deployment檔案到k8s叢集;

從以上步驟可以看出,釋出需要的工具和環境至少包括:程式碼倉庫(GitLab)、打包環境(Maven)、映象製作(Docker)、映象倉庫(Harbor)、k8s叢集等。
當前,也可以藉助一些開源的系統來發布你的應用,比如:Jenkins、DHorse等。

詳細步驟

假如有一個名為Hello的SpringBoot應用,服務埠是8080,並且有一個/hello介面。

打包

這裡直接從GitLab下載到本地,執行maven打包命令,這裡打為Jar包:

mvn clean package

完成以後,生成的包為:hello-1.0.0.jar

製作映象

以下步驟在具有Docker環境的Linux機器上操作。

  1. 把hello-1.0.0.jar放到/usr/local/hello目錄下,並在該目錄下建立Dockerfile檔案,內容為:
FROM openjdk:8-jdk-alpine
ADD hello-1.0.0.jar /usr/local/hello.jar
ENTRYPOINT ["java", "-jar", "/usr/local/hello.jar"]

則/usr/local/hello目錄的檔案為:

-rw-r--r-- 1 root root      119 Feb 22 17:50 Dockerfile
-rw-r--r-- 1 root root 21863457 Feb 22 17:07 hello-1.0.0.jar
  1. 製作映象,在/usr/local/hello目錄下執行命令:
docker build -t 192.168.109.134:20080/dhorse/hello:1.0.0 .

其中,192.168.109.134:20080是Harbor映象倉庫地址,dhorse是專案名。

  1. 登入倉庫並上傳映象
docker login 192.168.109.134:20080 -u admin -p Harbor12345
docker push 192.168.109.134:20080/dhorse/hello:1.0.0

編寫Deployment檔案

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

apiVersion: apps/v1
kind: Deployment
metadata:
  name: hello
  labels:
    app: hello
spec:
  replicas: 1
  selector:
    matchLabels:
      app: hello
  template:
    metadata:
      labels:
        app: hello
    spec:
      containers:
      - name: hello
        image: 192.168.109.134:20080/dhorse/hello:1.0.0
        imagePullPolicy: Always

部署應用

以下操作在k8s叢集的mater機器上執行。

把hello-k8s.yml檔案複製/user/local目錄下,並在當前目錄執行如下命令:

kubectl apply -f hello-k8s.yml

稍後,再執行如下命令:

kubectl get pods -o wide

輸出結果如下:

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

然後在訪問/hello介面:

curl http://10.32.1.180:8080/hello

至此,釋出結束,同時歡迎使用DHorse進行自動釋出。

相關文章