您好,登錄后才能下訂單哦!
本篇文章給大家分享的是有關kubernates中怎么部署springboot,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
1、創建一個Springboot應用
List-1.1
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @RestController public class HelloController { @RequestMapping(value = "/") public String hello(){ System.out.println("hello方法"); return "Hello, k8s!"; } }
之后mvn clean package,打包,得到app.jar,和Dockerfile放在同一個目錄下
List-1.2
mjduan@mjduan-ubuntu:/opt/software/docker/springboot-k8s$ ll total 676796 drwxr-xr-x 2 mjduan mjduan 4096 2月 15 15:43 ./ drwxr-xr-x 4 mjduan mjduan 4096 2月 15 15:30 ../ -rw-r--r-- 1 mjduan mjduan 16674428 2月 15 15:31 app.jar -rw-r--r-- 1 mjduan mjduan 362 2月 15 15:37 Dockerfile
Dockerfile的內容為
List-2.1
FROM openjdk:8 ADD app.jar /opt/app/app.jar RUN bash -c 'touch /opt/app/app.jar' # 開放8080端口 EXPOSE 8080 ENV TZ=Asia/Shanghai RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone # 配置容器啟動后執行的命令 ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/opt/app/app.jar"]
之后執行命令來得到鏡像
List-2.2
mjduan@mjduan-ubuntu:/opt/software/docker/springboot-k8s$ docker build -t hello:1.0 .
之后將這個鏡像放到k8s的master和倆個node上,這里我是先用
docker save hello:1.0>hello.tar
命令得到文件hello.tar,之后將hello.tar用scp命令傳到k8s的master和倆個node上。
之后在k8s的master和倆個node上,執行如下命令得到鏡像hello:1.0
docker load -i hello.tar
4、kubernates上部署
好了,上述步驟完成后,在k8s的master上創建yaml文件
[root@localhost mjduan]# vi /data/mjduan/hello.yaml
hello.yaml的內容如下
apiVersion: apps/v1beta2 kind: Deployment metadata: name: example-demo3 labels: app: example-demo3 spec: replicas: 1 revisionHistoryLimit: 10 selector: matchLabels: app: example-demo3 template: metadata: labels: app: example-demo3 spec: containers: - name: example-demo3 #image名稱是我們的hello:1.0 image: hello:1.0 ports: - containerPort: 8080 protocol: TCP livenessProbe: httpGet: path: / port: 8080 initialDelaySeconds: 30 timeoutSeconds: 30 imagePullPolicy: Never # Comment the following tolerations if Dashboard must not be deployed on master tolerations: - key: node-role.kubernetes.io/master effect: NoSchedule --- apiVersion: v1 kind: Service metadata: name: example-demo3 labels: app: example-demo3 spec: ports: - port: 8080 targetPort: 8080 selector: app: example-demo3 type: NodePort
部署Docker image,命令如下
[root@localhost mjduan]# kubectl create -f hello.yaml deployment.apps/example-demo3 created service/example-demo3 created
查看pod信息,如下
[root@localhost mjduan]# kubectl get pods NAME READY STATUS RESTARTS AGE example-demo3-746fc684df-h5dpq 1/1 Running 0 10s
查看service,如下,NAME為example-demo3的那個就是我們剛剛部署的,端口映射是宿主機的32300對應到容器的8080
[root@localhost mjduan]# kubectl get services NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE example-demo3 NodePort 10.107.189.127 <none> 8080:32300/TCP 1m kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 2h
訪問服務
[root@localhost mjduan]# curl http://k8s.master:32300 Hello, k8s!
以上就是kubernates中怎么部署springboot,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。