流程
制作鏡像------->控制器管理pod------->暴露應(yīng)用------->對(duì)外發(fā)布應(yīng)用------->日志監(jiān)控
手動(dòng)部署
安裝java,maven,mysql環(huán)境
在k8s節(jié)點(diǎn)測(cè)試mysql能否連上
安裝mysql client
mysql -h主機(jī)名 -u用戶 -p密碼 //登錄測(cè)試
拉去源碼
將源碼中的一個(gè)db目錄下sql文件導(dǎo)入數(shù)據(jù)庫(kù)
使用maven編譯
[root@master tomcat-java-demo-master]# mvn clean package -Dmaven.test.skip=true
構(gòu)建鏡像
[root@master tomcat-java-demo-master]# docker build -t 鏡像名 Dockerfile
構(gòu)建完鏡像之后最好把鏡像推送到遠(yuǎn)程廠庫(kù)中,為了集中管理鏡像,node節(jié)點(diǎn)直接登錄廠庫(kù)就可以在構(gòu)建項(xiàng)目是直接下載。
開(kāi)始部署項(xiàng)目
生成項(xiàng)目yaml文件
[root@master yaml]# kubectl create deployment 名字 --image=鏡像名 --dry-run(測(cè)試但不會(huì)執(zhí)行) -o yaml > yaml文件名
生成svc yaml文件
[root@master yaml]# kubectl expose deployment 名字 --port=80 --target-port=8080 --type=NodePort -o yaml --dry-run > svc.yaml
注意
名字與生成項(xiàng)目中yaml名字一樣
--port端口為集群內(nèi)部訪問(wèn)端口
--target-port=8080 容器里端口
--type=NodePort 隨機(jī)生成端口 集群外部訪問(wèn)端口
查看pod和svc
[root@master yaml]# kubectl get po,svc
NAME READY STATUS RESTARTS AGE
pod/java-demo-74b7db8f98-54zq8 1/1 Running 0 115m
pod/java-demo-74b7db8f98-bklnq 1/1 Running 0 115m
pod/java-demo-74b7db8f98-ffkbj 1/1 Running 0 115m
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/java-demo NodePort 10.106.9.105 <none> 80:30534/TCP 86m
service/kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 40d
登錄web界面檢查:nodeip:NodePort
注意
雖然為runing狀態(tài)
但是還要查看pod日志再次確認(rèn)