如果您來自開發背景,您可能知道「套件管理器」(Package Manager)這個術語。套件管理器允許您安裝依賴項、升級和降級版本等等。在本教學中,我們將介紹一個非常受歡迎的套件管理器,用於 Kubernetes,稱為 Helm.
Helm 有助於管理 Kubernetes applications。使用 Helm,您可以定義 Kubernetes 應用程式,指定應用程式的中繼資料、依賴項和設定。Helm 還可以在 Kubernetes 上安裝應用程式,以及升級和降級應用程式。最後,您可以使用 Helm 檔案與他人分享您的應用程式。在本教學中,我們將向您展示如何在 Windows 作業系統上安裝 Helm 3,以及設定、升級、回滾和管理 chart 與 release。
讓我們開始吧!
先決條件
在開始本教學之前,您需要確保先安裝了以下內容:
-
如果您尚未在 Windows 上設定 Kubernetes,最簡單的方法是從 Docker Desktop 開始。請前往 https://www.docker.com/products/docker-desktop。下載並安裝 Docker Desktop。在本教學中,我們將使用 Windows。因此,我們需要安裝 WSL 2 後端。這是適用於 Windows 的 Linux 子系統,並支援 Docker:

一旦 Docker Desktop 準備就緒,請前往 設定 -> Kubernetes,並勾選 Enable Kubernetes:


要檢查一切是否正常運作,請前往您正在使用的終端機/PowerShell,並輸入以下指令:
|
1 |
kubectl |
如果您看到以下輸出,就可以開始了:

或者,如果您決定在 Ubuntu 上運作,可以參考我們的詳細指南:如何在 Ubuntu 20.04 上安裝和使用 Kubernetes.
此外,在開始安裝程序之前,讓我們來看看與 Helm 相關的一些關鍵術語。
-
Charts
Kubernetes YAML 檔案會打包在 Helm chart 中。
-
Helm Repositories
Helm 提供對存放庫的支援。Helm 存放庫是存放 Helm chart 的位置,以便其他人可以使用它們。Helm 允許您建立自己的存放庫,並支援第三方存放庫。
-
Tiller
Tiller 是 Helm 的伺服器端組件。它需要安裝在 Kubernetes 叢集上。它會接收 Helm Chart 並相應地設定叢集。
您也可以查看我們的 部落格文章,其中詳細介紹了 Helm 並解釋了 Helm 簡化應用程式部署到 Kubernetes 的方法。
現在,我們準備好開始了!
步驟 1:安裝 Helm 3
安裝 Helm 3 是一個簡單直接的過程。版本發佈可在 Helm GitHub 頁面上取得。您可以根據您選擇的作業系統下載要使用的版本。在本教學中,我們將使用 Windows 作業系統,因此對於 Windows,請遵循以下步驟:
-
在 GitHub 頁面上,下載適用於 Windows 的 Helm 二進位檔案。
-
下載完成後,您將在您的 下載 資料夾或您下載它的任何地方找到壓縮檔。
-
接下來,將此壓縮檔移至方便的位置並解壓縮。您應該會在解壓縮後的內容中找到 helm.exe 檔案:

-
複製資料夾位置並將其新增至系統環境變數中的 PATH 變數。
-
完成後,打開終端機並輸入以下指令:
|
1 |
helm |
如果您看到以下輸出,代表您已完成 Helm 安裝。然後您可以繼續進行後續步驟:

步驟 2:設定存放庫並安裝 Helm Chart
Helm 支援存取和管理存放庫。存放庫是儲存 Helm Chart 的地方。最初,Helm 沒有自己的存放庫。相反地,Helm 鼓勵管理員和 DevOps 專家建立自己的存放庫。這意味著如果您想在 Kubernetes 叢集上擁有 MongoDB ,您需要自己將其新增至 Helm 存放庫。為了幫助您尋找存放庫,您可以使用 Artifact.io。它是所有 Helm chart 的開源目錄,由 CNCF.
下面我們將向您展示如何設定儲存庫以及下載和安裝軟體。我們將以安裝 MongoDB 為例。假設您要在 Kubernetes 叢集上安裝 MongoDB。請按照以下步驟進行安裝:
-
首先,前往 https://artifacthub.io.
-
接下來,搜尋 MongoDB。搜尋後,您會看到有許多可用的選項。我們感興趣的是 MongoDB by Bitnami:

-
搜尋結束後,您將看到不同的選項。在每個 chart 旁,您可以看到發行者、版本和其他相關資訊。找到所需的 chart 後,您需要選擇它。在這裡,我們點擊 MongoDB by Bitnami:

-
現在技術部分可以真正開始了。如果您查看整體說明,您會發現其中為任何想要安裝這些服務的人提供了完善的指南。您可以查看不同的選項、設定、參數、如何刪除 chart,以及您可能需要瞭解的任何其他資訊。找到 Install 按鈕並點擊它:

-
這裡有安裝 MongoDB 所需的一切。首先,您需要 新增儲存庫 然後 安裝 chart。要新增儲存庫,請開啟終端機並輸入以下指令:
|
1 |
helm repo add bitnami https://charts.bitnami.com/bitnami |
您將看到以下輸出:

