日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

k8s部署jar包_使用Kubernetes部署Springboot或Nginx的详细教程

發(fā)布時間:2023/12/19 javascript 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 k8s部署jar包_使用Kubernetes部署Springboot或Nginx的详细教程 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1 前言

經(jīng)過《Maven一鍵部署Springboot到Docker倉庫,為自動化做準(zhǔn)備》,Springboot的Docker鏡像已經(jīng)準(zhǔn)備好,也能在Docker上成功運行了,是時候放上Kubernetes跑一跑了。這非常簡單,一個yaml文件即可。

2 一鍵部署Springboot

2.1 準(zhǔn)備yaml文件

當(dāng)準(zhǔn)備好鏡像文件后,要部署到Kubernetes就非常容易了,只需要一個yaml格式的文件即可,這個文件能描述你所需要的組件,如Deployment、Service、Ingress等。定義如下:

apiVersion: apps/v1

kind: Deployment

metadata:

name: pkslow-springboot-deployment

spec:

selector:

matchLabels:

app: springboot

replicas: 2

template:

metadata:

labels:

app: springboot

spec:

containers:

- name: springboot

image: pkslow/springboot-mongo:0.0.6

ports:

- containerPort: 8080

---

apiVersion: v1

kind: Service

metadata:

labels:

app: springboot

name: pkslow-springboot-service

spec:

ports:

- port: 8080

name: springboot-service

protocol: TCP

targetPort: 8080

nodePort: 30080

selector:

app: springboot

type: NodePort

Kind:類型,有Deployment、Service、Pod、Ingress等,非常豐富;

metadata:用于定義一些組件信息,如名字、標(biāo)簽等;

labels:標(biāo)簽功能,非常有用,用于選擇關(guān)聯(lián);但label不提供唯一性,可以使用組合來選擇;

nodePort:對于需要給外部暴露的服務(wù),有三種方式:NodePorts、LoadBalancer、Ingress,這里使用NodePorts;需要注意的是,默認(rèn)它的端口范圍是[3000-32767],需要其它范圍則需要修改相關(guān)參數(shù)。

2.2 通過kubectl命令部署

當(dāng)yaml文件準(zhǔn)備好之后,就可以通過以下命令部署:

$ kubectl create -f pksow-springboot.yaml

deployment.apps/pkslow-springboot-deployment created

service/pkslow-springboot-service created

看控制臺日志則表明成功創(chuàng)建了Deployment和Service。查看Dashboard如下:

通過命令行檢查一下:

$ kubectl get deployment

NAME READY UP-TO-DATE AVAILABLE AGE

pkslow-springboot-deployment 2/2 2 2 8m2s

$ kubectl get service

NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE

kubernetes ClusterIP 10.96.0.1 443/TCP 10m

pkslow-springboot-service NodePort 10.102.218.119 8080:30080/TCP 8m7s

$ kubectl get pod

NAME READY STATUS RESTARTS AGE

pkslow-springboot-deployment-68dffc6795-874tp 1/1 Running 0 8m15s

pkslow-springboot-deployment-68dffc6795-89xww 1/1 Running 0 8m15s

至此,我們已經(jīng)成功把Springboot發(fā)布到Kubernetes了。

2.3 試試殺死一個pod?

Kubernetes最小管理元素并不是容器,而是Pod。

我們試著刪掉一個Pod,看看會發(fā)生什么?

$ kubectl delete pod pkslow-springboot-deployment-68dffc6795-89xww

pod "pkslow-springboot-deployment-68dffc6795-89xww" deleted

$ kubectl get pod

NAME READY STATUS RESTARTS AGE

pkslow-springboot-deployment-68dffc6795-874tp 1/1 Running 0 13m

pkslow-springboot-deployment-68dffc6795-gpw67 1/1 Running 0 46s

可以發(fā)現(xiàn),刪除了其它一個Pod后,會自動為我們新生成一個Pod,這樣能提高整個服務(wù)的高可用。

2.4 試試殺死一個容器?

我們再來探索一下如果殺死一個容器實例,會有什么反應(yīng)。

$ docker ps

$ docker rm -f 57869688a226

57869688a226

$ docker ps

經(jīng)實驗,殺死一個容器后,也會自動為我們重新生成一個容器實例。而Pod并不會變化,也不會重新生成。

2.5 快速擴(kuò)容Pod

用戶請求突增,服務(wù)要撐不住了,這時需要增加Pod的個數(shù)。只需要修改yaml配置文件的replicas,將它更新為replicas: 4。然后執(zhí)行以下命令:

$ kubectl apply -f pksow-springboot.yaml

查看Dashboard,在原有兩個Pod的基礎(chǔ)上,增加了兩個。

3 一鍵部署Nginx

如果大家沒有Springboot的鏡像,可以使用官方的Nginx鏡像,yaml文件如下:

apiVersion: apps/v1

kind: Deployment

metadata:

name: nginx-deployment

spec:

selector:

matchLabels:

app: nginx

replicas: 3

template:

metadata:

labels:

app: nginx

spec:

containers:

- name: nginx

image: nginx:1.19.0

ports:

- containerPort: 80

---

apiVersion: v1

kind: Service

metadata:

labels:

app: nginx

name: nginx-service

spec:

ports:

- port: 80

name: nginx-service1

protocol: TCP

targetPort: 80

nodePort: 30000

- port: 81

name: nginx-service2

protocol: TCP

targetPort: 80

nodePort: 30001

selector:

app: nginx

type: NodePort

執(zhí)行部署命令:

$ kubectl apply -f nginx-deployment-scale.yaml

deployment.apps/nginx-deployment created

service/nginx-service created

查看Dashboard如下:

4 總結(jié)

本文以兩個實例帶大家感性地認(rèn)識了Kubernetes,這對后面深入理解概念是有很大幫助的。原理和細(xì)節(jié)方面,后續(xù)再展開談吧。

到此這篇關(guān)于用Kubernetes部署Springboot或Nginx的文章就介紹到這了,更多相關(guān)Kubernetes部署Springboot或Nginx內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

總結(jié)

以上是生活随笔為你收集整理的k8s部署jar包_使用Kubernetes部署Springboot或Nginx的详细教程的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。