天天看點

helm安裝_kubernetes叢集管理系列講座(十三)Helm簡介

課程目标

  • 了解helm概念
  • 了解helm v2與helm v3的差別
  • 安裝和使用helm v3

1. helm概念

我們在kubernetes叢集中建立應用的時候,一般會使用清單檔案manifest來規範我們的應用。典型的容器化應用程式會包含很多清單。Deployment、Service和ConfigMap的清單。我們可能還會建立一些Secret、Ingress和其他對象。每一個都需要一份清單。

從1.4版本開始,為了讓軟體的部署更加的規範化,Helm項目應運而生。Helm類似于yum或者apt這樣的包管理器,而Chart類似于包。有了Helm,我們就可以打包所有這些清單檔案,并使它們作為一個單獨的tar包使用。我們可以将tar包放在一個存儲庫中,搜尋該存儲庫,發現一個應用程式,然後使用一個指令部署并啟動整個應用程式。

伺服器運作在Kubernetes叢集中,而用戶端是本地的,也可以使本地筆記本電腦。我們可以使用用戶端來連接配接到多個應用程式存儲庫。

2. helm v2與helm v3

2.1. Helm v2和Tiller

helm工具使用一系列YAML檔案将Kubernetes應用程式打包成一個chart或包。這種方式允許使用者之間簡單的共享,使用模闆方案進行優化,以及來源跟蹤等。

zgxbwiuexxtg-BasicFlow-HelmandTiller.png

helm安裝_kubernetes叢集管理系列講座(十三)Helm簡介

2.2. 基礎的Helm和Tiller的流程

Helm的v2版本是由兩個元件構成的

  • 伺服器端叫Tiller,運作在kubernetes叢集之中
  • 用戶端叫Helm,在我們本地的機器上運作

Helm v2會在叢集中部署一個Tiller的pod,但是這樣會引發很多安全和叢集權限的問題。而Helm v3就不用部署這個pod了。

使用Helm用戶端,我們就可以浏覽包存儲庫(包含已釋出的Chart),并在Kubernetes叢集上部署這些Chart。kubernetes将下載下傳Chart并将請求傳遞給Tiller來建立應用。這個應用是由運作在Kubernetes叢集中的各種資源組成。

2.3. Helm v3

最近Helm徹底的翻修了一遍,流程和指令都有很大的改變。如果我們正在使用Helm的v2版本,那麼可能需要花些時間去更新和內建這些改變。

最顯著的變化之一就是Tiller的移除。這是一個一直存在的安全問題,因為pod需要提升權限才能部署Chart。在新版本中,這個功能被單獨放在了指令行中,不再需要初始化才能使用。

在v2中,對chart和deployment的更新需要使用雙向政策合并來完成。這需要将先前的manifest和預期的menifest進行比較,而不是在helm指令之外進行編輯。目前的檢查是使用另外的方法,檢查目前對象的狀态。

還有其他的改變,比如軟體安裝不再自動生成名稱。我們必須手動指定名稱,要不就傳遞

--generated name

參數

3. 部署helm v3

由于helm的v2版本存在一些安全問題,是以全部轉向v3是大勢所趨,這裡就不再說v2的内容了,我們直接部署v3。

  • 官方文檔在這裡
  • 下載下傳位址在這裡

3.1. 安裝helm

我們這裡以linux64版本舉例,我們首先要保證kubectl指令能夠正确連接配接到我們的kubernetes叢集

  • 下載下傳
    $ wget https://get.helm.sh/helm-v3.2.4-linux-amd64.tar.gz
               
  • 解壓
    $ tar xf https://get.helm.sh/helm-v3.2.4-linux-amd64.tar.gz
               
  • 挪到環境變量所在的位置
    mv linux-amd64/helm /usr/local/bin/helm
    chmod +x /usr/local/bin/helm
               
  • 驗證是否可用
    helm help
    The Kubernetes package manager
    
    Common actions for Helm:
    
    - helm search:    search for charts
    - helm pull:      download a chart to your local directory to view
    - helm install:   upload the chart to Kubernetes
    - helm list:      list releases of charts
    ...
               
  • 為helm添加一個倉庫
    $ helm repo add stable https://kubernetes-charts.storage.googleapis.com/
               
  • 檢視倉庫裡面的包
    helm search repo stable
    
    NAME                                    CHART VERSION   APP VERSION                     DESCRIPTION
    stable/acs-engine-autoscaler            2.2.2           2.1.1                           DEPRECATED Scales worker nodes within agent pools
    stable/aerospike                        0.2.8           v4.5.0.5                        A Helm chart for Aerospike in Kubernetes
    stable/airflow                          4.1.0           1.10.4                          Airflow is a platform to programmatically autho...
    stable/ambassador                       4.1.0           0.81.0                          A Helm chart for Datawire Ambassador
    # ... and many more
               

3.2. 管理應用

  • 部署應用
    $ helm repo update              # Make sure we get the latest list of charts
    $ helm install stable/mysql --generate-name
    Released smiling-penguin
               
  • 列出應用
    $ helm ls
    NAME             VERSION   UPDATED                   STATUS    CHART
    smiling-penguin  1         Wed Sep 28 12:59:46 2016  DEPLOYED  mysql-0.1.0
               
  • 解除安裝應用
    $ helm uninstall smiling-penguin
    Removed smiling-penguin
               

為了友善大家學習,請大家加我的微信,我會把大家加到微信群(微信群的二維碼會經常變)和qq群821119334,問題答案雲原生技術課堂,有問題可以一起讨論

  • 個人微信

640.jpeg

  • 騰訊課堂 640-20200506145837072.jpeg
  • 微信公衆号 640-20200506145842007.jpeg
  • 專題講座

2020 CKA考試視訊 真題講解 https://www.bilibili.com/video/BV167411K7hp

2020 CKA考試指南 https://www.bilibili.com/video/BV1sa4y1479B/

2020年 5月CKA考試真題 https://mp.weixin.qq.com/s/W9V4cpYeBhodol6AYtbxIA