如何利用 Helm 簡化應用部署?

阿裏雲問答 2022-01-07 09:38:50 阅读数:60

利用 helm 部署

如何利用 Helm 簡化應用部署?




采納答案1:

本文檔介紹 Helm 的基本概念和使用方式,演示在阿裏雲的 Kubernetes 集群上利用 Helm 來部署示例應用 WordPress 和 Spark。

前提條件 通過 Helm 部署應用之前,利用阿裏雲容器服務來創建 Kubernetes 集群。參見創建Kubernetes集群。 在 Kubernetes 集群創建的同時,Tiller 將會被自動部署到集群之中,並且在所有的 master 節點上自動安裝 Helm CLI 以及配置指向阿裏雲的 Chart 存儲庫。

查看您集群中 Kubernetes 的版本。 僅支持 Kubernetes 版本 1.8.4 及以上的集群。對於 1.8.1 版本的集群,您可以在集群列錶中進行集群昇級操作。

背景信息 在 Kubernetes 中,應用管理是需求最多、挑戰最大的領域。Helm 項目提供了一個統一軟件打包方式,支持版本控制,簡化 Kubernetes 應用分發與部署中的複雜性。阿裏雲容器服務在應用目錄管理功能中集成了 Helm 工具,並進行了功能擴展,支持官方 Repository,讓您快速部署應用。您可以通過命令行或容器服務控制臺界面兩種方式進行部署。

本文檔介紹 Helm 的基本概念和使用方式,演示在阿裏雲的 Kubernetes 集群上利用 Helm 來部署示例應用 WordPress 和 Spark。

Helm 基本概念 Helm 是由 Deis 發起的一個開源工具,有助於簡化部署和管理 Kubernetes 應用。

Helm 可以理解為 Kubernetes 的包管理工具,可以方便地發現、共享和使用 Kubernetes 構建的應用,它包含以下幾個基本概念。

Chart:一個 Helm 包,其中包含了運行一個應用所需要的鏡像、依賴和資源定義等,還可能包含 Kubernetes 集群中的服務定義,類似 Homebrew 中的 formula、APT 的 dpkg 或者 Yum 的 rpm 文件。 Release:在 Kubernetes 集群上運行的 Chart 的一個實例。在同一個集群上,一個 Chart 可以安裝很多次。每次安裝都會創建一個新的 release。例如一個 MySQL Chart,如果想在服務器上運行兩個數據庫,就可以把這個 Chart 安裝兩次。每次安裝都會生成自己的 Release,會有自己的 Release 名稱。 Repository:用於發布和存儲 Chart 的存儲庫。 Helm 組件 Helm 采用客戶端/服務器架構,由如下組件組成:

Helm CLI 是 Helm 客戶端,可以在 Kubernetes 集群的 master 節點或者本地執行。 Tiller 是服務器端組件,在 Kubernetes 集群上運行,並管理 Kubernetes 應用程序的生命周期。 Repository 是 Chart 存儲庫,Helm 客戶端通過 HTTP 協議來訪問存儲庫中 Chart 的索引文件和壓縮包。 通過控制臺界面部署應用 登錄容器服務管理控制臺。 在 Kubernetes 菜單下,單擊左側導航欄中的市場 > 應用目錄,進入應用目錄列錶頁面。 選擇一個 chart(本示例選擇 WordPress),單擊該 chart,進入 chart 詳情頁面。 chart詳情 在頁面右側,填寫部署的基本信息。 集群:應用要部署到的集群。 命名空間:選擇命名空間。默認為 default。 發布名稱:填寫應用發布的名稱。 部署基本信息 單擊參數,對配置進行修改。 本示例中使用雲盤的動態數據卷綁定一個PVC,參見雲盤存儲卷使用說明。 說明 您需要預先創建一個雲盤存儲卷(PV),並且存儲卷的容量不能小於PVC定義的數值。 修改參數配置 配置完成後,單擊創建,部署成功後,默認進入該應用的發布頁面。 創建應用 單擊左側導航欄中的路由與負載均衡 > 服務,選擇所需的集群和命名空間,找到對應的服務,您可獲取 http/https 外部端點的地址。 服務 單擊上面的訪問地址,進入 WordPress 博客發布頁面。 通過命令行部署應用 通過命令行部署應用時,您可以 SSH 登錄 Kubernetes 集群的 master 節點 (Helm CLI 已自動安裝並已配置Repository)進行操作,參見SSH 訪問 Kubernetes 集群。您也可以在本地安裝配置 kubectl 和 Helm CLI。

本示例以在本地安裝配置 kubectl 和 Helm CLI 並部署 WordPress 和 Spark 應用為例進行說明。

安裝配置 kubectl 和 Helm CLI。 在本地計算機上安裝和配置 kubectl。 參見通過kubectl連接Kubernetes集群。 若要查看 Kubernetes 目標集群的信息,鍵入命令 kubectl cluster-info。

在本地計算機上安裝 Helm。 安裝方法,參見 Install Helm。 部署 WordPress。 下面我們將利用 Helm,來部署一個 WordPress 博客網站。

輸入以下命令。 helm install --name wordpress-test stable/wordpress 說明 阿裏雲 Kubernetes 服務提供塊存儲(雲盤)的動態存儲卷支持,您需要預先創建一個雲盤存儲卷。 得到以下的結果。

NAME: wordpress-test LAST DEPLOYED: Mon Nov 20 19:01:55 2017 NAMESPACE: default STATUS: DEPLOYED ... 利用如下命令查看 WordPress 的 release 和 service。 helm list kubectl get svc 利用以下命令查看 WordPress 相關的 Pod,並等待其狀態變為 Running。 kubectl get pod 利用以下命令獲得 WordPress 的訪問地址。 echo http://$(kubectl get svc wordpress-test-wordpress -o jsonpath='{.status.loadBalancer.ingress[0].ip}') 通過上面的 URL,可以在瀏覽器上看到熟悉的 WordPress 站點。

也可以根據 Charts 的說明,利用如下命令獲得 WordPress 站點的管理員用戶和密碼。

echo Username: user echo Password: $(kubectl get secret --namespace default wordpress-test-wordpress -o jsonpath="{.data.wordpress-password}" | base64 --decode) 如需徹底删除 WordPress 應用,可輸入如下命令。 helm delete --purge wordpress-test 使用第三方的 Chart 存儲庫 您除了可以使用預置的阿裏雲的 Chart 存儲庫,也可以使用第三方的 Chart 存儲庫(前提是網絡是可達的)。使用如下命令格式添加第三方 Chart 存儲庫。

helm repo add 存儲庫名 存儲庫URL helm repo update 關於 Helm 相關命令的說明,您可以參見 Helm 文檔。

參考信息 Helm 催生了社區的發展壯大,越來越多的軟件提供商,如 Bitnami 等公司,開始提供高質量的 Charts。您可以在 https://kubeapps.com/ 中尋找和發現已有的 Charts。


版权声明:本文为[阿裏雲問答]所创,转载请带上原文链接,感谢。 https://gsmany.com/2022/01/202201070938503661.html