靈活安裝 Harbor 的幾種方法

題圖攝於舊金山painted Ladies:維多利亞建築羣

(未經授權,請勿轉載本公衆號文章)

注:微信公衆號不按照時間排序,請關注“亨利筆記”,並加星標以置頂,以免錯過更新。

本文內容節選自最新出版的《 Harbor權威指南》 一書第3章,詳述 Harbor 在不同環境中安裝部署的多種方法,作者爲 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 ),以免錯過更新。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章