Kubernetesアプリケーション導入ツール-Hellmインストールのシンプル化

25747 ワード

【編集者の話】マイクロサービスとコンテナ化は複雑なアプリケーションの導入と管理に大きな挑戦をもたらした.Helmは現在のKubernetesサービス編成分野の唯一のオープンソースサブプロジェクトであり、Kubernetesアプリケーションのパッケージ管理ツールとして、Kubernetesのapt-get/yumと理解され、Deis社が発起し、同社はマイクロソフトに買収された.Helmはソフトウェアパッケージの形式を通じて、リリースされたバージョン管理と制御をサポートし、Kubernetesアプリケーションの導入と管理の複雑さを大幅に簡素化した.
Helmは、deployments、services、ingressなどのKubernetesリソースを1つのchartにパッケージ化し、chartはchart倉庫に保存します.chartウェアハウスを使用してchartを格納および共有できます.Helmはパブリケーションを構成可能にし、パブリケーションアプリケーション構成のバージョン管理をサポートし、Kubernetesがアプリケーションを導入するバージョン制御、パッケージング、パブリケーション、削除、更新などの操作を簡素化した.
この文書では、HelmのClient、Server、およびローカルChartウェアハウスのインストール手順を示します.
Helmの概要については、「Kubernetesアプリケーション導入ツールの簡略化」を参照してください.
Helmインストール
Helm CLINET取付
Helm Clientのインストール手順は次のとおりです.
  • ダウンロードHelm 2.6.1:https://storage.googleapis.com/kubernetes-helm/helm-v2.6.1-linux-amd64.tar.gz
  • 解包:tar-zxvf helm-v 2.6.1-linux-amd 64.tgz
  • helmバイナリファイル/usr/local/binディレクトリに移動:
    mv linux-amd64/helm/usr/local/bin/helm

  • Helm TILLER取付
    Helm TillerはHelmのserverであり、Tillerにはローカルインストールやpod形式でKubernetesクラスタに配備するなど、さまざまなインストール方法があります.ここでpodインストールを例にとると、Tillerをインストールする最も簡単な方法はhelm initです.このコマンドはhelmローカル環境の設定が正しいかどうかを確認し、helm initはkubectlのデフォルト接続のkubernetesクラスタ(kubectl config viewで見ることができます)に接続され、接続クラスタが成功するとtillerはkube-system namespaceにインストールされます.
    helm initを実行すると、現在のディレクトリの下にhelmフォルダである~/.helmが作成され、Kubernetesを介して Deployment 導入tiller. Tillerが正常にインストールされたかどうかを確認します.
    $ kubectl get po -n kube-system
    NAME                             READY   STATUS   RESTARTS   AGE
    tiller-deploy-1046433508-rj51m   1/1     Running  0          3m

    Tillerのその他のインストール形式:
  • 取付カナリアbuild:–canary-image
  • インストール指定イメージ:–tiller-image
  • Kubernetesクラスタを指定します:–kube-context
  • 指定namespaceインストール:–tiller-namespace
  • Helm TILLER削除
    によって TillerのデータはKubernetes ConfigMapに格納されているので、元のHelmに配備されていたアプリケーションデータは削除、昇降段Tillerで失われることはありません.
    Tillerの削除:
    helm reset

     Chart倉庫
    chart倉庫はパッケージ化されたchartを格納し、共有するために使用され、公式chart倉庫はKubernetes Chartsによって維持され、Helmはプライベートchart倉庫を作成することができます.
    chartウェアハウスの作成
    chartウェアハウスはindex.ymlとパッケージ化されたchartファイルを格納するためのHTTP serverであり、chartを共有する場合はchartファイルをchartウェアハウスにアップロードする必要がある.YAMLとtarファイルを提供できるHTTPサーバは、Google Cloud Storage(GCS)bucket、Amazon S 3 bucket、Github Pages、または独自のWebサーバを作成するなど、chartウェアハウスとして使用できます.
    Chart倉庫構造
    1つのchart倉庫は1つのchartパッケージとindex.yamlファイルから構成され、index.yamlはchart倉庫のすべてのchartのインデックスを記録し、1つのローカルchart倉庫のレイアウト例は以下の通りである.
    /home/ts1/.helm/
    |-- cache
    | `-- archive
    | |-- drupal-0.9.2.tgz
    | `-- mariadb-1.0.3.tgz
    |-- plugins
    |-- repository
    | |-- cache
    | | |-- fantastic-charts-index.yaml
    | | |-- local-index.yaml -> /home/ts1/.helm/repository/local/index.yaml
    | | |-- mariadb-1.0.3.tgz-index.yaml
    | | |-- memcached-1.2.1.tgz-index.yaml
    | | |-- mychart_xia-0.1.0.tgz-index.yaml
    | | |-- mysql-0.2.8.tgz-index.yaml
    | | |-- stable-index.yaml
    | | |-- test-0.1.0.tgz-index.yaml
    | | `-- test-0.1.8.tgz-index.yaml
    | |-- local
    | | |-- index.yaml
    | | |-- mychart-0.1.0.tgz
    | | |-- mychart_xia-0.1.0.tgz
    | | |-- mysql-0.2.8.tgz
    | | |-- mysql-6.19.centos-29.tgz
    | | |-- test-0.1.0.tgz
    | | |-- test-0.1.8.tgz
    | | `-- test-0.1.9.tgz
    | `-- repositories.yaml
    `-- starters
    
    7 directories, 20 files

    ~/.helm/repository/local/index.yamlファイルにはchartの名前、url、versionなどのmetadata情報が記録されています.
    apiVersion: v1
    entries:
     mychart:
     - apiVersion: v1
     created: 2017-09-12T02:28:54.061070032Z
     description: A Helm chart for Kubernetes
     digest: ae8d7138002d432014dc8638ec37202823e9207445caf08a660d154b26e936ea
     name: mychart
     urls:
     - http://127.0.0.1:8879/mychart-0.1.0.tgz
     version: 0.1.0
     - apiVersion: v1
     created: 2017-09-12T03:08:14.02186072Z
     description: A Helm chart for Kubernetes
     digest: sha256:2a05defa095d364f4efc789fd2417d07493757ebd74096e5f495c50604cf582d
     name: mychart
     urls:
     - http://127.0.0.1:8879/charts/mychart-0.1.0.tgz
     version: 0.1.0

    ローカルchart倉庫の作成
    chartウェアハウスの作成にはいくつかの方法があります.ここでは、ローカルウェアハウスの作成を例に挙げます.
    $ helm serve address 0.0.0.0:8879 repo-path ./charts
     Regenerating index. This may take a moment.
     Now serving you on 0.0.0.0:8879

    chart倉庫の管理
    上記の手順では、ローカルのchartウェアハウスが作成されています.次に、chartウェアハウスでchartを維持する方法について説明します.chartは従わなければならない SemVer 2 ルールは正しいバージョンフォーマットを記入します.
    chartディレクトリがすでに存在する場合は、chartをパッケージ化し、新しいディレクトリに移動し、helm repo indexコマンドでchartのmetadataをindex.yamlファイルに記録します.
    helm package mychart
    mkdir fantastic-charts
    mv mychart-0.1.0.tgz fantastic-charts/
    helm repo index fantastic-charts url http://bjo-ep-dep-039.dev.fwmrm.net:8879/charts

    chartをchartウェアハウスにアップロードし、helm repo addコマンドでchartをchartウェアハウスにアップロードします.
     $ helm repo add fantastic-charts http://bjo-ep-dep-039.dev.fwmrm.net:8879/charts
     "fantastic-charts" has been added to your repositories

    chartが倉庫をアップロードしたかどうかを確認します.
    $ helm repo list
    NAME                       URL
    chartsfantastic-charts     http://bjo-ep-dep-039.dev.fwmrm.net:8879/charts

    アップロードされたchartを検索するには:
    $ helm search mychart -l
    NAME              VERSION       DESCRIPTION
    local/mychart     0.1.0         A Helm chart for Kubernetes

     
    転載を歓迎して、作者の出所を明記してください:張夏、FreeWheel Lead Engineer、Kubernetes中国語コミュニティ
    原文:Kubernetesアプリケーション導入ツール-Hellmインストールの簡略化