全部產品
Search
文件中心

Container Service for Kubernetes:使用Helm簡化應用部署

更新時間:Jun 19, 2024

Container ServiceACK在應用目錄管理功能中整合了Helm工具,並進行了功能擴充,支援官方Repository,讓您可以通過命令列或Container Service管理主控台兩種方式進行應用的快速部署。本文介紹Helm的基本概念以及如何使用Helm部署應用。

前提條件

已建立Kubernetes託管版叢集(版本不低於1.8.4)。具體操作,請參見建立Kubernetes託管版叢集

建立叢集時,Tiller將被自動部署到叢集,並在所有的Master節點上自動安裝Helm CLI以及配置指向阿里雲的Chart存放庫。

Helm介紹

在Kubernetes中,應用管理是需求最多、挑戰最大的領域。Helm專案提供了一個統一的軟體打包方式,支援版本控制,降低Kubernetes應用分發和部署的複雜性。Helm是由Deis發起的一個開源工具,有助於簡化部署和管理Kubernetes應用。Helm為Kubernetes的包管理工具,可以方便地發現、共用和使用Kubernetes構建的應用,基本概念如下。

類別

名稱

說明

Helm概念

Chart

一個Helm包,其中包含了運行一個應用所需要的鏡像、依賴和資源定義等,還可能包含Kubernetes叢集中的服務定義,類似Homebrew中的formula、APT的dpkg或者Yum的rpm檔案。

Release

在Kubernetes叢集上啟動並執行Chart的一個執行個體。在同一個叢集上,一個Chart可以安裝多次。每次安裝都會建立一個新的Release。例如,如果一個MySQL Chart想在伺服器上運行兩個資料庫,可以將此Chart安裝兩次,並在每次安裝中產生自己的Release以及Release名稱。

Helm組件(採用用戶端/服務端架構)

Helm CLI

Helm用戶端,可以在Kubernetes叢集的Master節點或者本地執行。

Tiller

伺服器端組件,在Kubernetes叢集上運行,並管理Kubernetes應用程式的生命週期。

Repository

Chart存放庫,Helm用戶端通過HTTP協議來訪問存放庫中Chart的索引檔案和壓縮包。

使用Helm部署應用

通過控制台使用Helm部署應用

  1. 登入Container Service管理主控台

  2. 在左側導覽列,選擇市場 > 應用市場

  3. 應用目錄頁簽,選擇一個Chart(本樣本選擇ack-wordpress-sample),單擊該Chart,進入Chart詳情頁面。

  4. 單擊右上方的一鍵部署,在建立面板中,選擇叢集和命名空間,然後單擊下一步

  5. 參數配置頁面,修改配置資訊,然後單擊確定

    本樣本使用雲端硬碟動態資料卷綁定一個PVC。具體操作,請參見使用雲端硬碟動態儲存裝置卷

    說明

    需要先建立一個雲端硬碟儲存卷(PV),並且儲存卷的容量不能小於PVC定義的數值。

    chart.png

  6. 在左側導覽列,選擇網路 > 服務

  7. 在服務列表中,找到對應的服務,擷取HTTP和HTTPS外部端點的地址,然後單擊外部端點的訪問地址,進入WordPress部落格發佈頁面。

    說明

    訪問外部端點前,請確保安全性群組中已添加外部端點的連接埠。關於配置叢集安全性群組,請參見配置叢集安全性群組

通過命令列使用Helm部署應用

通過命令列部署應用時,您可以通過SSH登入Kubernetes叢集。具體操作,請參見通過SSH串連ACK專有叢集的Master節點。您也可以在本地安裝配置kubectl和Helm CLI,Helm CLI將自動安裝並已配置Repository,Repository安裝命令如下。

 helm repo add aliyunhub https://aliacs-app-catalog.oss-cn-hangzhou.aliyuncs.com/charts-incubator/

本樣本以在本地安裝配置kubectl和Helm CLI並部署WordPress和Spark應用為例,介紹如何部署應用。

  1. 安裝配置kubectl和Helm CLI。

    1. 在本機電腦上安裝和配置kubectl。具體操作,請參見擷取叢集KubeConfig並通過kubectl工具串連叢集

      通過kubectl cluster-info命令,查看Kubernetes目的地組群的資訊。

    2. 在本機電腦上安裝Helm。具體操作,請參見Install Helm

  2. 通過Helm部署WordPress部落格網站。

    1. 執行以下命令,部署WordPress。

      helm install --name wordpress-test stable/wordpress
      說明

      Container ServiceACK支援使用雲端硬碟動態儲存裝置卷,需要先建立一個雲端硬碟儲存卷。具體操作,請參見使用雲端硬碟動態儲存裝置卷

      預期輸出:

      NAME:   wordpress-test
      LAST DEPLOYED: Mon Nov  20 19:01:55 2017
      NAMESPACE: default
      STATUS: DEPLOYED
      ...
    2. 執行以下命令,查看WordPress的發布版本和Service。

      helm list
      kubectl get svc
    3. 執行以下命令,查看WordPress相關的Pod,並等待其狀態變為Running。

      kubectl get pod
    4. 執行以下命令,獲得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)
    5. 可選:執行以下命令,刪除WordPress應用。

      helm delete --purge wordpress-test

使用第三方的Chart存放庫

您不僅可以使用預置的阿里雲的Chart存放庫,若網路允許,也可以使用第三方的Chart存放庫。

使用如下命令格式,添加第三方Chart存放庫。關於Helm相關命令的更多說明,請參見Helm文檔

helm repo add 存放庫名 存放庫URL
helm repo update

參考資訊

隨著Helm的應用越發廣泛,越來越多的軟體供應商開始提供高品質的Chart。如您有其他Chart需求,可在https://kubeapps.com/中探索。

相關文檔