從這篇文章開始就寫寫如何在虛擬機中通過minikube搭建一個K8s集群很钓,并在這個K8s集群里安裝Jenkins X春霍,體驗一把云原生下的CICD框架是如何運行的翅睛。在開始介紹搭建K8s捅僵、JenkinsX之前,我先說一下如何解決在搭建過程中遇到的一個大難題:鏡像下載問題掖看。在使用minikube搭建K8s環(huán)境時可以指定國內(nèi)的阿里云纪蜒,但Jenkins X只能從國外網(wǎng)站下載了汁咏。
在網(wǎng)上也有幾種下載的方法:
①自己租用能訪問云服務(wù)器讶泰,然后docker pull & docker save馒闷,然后再下載下來使用。
②使用aliyun的鏡像地址(這個只能用于使用yum install安裝K8s耳峦,但如果在安裝過程中涉及到docker pull xxx鏡像時無效)
③使用github和docker hub共同完成鏡像的拉取(經(jīng)濟實惠恩静,性價比高)。
這篇文章也主要介紹如何使用Github和Docker hub實現(xiàn)國外鏡像的拉取蹲坷,為搭建K8s環(huán)境驶乾、JenkinsX環(huán)境以及需要安裝任何在國內(nèi)訪問不到鏡像時指了一條光明大道。也希望能夠幫助想踏上K8s循签,云原生這條船但苦于鏡像無處拉取的臭味相投朋友级乐。在通過github編寫代碼之前,請先到Docker hub上搜索一下县匠,沒準你想要的那個版本別人已經(jīng)上傳上去了风科,這就省大事了。如果沒有再進行后面的步驟乞旦。
1贼穆、準備條件
①GitHub賬號
②Docker Hub賬號
2、Github代碼庫
在GitHub上新建一個代碼庫兰粉,或者直接fork我的k8s代碼庫故痊,這個代碼庫專門用來存儲需要構(gòu)建鏡像的Dockerfile。不同的鏡像最好根據(jù)鏡像路徑創(chuàng)建目錄玖姑。
添加相應(yīng)的Dockerfile愕秫,如下圖所示,內(nèi)容比較簡單焰络,就是拉取一下所需要的鏡像戴甩。
3、Docker hub上構(gòu)建鏡像
在Docker Hub上新建一個賬號闪彼,登錄后甜孤,在賬號設(shè)置里,設(shè)置關(guān)聯(lián)賬號,用于關(guān)聯(lián)你自己的代碼庫缴川,當有變更時能夠觸發(fā)構(gòu)建囱稽。
新建一個鏡像倉庫,根據(jù)需要設(shè)置鏡像的名字和備注二跋,下面選擇已經(jīng)Connected的Github代碼托管平臺,選擇自己賬號下的k8s代碼庫流昏。在BUILD RULES里添加一條構(gòu)建規(guī)則扎即。選擇構(gòu)建的信息,比如來源類型况凉,哪個分支谚鄙,鏡像版本,以及Dockerfile所在路徑(從代碼庫的根目錄開始 使用 / 斜杠刁绒。)然后點擊Create & Build闷营。
等待一段時間(有時會很長。小時級知市,主要是等待時間傻盟,真正構(gòu)建很快),等構(gòu)建成功后嫂丙,在Tags里會看到我們想要的標簽版本娘赴。此時就可以在服務(wù)器上使用docker pull xinglongjian/kube-apiserver:TAG下載鏡像了。
4跟啤、查看鏡像狀態(tài)
有幾種方法可以查看k8s集群或JenkinsX構(gòu)建過程中到底有沒有成功诽表,如果沒有成功,是什么原因?qū)е碌挠绶省N覀兊孟劝l(fā)現(xiàn)問題竿奏,才能想辦法解決問題。
①在構(gòu)建時腥放,最好再開一個窗口泛啸,tail -f /var/log/message 能夠顯示出系統(tǒng)的信息,如果出現(xiàn)鏡像拉不下來捉片,這里也會顯示平痰。
②使用kubectl describe pod xxx -n namespace能夠查看這個pod的詳細信息,如果鏡像拉不下來伍纫,這里也會顯示宗雇。
好了,鏡像問題解決了莹规,后續(xù)就可以開始環(huán)境搭建了赔蒲。
本人水平有限,難免有錯誤或疏漏,望大家指正舞虱,歡迎留言交流欢际。歡迎關(guān)注本人微信公眾號:DevOps亮哥