中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

k8s的持續發布

發布時間:2020-07-24 09:47:28 來源:網絡 閱讀:401 作者:Oliver_go123 欄目:云計算

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

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

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

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

重新啟動:

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

4.安裝Jenkins
在node1上,進行如下操作
安裝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進行安裝的,那么啟動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

接下來會出現讓你選擇啟動模塊的界面,直接跳過進入下一步
k8s的持續發布
在安裝有jenkins的機器上從gitlab拉取代碼,正常情況下會成功拉取
以下是Jenkins上拉取代碼成功的截圖
k8s的持續發布
5.Jenkins自動化構建docker鏡像
在生產環境中,當我們在jenkins上點擊立即構建,會立即打包好一個docker鏡像。
這也是我們的最終目標:

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

b.在jenkins上把docker build,docker push的命令復制到配置-構建-界面上,當點擊立即構建時便會執行這些命令
docker build
docker push 192.168.187.100:5000/

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

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

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

b.創建一個svc,給小鳥這個應用提供外部訪問的端口
kubectl expose

7.2.手動實現k8s里docker的升級和回滾
kubectl set image deploy
kubectl rollout undo deploy

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

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

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

金门县| 黄梅县| 泰安市| 丹东市| 阳谷县| 龙岩市| 布尔津县| 惠水县| 西华县| 比如县| 枞阳县| 宜兴市| 涿州市| 鄂州市| 永年县| 辰溪县| 台中市| 如东县| 通城县| 龙川县| 康马县| 岚皋县| 错那县| 景洪市| 威远县| 怀集县| 仁化县| 南汇区| 金秀| 志丹县| 沂水县| 泰和县| 高尔夫| 太白县| 霍邱县| 沧州市| 吴旗县| 虹口区| 红河县| 晋中市| 宜丰县|