您好,登錄后才能下訂單哦!
JFrog Artifactory是一個(gè)artifacts倉庫管理平臺(tái),它支持所有的主流打包格式、構(gòu)建工具和持續(xù)集成(CI)服務(wù)器。它將所有二進(jìn)制內(nèi)容保存在一個(gè)單一位置并提供一個(gè)接口,這使得用戶在整個(gè)應(yīng)用程序開發(fā)和交付過程中,能更易于上傳、查找和使用二進(jìn)制文件。
在本文中我們將介紹如何使用Rancher在Kubernetes集群上部署和管理JFrog Artifactory。在看完本文后,你將會(huì)系統(tǒng)地了解JFrog Artifactory OSS的安裝設(shè)置,并且能夠按照同樣的步驟在任何Kubernetes集群中安裝Artifactory OSS或者它的商業(yè)版本。當(dāng)然,我們還將向你展示如何在Artifactory中創(chuàng)建通用倉庫并且向其中上傳工件。
除了文章中所展示的之外,Artifactory還有更多特性,在以后的文章中我們會(huì)更詳細(xì)地介紹它們。
好了,那么我們開始吧!
使用的軟件
本文使用了下列的軟件工具:
Rancher v2.0.8
運(yùn)行在Google Kubernetes Engine version 1.10.7-gke.2上的Kubernetes集群
Artifactory helm chart version 7.4.2
如果以后本文更新了,請(qǐng)使用到時(shí)候的最新版本。
和Kubernetes中的其他工具一樣,我們有多種方法來安裝Artifactory。這里我們將使用Helm chart,Helm提供了一種給應(yīng)用程序安裝命令打包及分享給他人的方式。你可以把它想象成服務(wù)于Kubernetes的包管理者。在Rancher Catalog(應(yīng)用服務(wù)目錄)中,Rancher集成了Helm,在Catalog中你只需要點(diǎn)擊幾下就可以部署任何Helm支持的應(yīng)用程序。除此之外Rancher還有其他特點(diǎn),包括:
一個(gè)簡單直觀的Web界面
統(tǒng)一納管所有云上、所有發(fā)行版、所有Kubernetes集群
一個(gè)單一視圖展示所有托管的集群
開箱即用的集群監(jiān)控
工作負(fù)載、基于角色的訪問控制(RBAC)、策略和項(xiàng)目管理
安裝Rancher
注意:如果你已經(jīng)有了Rancher v2 Server和Kubernetes集群,直接可以跳過這部分,直接進(jìn)入安裝JFrog Artifactory的教程部分。
Rancher非常強(qiáng)大,它能夠在任何地方管理Kubernetes集群,因此我們將在GCE實(shí)例上以獨(dú)立模式啟動(dòng)Rancher Server,使用它在GKE中部署Kubernetes集群。
在獨(dú)立模式下啟動(dòng)Rancher Server非常容易——因?yàn)樗荄ocker容器,在啟動(dòng)容器之前,我們需要一個(gè)計(jì)算實(shí)例來運(yùn)行它,那么我們用下面的命令啟動(dòng):
請(qǐng)你根據(jù)自己的部署修改project以及zone參數(shù)。
幾分鐘之后你應(yīng)該能看到實(shí)例已經(jīng)準(zhǔn)備好了。
記錄下來EXTERNAL_IP地址,稍后連接Rancher Server的時(shí)候你可能會(huì)用到。
計(jì)算節(jié)點(diǎn)啟動(dòng)并運(yùn)行之后,我們通過GCE的CLI(命令行接口)SSH到它。
同樣,注意調(diào)整project和zone參數(shù),在你用不同的name或者在不同的zone啟動(dòng)節(jié)點(diǎn)時(shí)它們會(huì)變化。
連接之后,運(yùn)行下面的命令安裝一些依賴包并且安裝Docker CE。Rancher Server是一個(gè)Docker容器,如果想要繼續(xù)安裝的話我們就需要用到Docker了。
有了這些之后,我們就可以部署Rancher服務(wù)器了。在第一次啟動(dòng)容器時(shí),Docker Engine會(huì)從Docker Hub中獲取容器鏡像,在啟動(dòng)容器之前先將其保存在本地。以后容器要啟動(dòng)時(shí),就直接使用本地的鏡像,這樣速度會(huì)更快。
使用下面的命令控制Docker啟動(dòng)Rancher Server容器,并監(jiān)聽主機(jī)上的80和443端口
如果一切正常,在返回提示符之前Docker會(huì)打印出下載的狀態(tài),接著是新的容器ID。
恭喜你!你已經(jīng)成功啟動(dòng)了一個(gè)Rancher Server實(shí)例。
在瀏覽器中輸入剛剛你記錄下來的EXTERNAL_IP地址,你需要接受Rancher默認(rèn)安裝的self-signed證書。這之后,會(huì)彈出歡迎界面,設(shè)置密碼(記住它!)接著繼續(xù)下一頁。
在這一頁面上你需要設(shè)置Rancher Server的URL。在生產(chǎn)部署中這可能是一個(gè)主機(jī)名,比如rancher.yourcompany.com,但是如果你使用的是demo server,可以直接使用上面的EXTERNAL_IP地址。
點(diǎn)擊Save URL之后,會(huì)進(jìn)入到Clusters頁面,從這里開始我們就可以開始部署自己的Kubernetes集群了。
使用Rancher來部署一個(gè)GKE集群
Rancher可以部署、管理來自任何地方的Kubernetes集群。這些集群可以來自Google、Amazon、Azure、阿里云、華為云、騰訊云等等,可以在云節(jié)點(diǎn)上、數(shù)據(jù)中心里,甚至是運(yùn)行在你筆記本上的VM中。這是Rancher最出色的一點(diǎn)。這次我們會(huì)使用到GKE。在點(diǎn)擊Add Cluster之后,選擇Google Container Engine。
針對(duì)本demo,將name設(shè)置成jfrog-artifactory。
要?jiǎng)?chuàng)建集群,Rancher需要訪問Google Cloud Platform的權(quán)限。這些權(quán)限可以通過Service Account的私鑰JSON文件獲得。如何產(chǎn)生它呢,首先找到service account的name(根據(jù)你的情況修改project的name):
輸出的service account會(huì)代替<SA>。復(fù)制整個(gè)地址并把它用到下面的命令:
這樣會(huì)在當(dāng)前文件夾下創(chuàng)建一個(gè)名為key.json的文件。這就是Service Account私鑰,Rancher將用它來創(chuàng)建集群:
你可以把文件的內(nèi)容粘貼到文本框中,也可以點(diǎn)擊Read from a file,選擇key.json文件。Rancher將使用該信息生成一個(gè)頁面,在頁面中配置你的新集群:
設(shè)置你想要的Zone、Machine Type、Node Count以及Root Disk Size。當(dāng)然你可以參考上圖demo中使用的默認(rèn)值。
點(diǎn)擊Create,集群就會(huì)部署到GKE上,一切ok后你可以在UI界面上看到它已經(jīng)是活躍狀態(tài)的了。
安裝JFrog Artifactory
接下來我們將通過JFrog的Helm chart倉庫來安裝Artifactory。Helm charts,就像OS包管理系統(tǒng)一樣,在Kubernetes環(huán)境中提供給你穩(wěn)定的部署容器應(yīng)用程序的方式,并且讓你可以更新或者回滾應(yīng)用程序。chart保證你給容器安裝了特定的版本或者標(biāo)記,在應(yīng)用程度有多個(gè)組件的情況下,Helm chart能夠確保你的全部組件都安裝了正確的版本。
安裝JFrog Helm倉庫
Rancher在其應(yīng)用程序目錄中附帶了一個(gè)Helm charts庫,不過為了滿足Rancher用戶對(duì)靈活性的要求,你還可以安裝任何第三方的Helm倉庫來部署這些應(yīng)用程序到集群中。我們今天將使用JFrog倉庫。
在Rancher的Global Cluster視圖中,單擊Catalogs,接著點(diǎn)擊Add Catalog,在彈出的窗口中,輸入一個(gè)名稱,比如jfrog-artifactory,然后輸入官方JFrog倉庫的位置。
點(diǎn)擊Create,JFrog倉庫就會(huì)出現(xiàn)在自定義目錄的列表中了。
部署Artifactory
我們接著部署Artifactory。在Global視圖中,選擇jfrog-artifactory集群下的默認(rèn)項(xiàng)目:
進(jìn)入默認(rèn)項(xiàng)目后,選擇Catalog Apps,點(diǎn)擊Launch。Rancher將從Application Catalogs中顯示可用于安裝的應(yīng)用程序。這里你可能發(fā)現(xiàn)artifactory-ha出現(xiàn)了兩次,一次是作為合作伙伴提供的chart出現(xiàn)在Rancher附帶的默認(rèn)應(yīng)用程序庫中,另一次是來自JFrog倉庫本身。我們安裝Helm倉庫是因?yàn)槲覀兿氚惭b常規(guī)的、非HA的Artifactory,我們就喊它artifactory。所有目錄下的應(yīng)用程序都指明了它們來自哪個(gè)庫,所有在多個(gè)庫中都有chart的情況下,你仍然可以選擇安裝哪個(gè)庫
當(dāng)你選擇View Details時(shí),你可以更改有關(guān)如何安裝應(yīng)用程序的選項(xiàng)。在默認(rèn)情況下,此目錄項(xiàng)將部署已授權(quán)的Artifactory商業(yè)版本,為此你需要證書。如果你已經(jīng)擁有證書,那么可以保留默認(rèn)選項(xiàng);但是,我們想安裝OSS版本,所以我們將更改chart安裝的鏡像。
我們?cè)贑onfiguration Options界面進(jìn)行操作,選擇Add Answer,設(shè)置好artifactory.image.repository的變量名以及docker.bintray.io/jfrog/artifactory-oss的值。
現(xiàn)在,當(dāng)你點(diǎn)擊Launch,Rancher就會(huì)把Artifactory部署到你的集群上。
當(dāng)安裝完成后,紅色的進(jìn)度條會(huì)變更為綠色。這時(shí)如果你點(diǎn)到artifactory上,它會(huì)展示Rancher給你創(chuàng)建好的資源。在本例中,它在Kubernetes中創(chuàng)建了三個(gè)工作負(fù)載,三個(gè)服務(wù),一個(gè)卷以及一個(gè)加密。
選擇Workloads,你可以看到它們都在運(yùn)行:
解決Pending Ingress
在本文發(fā)布時(shí),出現(xiàn)了一個(gè)bug導(dǎo)致Ingress一直是Pendding狀態(tài)。如果你在單擊Load Balancing時(shí)看到這一點(diǎn),請(qǐng)你閱讀解決方案。
想要解決pendding Ingress問題,我們需要?jiǎng)?chuàng)建Ingress能發(fā)送流量的服務(wù)。點(diǎn)擊右上角的Import YAML,在打開的窗口中,粘貼下面的信息,然后單擊Import。
訪問Artifactory
現(xiàn)在在WordLoads界面,artifactory-artifactory-nginx工作負(fù)載下會(huì)顯示出用于查看443/tcp和80/tcp端口的可點(diǎn)擊鏈接:
當(dāng)你選擇443/tcp時(shí),它會(huì)在瀏覽器的新標(biāo)簽頁中打開Artifactory UI。因?yàn)槟J(rèn)情況下它使用了self-signed證書,你的瀏覽器可能會(huì)彈出一個(gè)警告,要求在執(zhí)行之前接受證書。
讓Artifactory工作起來
現(xiàn)在你已經(jīng)有了一個(gè)功能齊全的二進(jìn)制工件倉庫可供差遣。過程不是很復(fù)雜不是嗎!接下來在開始使用它之前,還需要進(jìn)行一些配置。
首先,需要設(shè)置管理密碼。當(dāng)它詢問有關(guān)代理服務(wù)器的信息時(shí),除非你已經(jīng)將它部署到需要代理配置的位置上了,否則就選擇skip。創(chuàng)建一個(gè)通用倉庫,選擇Finish。
現(xiàn)在,我們來快速過一下一些基本用法。
首先,我們上傳之前用于創(chuàng)建Artifactory安裝的helm chart。
在左側(cè)菜單中選擇Artifacts,可以看到剛剛創(chuàng)建的通用倉庫。選擇它,然后在右上角選擇Deploy,將Helm chart的zipfile(或任何其他文件)上傳到倉庫中。
等部署完畢之后,你就能在倉庫中的Tree選項(xiàng)下看到它了。
雖然這只是對(duì)Artifactory的一個(gè)簡單測(cè)試,但它已經(jīng)是完全能使用的了。
你可以將Artifactory用于二進(jìn)制工件存儲(chǔ)和分發(fā),并使用Rancher輕松地管理工作負(fù)載、集群以及與部署本身相關(guān)的內(nèi)容。
清 理
如果你已經(jīng)完成了本文中的demo,那么就可以從Rancher的Global Cluster視圖中刪除Kubernetes集群。這步操作將會(huì)從GKE中把它移除掉。這之后,你就可以直接從GCE中刪除Rancher Server的實(shí)例了。
關(guān) 閉
JFrog Artifactory非常的強(qiáng)大。每天都有大量的組織使用它,掌握快速且安全地將它部署到Kubernetes集群中的能力是非常有用的。
根據(jù)他們的文獻(xiàn)所述,Artifactory讓用戶可以“快速發(fā)布或快速清除”。同樣的,Rancher讓你能快速部署,同時(shí)控制資源和周圍環(huán)境的安全性。你可以在世界任何地方構(gòu)建、部署、拆卸、加密、監(jiān)控Kubernetes集群以及與之交互,而所有的這些都只來自于一個(gè)簡單的、方便的、安全的接口。
沒什么比這更容易的了!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。