設定好儲存庫後,您需要安裝 chart。從對話框中複製指令,然後執行它:
|
1 |
helm install my-mongodb bitnami/mongodb --version 10.23.10 |
程序完成後,您就完成了 MongoDB 的設定。
步驟 3:管理 Release
在軟體開發中,Release(版本)管理至關重要。總會有需要更新或復原到先前版本的時候。幸運的是,在 Helm 中管理 Release 是一個相對簡單的過程。Helm 會保留版本號,以便您隨時可以復原到先前的版本。同樣地,假設您的應用程式已部署並上線,而您需要進行設定——Helm 也支援這一點。下面我們將介紹一些最佳實踐,以協助您執行這些操作。
-
如何更新應用程式
假設在您的 values.YAML 檔案中,您提到需要執行兩個應用程式執行個體。這可能是因為您的應用程式需要高可用性。但後來,您意識到應用程式需要有三個執行個體。如果沒有 Helm,您需要先關閉應用程式,然後進行設定並重新部署。使用 Helm,您可以先在 values.YAML 檔案中進行修改,然後只需執行以下指令。在 Helm 檔案所在的目錄中,執行以下指令:
|
1 |
helm upgrade <app-name> |
-
如何復原 Release
現在假設您的 Release 出現問題。也許您設定了錯誤的連接埠號碼或路徑。要復原到任何先前的版本,您只需執行以下指令,然後 Helm 就會將 Release 還原到先前的版本:
|
1 |
C:\> helm rollback <release> |
Helm 將處理所有 Release 和版本控制。這是將 Helm 與 Kubernetes 結合使用的最大優勢之一。要查看任何應用程式的所有 Release,請在包含 Helm chart 和 YAML 檔案的目錄中執行以下指令:
|
1 |
helm history RELEASE |
步驟 4:建立您自己的 Chart
最後,既然您已經熟悉 Helm 並瞭解其運作方式,是時候建立您自己的 chart 了。透過建立您自己的自訂 chart,您可以輕鬆分發您的應用程式,並將其託管在任何儲存庫中。如果您按照我們下面概述的步驟操作,建立 chart 是一個相當簡單的過程。首先,開啟終端機並執行以下指令:
|
1 |
helm create <chart-name> |
這將建立一個以您提供的名稱命名的目錄。我們使用的名稱是 my-app. Let’s see the contents of the folder:
|
1 2 |
cd my-app ls |
您將獲得以下結構:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
charts/ templates/ ├─ tests/ │ ├─ test-connection.yaml ├─ deployment.yaml ├─ hpa.yaml ├─ ingress.yaml ├─ NOTES.txt ├─ service.yaml ├─ serviceaccount.yaml ├─ _helpers.tpl ├─ .helmignore ├─ Chart.yaml ├─ values.yaml |
以下是輸出內容的摘要:
- charts 資料夾 – 用於添加依賴的 chart。
- templates 資料夾 – 將部署在叢集中的設定。
- YAML 檔案 – Helm chart 結構的大綱。
- YAML 檔案 – 用於設定 chart 的格式化資訊。
接下來,請按照以下步驟安裝和設定您的 chart:
-
設定映像檔與拉取
開啟 values.YAML 檔案。在此處找到 image 節點。然後,您可以根據需要進行設定。可能的值為 IfNotPresent, Always, Latest。您可以在官方文件中找到完整的數值集合。
-
覆寫 chart 名稱
此步驟為選填,因此如果您願意,可以跳過它:

-
Service 名稱
開啟
values.YAML 檔案並找到
serviceName。然後,新增所需的名稱。在安裝 chart 之前先準備好名稱是個好習慣:

-
安裝 chart
最後,要安裝 chart,請執行以下命令:
|
1 |
helm install <full name override> <chart name>/ --values <chart name>/values.yaml |
我們建議您在將 chart 部署到叢集之前,仔細探索所有可用於設定 chart 的選項。
為什麼開發人員喜愛 Helm
Helm 正受到需要不時啟動和停止部署的開發人員和 DevOps 專家的青睞。以下是 Helm 的一些主要優勢:
-
Helm 簡化了部署流程。它沒有帶來任何需要學習的新事物,而是讓現有的 YAML 部署變得易於由使用者進行設定。
-
與其頻繁更改設定(例如叢集數量或連接埠),Helm 讓這一切變得易於設定。使用者只需更新 values.YAML 檔案。
-
Helm 允許透過將應用程式封裝到儲存庫中來與其他使用者共享。
結論
在本教學中,我們介紹了如何在 Windows 上從頭開始設定 Helm 套件管理器。我們探討了要發揮 Helm 威力所必須清楚理解的不同核心概念。我們還看到了 Helm 探索儲存庫中可用的不同功能。您現在應該對 Helm 感到熟悉,並能在下一個 Kubernetes 專案/部署中實作它。
若要進一步增加您對 Kubernetes 及其功能的了解,您可以查看我們部落格中的更多教學:
- 認識 Kubernetes
- 如何在 Ubuntu 18.04 上使用 Kubeadm 建立 Kubernetes 叢集
- 在具有 Ubuntu 18.04 的 Kubernetes 叢集上部署 PHP 應用程式
祝您運算愉快!
留言
目前尚無留言。成為第一個留言的人吧。