溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

jenkins 配合 k8s實現(xiàn)應(yīng)用持續(xù)集成

發(fā)布時間:2020-07-31 15:45:44 來源:網(wǎng)絡(luò) 閱讀:717 作者:xinsir999 欄目:大數(shù)據(jù)

上一篇文章寫了關(guān)于如何build一個可以復(fù)用的tomcat的image,這一篇文章講一下,如何使用此鏡像進(jìn)行重復(fù)構(gòu)建不同的項目。


直奔主題:

步驟一 創(chuàng)建相應(yīng)的mavn項目job

??? 其它配置均不變,主要更改的是build項目后的動作。

? ? 注:因為我的k8s集群只有一個節(jié)點,所以默認(rèn)所有的pod會啟動在node節(jié)點上,所以我這里直接把build好的war直接傳到node節(jié)點上。

jenkins 配合 k8s實現(xiàn)應(yīng)用持續(xù)集成

再創(chuàng)建一個一個ssh的動作

jenkins 配合 k8s實現(xiàn)應(yīng)用持續(xù)集成


需要注意的地方是,不管是server.xml配置文件還是yml配置文件的路徑一定要搞對,不要亂。

master上的意思大概是:

? ? 首先檢查有沒有關(guān)于這個項目的configmap,如果沒有則創(chuàng)建,如果有則沒有動作。

? ? 然后是檢查是否啟動了關(guān)于這個項目的deployment,如果沒有澤直接創(chuàng)建,如果有則先刪除這個deployment,然后再次創(chuàng)建。實現(xiàn)重啟效果。

這里又有一個需要注意的地方,如果修改了deployment.yml文件,那么需要手動先去刪除當(dāng)前deployment,不然會報錯。



下面展示deployment.yml

#?api的版本號
apiVersion:?apps/v1
#?創(chuàng)建類型
kind:?Deployment
#?描述
metadata:
??name:?jlj-learning-controller
??labels:
????app:?jlj-learning-controller
spec:
#?啟動幾個副本
??replicas:?1
??selector:
????matchLabels:
??????app:?jlj-learning-controller
??template:
????metadata:
??????labels:
????????app:?jlj-learning-controller
????spec:
????#?創(chuàng)建3個volumes
??????volumes:
??????#?用于存放項目的war包
??????-?name:?"jlj-learning-controller-war"
????????hostPath:?
?????????path:?"/Disk/data/tomcat/jlj-learning-controller/code/"
??????#?用于存放tomcat的日志
??????-?name:?"jlj-learning-controller-log"
????????hostPath:
?????????path:?"/Disk/data/tomcat/jlj-learning-controller/log/"
??????#?獲取前面創(chuàng)建的configmap中的server.xml文件內(nèi)容
??????-?name:?"jlj-learning-controller-server-xml"
????????configMap:
?????????name:?jlj-learning-controller.xml?
?????????items:
?????????-?key:?server.xml
???????????path:?server.xml
??????containers:
??????-?name:?jlj-learning-controller
????????image:?fushuitong/tomcat:jdk7u21-tomcat7.0.77-cronolog1.6.2
????????ports:
????????-?containerPort:?8080
????????#?掛載3個volume
????????volumeMounts:
????????#?把項目的war包掛載到容器中tomcat的webapps目錄下,這樣tomcat啟動時候直接加載項目,之前已經(jīng)解壓過了。
????????-?name:?jlj-learning-controller-war
??????????mountPath:?/usr/local/tomcat/webapps
????????#?把本地的log目錄掛載到容器中tomcat的logs目錄下,這樣tomcat的所有日志都被存放到宿主機(jī)的硬盤上,容器刪掉日志不會丟失。
????????-?name:?jlj-learning-controller-log
??????????mountPath:?/usr/local/tomcat/logs
????????#?這里著重說一下,為什么要吧server.xml文件掛載的容器的configfile目錄下,因為通過這種方式會把容器本來目錄下的內(nèi)容刪除,
????????#?所以我們把這個server.xml文件掛載到/configfile目錄下,因為在上一篇build?鏡像的時候,就已經(jīng)做過ln的動作了,所以這個會
????????#?當(dāng)做tomcat的配置文件加載了。
????????-?name:?jlj-learning-controller-server-xml
??????????mountPath:?/configfile


向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI