溫馨提示×

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

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

在Kubernetes集群上部署和管理JFrog Artifactory

發(fā)布時(shí)間:2020-06-17 21:43:22 來源:網(wǎng)絡(luò) 閱讀:1794 作者:RancherLabs 欄目:云計(jì)算

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

  • Artifactory OSS version 6.3.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)目管理

  • 所有Kubernetes的功能都不需要在本地安裝任何軟件

安裝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):

在Kubernetes集群上部署和管理JFrog Artifactory

請(qǐng)你根據(jù)自己的部署修改project以及zone參數(shù)。

幾分鐘之后你應(yīng)該能看到實(shí)例已經(jīng)準(zhǔn)備好了。

在Kubernetes集群上部署和管理JFrog Artifactory

記錄下來EXTERNAL_IP地址,稍后連接Rancher Server的時(shí)候你可能會(huì)用到。

計(jì)算節(jié)點(diǎn)啟動(dòng)并運(yùn)行之后,我們通過GCE的CLI(命令行接口)SSH到它。

在Kubernetes集群上部署和管理JFrog Artifactory

同樣,注意調(diào)整project和zone參數(shù),在你用不同的name或者在不同的zone啟動(dòng)節(jié)點(diǎn)時(shí)它們會(huì)變化。

連接之后,運(yùn)行下面的命令安裝一些依賴包并且安裝Docker CE。Rancher Server是一個(gè)Docker容器,如果想要繼續(xù)安裝的話我們就需要用到Docker了。

在Kubernetes集群上部署和管理JFrog Artifactory

有了這些之后,我們就可以部署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端口

在Kubernetes集群上部署和管理JFrog Artifactory

如果一切正常,在返回提示符之前Docker會(huì)打印出下載的狀態(tài),接著是新的容器ID。

在Kubernetes集群上部署和管理JFrog Artifactory

恭喜你!你已經(jīng)成功啟動(dòng)了一個(gè)Rancher Server實(shí)例。

在瀏覽器中輸入剛剛你記錄下來的EXTERNAL_IP地址,你需要接受Rancher默認(rèn)安裝的self-signed證書。這之后,會(huì)彈出歡迎界面,設(shè)置密碼(記住它!)接著繼續(xù)下一頁。

在Kubernetes集群上部署和管理JFrog Artifactory

在這一頁面上你需要設(shè)置Rancher Server的URL。在生產(chǎn)部署中這可能是一個(gè)主機(jī)名,比如rancher.yourcompany.com,但是如果你使用的是demo server,可以直接使用上面的EXTERNAL_IP地址。

在Kubernetes集群上部署和管理JFrog Artifactory

點(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):

在Kubernetes集群上部署和管理JFrog Artifactory

輸出的service account會(huì)代替<SA>。復(fù)制整個(gè)地址并把它用到下面的命令:

在Kubernetes集群上部署和管理JFrog Artifactory

這樣會(huì)在當(dāng)前文件夾下創(chuàng)建一個(gè)名為key.json的文件。這就是Service Account私鑰,Rancher將用它來創(chuàng)建集群:

在Kubernetes集群上部署和管理JFrog Artifactory

你可以把文件的內(nèi)容粘貼到文本框中,也可以點(diǎn)擊Read from a file,選擇key.json文件。Rancher將使用該信息生成一個(gè)頁面,在頁面中配置你的新集群:

在Kubernetes集群上部署和管理JFrog Artifactory

設(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)的了。

在Kubernetes集群上部署和管理JFrog Artifactory

安裝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倉庫的位置。

在Kubernetes集群上部署和管理JFrog Artifactory

點(diǎn)擊Create,JFrog倉庫就會(huì)出現(xiàn)在自定義目錄的列表中了。

在Kubernetes集群上部署和管理JFrog Artifactory

部署Artifactory

我們接著部署Artifactory。在Global視圖中,選擇jfrog-artifactory集群下的默認(rèn)項(xiàng)目:

在Kubernetes集群上部署和管理JFrog Artifactory

進(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è)庫

在Kubernetes集群上部署和管理JFrog Artifactory

當(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的值。

在Kubernetes集群上部署和管理JFrog Artifactory

現(xiàn)在,當(dāng)你點(diǎn)擊Launch,Rancher就會(huì)把Artifactory部署到你的集群上。

在Kubernetes集群上部署和管理JFrog 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)行:

在Kubernetes集群上部署和管理JFrog Artifactory

解決Pending Ingress

在本文發(fā)布時(shí),出現(xiàn)了一個(gè)bug導(dǎo)致Ingress一直是Pendding狀態(tài)。如果你在單擊Load Balancing時(shí)看到這一點(diǎn),請(qǐng)你閱讀解決方案。

在Kubernetes集群上部署和管理JFrog Artifactory

想要解決pendding Ingress問題,我們需要?jiǎng)?chuàng)建Ingress能發(fā)送流量的服務(wù)。點(diǎn)擊右上角的Import YAML,在打開的窗口中,粘貼下面的信息,然后單擊Import。

在Kubernetes集群上部署和管理JFrog Artifactory

訪問Artifactory

現(xiàn)在在WordLoads界面,artifactory-artifactory-nginx工作負(fù)載下會(huì)顯示出用于查看443/tcp和80/tcp端口的可點(diǎn)擊鏈接:

在Kubernetes集群上部署和管理JFrog Artifactory

當(dāng)你選擇443/tcp時(shí),它會(huì)在瀏覽器的新標(biāo)簽頁中打開Artifactory UI。因?yàn)槟J(rèn)情況下它使用了self-signed證書,你的瀏覽器可能會(huì)彈出一個(gè)警告,要求在執(zhí)行之前接受證書。

在Kubernetes集群上部署和管理JFrog Artifactory

讓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(或任何其他文件)上傳到倉庫中。

在Kubernetes集群上部署和管理JFrog Artifactory

等部署完畢之后,你就能在倉庫中的Tree選項(xiàng)下看到它了。

在Kubernetes集群上部署和管理JFrog Artifactory

雖然這只是對(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è)簡單的、方便的、安全的接口。

沒什么比這更容易的了!

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

免責(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)容。

AI