Helmについて

概要

  • HelmとはオープンソースのKubernetesパッケージマネージャ
  • 2015年にDeisで作成され、Microsoftに買収された
  • 2020年4月にCNCFのGraduatedステージに認定された

用語

  • Chart
    • Kubernetesのパッケージ(またはHelmのパッケージ)
      • homebrew formula、Apt dpkg、Yum rpmファイルと同じような概念
    • アプリケーションを実行するために必要なresource definitionをすべて含む
  • Repository
    • Chartの置き場所(Chart repositoryとも呼ばれる)
      • PerlのCPAN archiveやFedora Package Databaseのようなもの
  • Release
    • Kuberentes Clusterで実行されているChartのインスタンス
    • Kubernetes clusterにインストールされるたびに、一つのReleaseが作成される
  • (Config)
    • Releaseオブジェクトを作成するために、Chartにマージできる構成情報

Chart/Repository/Relaseの関係性

大まかな流れ

HelmのChart/Repository/Relaseの関係性イメージ
  1. Chartの用意
    • ローカルにあるRepositoryに対して、helm repo addArtifact HubからChartを追加する
    • または、ローカルにChartに必要なファイルを用意する
      • 自作で作るなら、helm createコマンドで必要なファイル群を生成できる
      • Githubにあるソースがあってそれをcloneしてくるパターンも
  2. Kubernetes Clusterにインストールし、Releaseを作成
    • helm installコマンドで、ChartをKubernetes Clusterにインストール(kubectlコマンドの指すcontextにインストールされる)
    • helm installをするたびに新しいReleaseができる
  3. Chartの内容を変更したら、Releaseを更新
    • helm upgradeコマンドで更新したいReleaseを特定し、Releaseを更新する
  4. Releaseを使わなくなったら、アンインストールする
    • helm uninstallコマンドでReleaseをアンインストールする
  • RepositoryにどんなChartがあるかは、helm searchコマンドや、helm repo listコマンドで確認可能
  • Artifact HubにどんなChartがあるかは、helm search hubコマンドで確認可能
  • 自作のChartをArtifact Hubに上げたいときは、helm packageコマンドで.tgzファイル(Archiveファイル)を作成後、helm pushコマンドでプッシュできる
  • helm updateは、RepositoryのChart情報を更新する(特定のChartのみ更新することもできる)

コマンド

全コマンドはこちら

図に記載したコマンド

参考