題圖攝於舊金山painted Ladies:維多利亞建築羣
(未經授權,請勿轉載本公衆號文章)
注:微信公衆號不按照時間排序,請關注“亨利筆記”,並加星標以置頂,以免錯過更新。
本文內容節選自最新出版的《 Harbor權威指南》 一書第3章,詳述 Harbor 在不同環境中安裝部署的多種方法,作者爲 Harbor 開源項目維護者王巖,值得 Harbor 用戶收藏以備後用。
現招募《Harbor權威指南》英文版翻譯人員,有預算,感興趣的同學請留言聯繫。
《Harbor權威指南》目前噹噹網優惠中,點擊下圖直接購買。
相關文章:
Harbor 提供了多種安裝方式,其中包括在線安裝、離線安裝、源碼安裝及基於Helm Chart 的安裝。
· 在線安裝:通過在線安裝包安裝 Harbor,在安裝過程中需要從 Docker Hub 獲取預置的 Harbor 官方組件鏡像。
· 離線安裝:通過離線安裝包安裝 Harbor,從離線安裝包中裝載所需要的 Harbor組件鏡像。
· 源碼安裝:通過編譯源碼到本地安裝 Harbor。
· 基於 Helm Chart 的安裝:通過 Helm 安裝 Harbor Helm Chart 到 Kubernetes 集羣。
在單機環境下安裝 Harbor
在單機環境下,可以通過在線、離線或者源碼安裝方式安裝 Harbor 。
· 基本配置
獲取 Harbor 在線、離線安裝包後將其解壓,從中可以看到 harbor.yml.tmpl 文件,該文件是 Harbor 的配置文件模版。用戶可以把 harbor.yml.tmpl 文件複製並命名爲 harbor.yml,將 harbor.yml 文件作爲安裝 Harbor 的配置文件。
· 離線安裝
首先,獲取 Harbor 的離線安裝包,可從項目的官方發佈網站 GitHub 獲取,獲取目錄爲 github.com/goharbor/harbor/releases。
在Harbor的發佈頁面上提供了離線和在線安裝文件。
◎ harbor-offline-installer-v2.0.0.tgz:爲離線安裝包,包含了Harbor預置的所有鏡像文件、配置文件等。(本文爲公衆號:亨利筆記 原創文章)
◎ harbor-offline-installer-v2.0.0.tgz.asc:爲離線安裝包的簽名文件,用戶通過它可以驗證離線安裝包是否被官方簽名和驗證。
◎ md5sum:包含上述兩個文件的md5值,用戶通過它可以校驗下載文件的正確性。
然後,選擇對應的版本,下載並解壓離線安裝包:
$ curl https://github.com/goharbor/harbor/releases/download/v2.0.0/harbor-offline-installer-v2.0.0.tgz
$ tar -zvxf ./harbor-offline-installer-v2.0.0.tgz
解壓離線安裝包,可以看到在harbor文件夾下有如下文件。
◎ LICENSE:許可文件。
◎ common.sh:安裝腳本的工具腳本。
◎ harbor.v2.0.0.tar.gz:各個功能組件的鏡像文件壓縮包。
◎ harbor.yml.tmpl:配置文件的模板,在配置好後需要將此文件的後綴名“tmpl”去掉或者複製生成新的文件harbor.yml。
◎ install.sh:安裝腳本。
◎ prepare:準備腳本,將harbor.yml配置文件的內容注入各組件的配置文件中。
最後,完成配置後,通過執行安裝腳本 install.sh 啓動安裝。安裝腳本的流程大致如下。
(1)環境檢查,主要檢查本機的 Docker 及 docker-compose 版本。
(2)載入離線鏡像文件。
(3)準備配置文件並生成 docker-compose.yml 文件。
(4)通過 docker-compose 啓動 Harbor 的各組件容器。
安裝腳本支持 Harbor 組件選裝,除核心組件外,其他功能組件均可通過參數指定。安裝完成後,可通過瀏覽器登錄管理控制檯或者 Docker 客戶端推送鏡像,驗證安裝是否成功。(本文爲公衆號:亨利筆記 原創文章)
· 在線安裝
不同於離線安裝,在線安裝需要安裝機器有訪問 Docker Hub 的能力。因爲機器在安裝過程中需要通過 Docker 獲取 Harbor 在 Docker Hub 中預置好的鏡像文件。(在搜狐、CSDN等網站轉載亨利筆記的文章均爲未經授權的剽竊)
首先,獲取 Harbor 在線安裝包,可從項目的官方發佈網站 GitHub 獲取,GitHub下載目錄爲github.com/goharbor/harbor/releases。
在Harbor的發佈頁面上提供了在線安裝文件。
◎harbor-online-installer-v2.0.0.tgz:爲在線安裝包,包含預置的安裝腳本、配置文件模板和許可文件。
◎harbor-online-installer-v2.0.0.tgz.asc:爲在線安裝包的簽名文件,用戶通過它可以驗證在線安裝包是否被官方簽名和驗證。
◎md5sum:包含了上述兩個文件的md5值,用戶通過它可以校驗下載文件的正確性。
然後,選擇對應的版本,下載並解壓在線安裝包:(本文爲公衆號:亨利筆記 原創文章)
$ curl https://github.com/goharbor/harbor/releases/download/v2.0.0/harbor-online-installer-v2.0.0.tgz
$ tar -zvxf ./harbor-online-installer-v2.0.0.tgz
解壓在線安裝包,可以看到如下文件。
◎ LICENSE:許可文件。
◎ common.sh:安裝腳本的工具腳本。
◎ harbor.yml.tmpl:配置文件的模板文件。
◎install.sh:安裝腳本。
◎ prepare:準備腳本,將配置文件的內容注入各組件的配置文件中。
參考離線安裝執行安裝命令,並驗證安裝成功。
· 源碼安裝
Harbor 的源碼編譯安裝流程大致如下:
(1)獲取源碼。
(2)修改源碼配置文件。
(3)執行“make”命令。
爲什麼要編譯源碼呢?理解 “make” 命令編譯並構建 Harbor 的流程有助於開發者基於現有代碼進行二次開發和調試。在大多數情況下,用戶不需要修改 Harbor 源碼,使用在線、離線或者 Helm 方式安裝即可。如果有自己特殊的業務邏輯,並且此業務邏輯沒有被社區接受和進入某個 Release,或者需要訂製自己的管理頁面,就需要修改源碼。而爲了修改生效,需要編譯Harbor源碼。
通過Helm Chart 安裝 Harbor
當用戶希望在多節點環境或者生產環境下運行 Harbor 時,可能需要在 Kubernetes 集羣上部署 Harbor。爲此,Harbor提供了 Helm Chart 來幫助用戶在 Kubernetes 上部署 Harbor。(本文爲公衆號:亨利筆記 原創文章)
· 獲取 Helm Chart
在安裝前需要執行如下命令添加 Helm Chart 倉庫:
$ helm repo add harbor https://helm.goharbor.io
可以從 Harbor 的 Helm Chart 項目的官方發佈網站 GitHub 上查看 Release,目錄爲“github.com/goharbor/harbor-helm/releases”,如下圖所示。注意:這裏不推薦用戶從 GitHub 上直接下載 Release,推薦執行命令通過 Helm 下載。
· 配置 Helm Chart
本節詳細講解如何配置 Helm Chart 。以下介紹的各項配置可在安裝過程中通過“--set”命令指定,也可通過編輯 values.yaml 文件指定。(在搜狐、CSDN等網站轉載亨利筆記的文章均爲未經授權的剽竊)
若希望少量修改 Helm Chart 的配置完成安裝,則可重點關注以下3項配置。
1.配置服務的暴露方式
Harbor Helm-Chart 支持 Ingress、ClusterIP、NodePort 及 LoadBalancer等幾種訪問暴露(expose)方式。在 Kubernetes 集羣中使用 Harbor 的場景中可選擇ClusterIP。如果需要在 Kubernetes 集羣外提供 Harbor 服務,則可選擇使用Ingress、NodePort 或 LoadBalancer。
2.配置外部地址
外部地址是客戶端訪問 Harbor 的地址,也是 Harbor 的管理頁面顯示完整的“docker” 和 “helm”命令用到的地址;在 Docker、Helm 客戶端交互中暴露完整的Token服務地址。
3.配置數據持久化
Harbor Helm Chart 支持以下幾種存儲方式。
◎ Disable:關閉持久化數據。在使用過程中產生的數據會隨着 Pod 的消亡而消之。在生產環境下不建議用戶關閉持久化數據。
◎ Persistent Volume Claim:在部署 Kubernetes 集羣時需要一個默認的 StorageClass,該 StorageClass 將被用於動態地爲沒有設定 storage class 的 PersistentVolumeClaims 配置存儲。如果需要使用非默認的 StorageClass,則要在相應的組件配置下指定 storageClass。如果需要使用已有的持久卷,則要在相應的組件配置下指定 existingClaim。
◎ External Storage:外部存儲僅支持存儲鏡像和Chart文件。外部存儲支持的類型包括azure、gsc、s3、swift及oss。
· 安裝Helm Chart
在完成 Chart 的配置後,使用 Helm 安裝 HarborHelm Chart,命令如下,其中my-release 爲部署名。
◎ Helm 2:
$ helm install --name my-release harbor/harbor
◎ Helm 3:
$ helm install my-release harbor/harbor
《Harbor權威指南》目前噹噹網優惠中,點擊下圖直接購買。
要想了解雲原生、區塊鏈和人工智能等技術原理,請立即長按以下二維碼,關注本公衆號亨利筆記 ( henglibiji ),以免錯過更新。