k8s的持續(xù)發(fā)布-創(chuàng)新互聯(lián)

本章的主題是Jenkins自動化構(gòu)建docker鏡像,并部署到k8s集群,后面我們還會講到Jenkins一鍵發(fā)布到k8s集群。
k8s的持續(xù)發(fā)布
安裝jenkins需要使用tomcat去把應(yīng)用跑起來
1.清理所有的default資源和其他namespace下的資源
[root@master ~]# kubectl get all --all-namespaces

成都創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比閩侯網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式閩侯網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋閩侯地區(qū)。費(fèi)用合理售后完善,十多年實(shí)體公司更值得信賴。

kubectl delete svc --all;kubectl delete pod --all

2.下載gitlab安裝包
在node2上,進(jìn)行如下操作
wget xxx
安裝:yum localinstall xxx
配置:vim /etc/gitlab/gitlab.rb,修改以下兩行

external_url 'http://192.168.187.102'
prometheus_monitoring['enable'] = flase

重新啟動:

3.在gitlab上創(chuàng)建倉庫并上傳代碼
git add .
git commit -m 'first update'
git push -u origin master

4.安裝Jenkins
在node1上,進(jìn)行如下操作
安裝JDK,安裝tomcat,安裝jenkins
[root@node1 ~]# rpm -ivh jdk-12.0.2_linux-x64_bin.rpm
warning: jdk-12.0.2_linux-x64_bin.rpm: Header V3 RSA/SHA256 Signature, key ID ec551f03: NOKEY
Preparing... ################################# [100%]
Updating / installing...
1:jdk-12.0.2-2000:12.0.2-ga ################################# [100%]
[root@node1 ~]# java --version
java 12.0.2 2019-07-16
Java(TM) SE Runtime Environment (build 12.0.2+10)
Java HotSpot(TM) 64-Bit Server VM (build 12.0.2+10, mixed mode, sharing)

解壓tomcat包到指定文件夾
tar xf apache-tomcat-8.5.45.tar.gz -C /app

拷貝jenkins.war包到tomcat的webapps目錄下,并啟動tomcat.由于我們采用的安裝方式是基于tomcat進(jìn)行安裝的,那么啟動tomcat就會自動啟動jenkins。
[root@node1 ~]# cp jenkins.war /app/apache-tomcat-8.5.45/webapps/
[root@node1 ~]# ls
! anaconda-ks.cfg apache-tomcat-8.5.45.tar.gz jdk-12.0.2_linux-x64_bin.rpm jenkins.war original-ks.cfg
[root@node1 webapps]# /app/apache-tomcat-8.5.45/bin/startup.sh
[root@node1 webapps]# netstat -lntup | grep 8080
tcp6 0 0 :::8080 :::* LISTEN 81725/java

啟動會,在瀏覽器上登錄http://192.168.187.101:8080/jenkins然后需要輸入原始密碼,將以下文件里的密碼copy到此處即可。
[root@node1 secrets]# vim initialAdminPassword
[root@node1 secrets]# pwd
/root/.jenkins/secrets

接下來會出現(xiàn)讓你選擇啟動模塊的界面,直接跳過進(jìn)入下一步
k8s的持續(xù)發(fā)布
在安裝有jenkins的機(jī)器上從gitlab拉取代碼,正常情況下會成功拉取
以下是Jenkins上拉取代碼成功的截圖
k8s的持續(xù)發(fā)布
5.Jenkins自動化構(gòu)建docker鏡像
在生產(chǎn)環(huán)境中,當(dāng)我們在jenkins上點(diǎn)擊立即構(gòu)建,會立即打包好一個(gè)docker鏡像。
這也是我們的最終目標(biāo):

我們許多人的通常做法是在gitlab上提交代碼時(shí)同時(shí)編輯一個(gè)dockerfile文件,當(dāng)在jenkins上點(diǎn)擊立即構(gòu)建時(shí),由于有這個(gè)dockerfile存在,jenkins會自動執(zhí)行docker build從而完成構(gòu)建一個(gè)docker鏡像的過程
a.先在node2上創(chuàng)建dockerfile文件,并編輯一個(gè)文件在執(zhí)行時(shí)不打包這個(gè)文件
vi dockerfile
FROM 192.168.187.100:5000/nginx:1.13
ADD . /usr/share/nginx/html #把代碼上傳到這個(gè)目錄下

b.在jenkins上把docker build,docker push的命令復(fù)制到配置-構(gòu)建-界面上,當(dāng)點(diǎn)擊立即構(gòu)建時(shí)便會執(zhí)行這些命令
docker build
docker push 192.168.187.100:5000/

執(zhí)行完之后可以docker images查看鏡像是否會在私有倉庫的鏡像池里

6.優(yōu)化構(gòu)建里的一些配置
首先如果多次構(gòu)建,又希望保存歷史版本不希望舊版本被覆蓋掉,那么我們需要設(shè)置版本變量
在配置-構(gòu)建這里,將版本號改為一個(gè)變量,這樣之后每構(gòu)建一次版本會發(fā)生變化
其次,如果代碼沒發(fā)生變化,我們不希望執(zhí)行再次構(gòu)建的動作,那么我們需要做一次check,檢查代碼是否有更新,是否有新增構(gòu)建;這里我們用commit id來作為判斷依據(jù),如果commit id與上次一樣則不再次構(gòu)建,如果不一致則執(zhí)行構(gòu)建命令。

7.k8s集群部署項(xiàng)目
7.1.創(chuàng)建項(xiàng)目資源
a.創(chuàng)建一個(gè)deployment,以之前上傳到本地私有倉庫的小鳥鏡像為源
kubectl run

b.創(chuàng)建一個(gè)svc,給小鳥這個(gè)應(yīng)用提供外部訪問的端口
kubectl expose

7.2.手動實(shí)現(xiàn)k8s里docker的升級和回滾
kubectl set image deploy
kubectl rollout undo deploy

7.3.利用jenkins實(shí)現(xiàn)k8s里docker的升級和回滾
把上面的升級和回滾操作集成到配置-構(gòu)建配置里,讓jenkins來實(shí)現(xiàn)docker的升級和回滾;
我們可以做一個(gè)實(shí)驗(yàn),在gitlab里新建一個(gè)html文件并將其構(gòu)建后上傳代碼至私有倉庫。
然后通過jenkins里的立即構(gòu)建功能實(shí)現(xiàn)k8s里docker資源一鍵更新,部署或者發(fā)布。
kubectl -s 192.168.187.100:8080 set image deploy xiaoniao:

問題:
1.jenkins安裝完成后初始化啟動一直很慢,顯示加載中,修改了配置也不生效。
2.jenkins的一鍵構(gòu)建完成k8s里docker資源的更新與發(fā)布,很牛逼,希望有機(jī)會能了解其在生產(chǎn)環(huán)境中的應(yīng)用狀況

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

分享名稱:k8s的持續(xù)發(fā)布-創(chuàng)新互聯(lián)
網(wǎng)頁路徑:http://muchs.cn/article36/cosjsg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供標(biāo)簽優(yōu)化、網(wǎng)站設(shè)計(jì)公司、全網(wǎng)營銷推廣、域名注冊、移動網(wǎng)站建設(shè)、網(wǎng)站策劃

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都seo排名網(wǎng)站優(yōu)化