【Kubernetes】つぶやきHelm

Helmとは?

Helmは、言うなればUbuntuにおけるapt、nodeにおけるnpmのような、Kubernetes向けのパッケージマネージャです。

最初の理解のために

Helm、ひいてはKubernetesは、独特の言葉が多くて初めは戸惑いがちです。そんな中、@MahoTakara様のQiita記事にあるように、3つに分けておさえておくとわかりやすかったので紹介します。

  1. チャート(chart)は、Helmのパッケージ。
  2. リポジトリ(repository)は、チャートを集め共有するための場所。
  3. リリース(release)は、Kubernetes上で実行されているチャートの「インスタンス」。

チャート・リポジトリ・リリース。この3概念を要素として、Helmは成り立っています。ちなみに、helmは船舶などで使う「舵」、chartは「海図」の意味です。Docker周りは海系の見立てがよく効いていて面白いですね。

さらに、これは私のオリジナルなネーミングですが、helmのCLIについては「リポジトリ系」「リリース系」と分けて考えると理解しやすいかと思います。

Helm CLI

リポジトリ系

helm repo add

指定したチャートをリポジトリに追加します。

$ helm repo add jupyterhub https://jupyterhub.github.io/helm-chart
"jupyterhub" has been added to your repositories

helm repo list

リポジトリに追加済みのチャートのリストを表示します。

$ helm repo list
NAME         	URL                                                 
jupyterhub   	https://jupyterhub.github.io/helm-chart

helm repo remove

リポジトリにあるチャートを削除できます。リリース系「helm uninstall」と少し違うので注意です。

$ helm repo remove jupyterhub
"jupyterhub" has been removed from your repositories

リリース系

helm install

指定したチャートを「インスタンス」として実体化します。サイトによっては”deploy the chart”などと表現されることもあります。

$ helm install jupyterhub-instance ./jupyterhub

helm list

リリースしたチャートのリストを表示します。`helm repo list`と似ているので注意です。

$ helm list

helm uninstall

リリースしたチャートを削除します。もとはhelm deleteというコマンドでしたが、リネームされました。

$ helm uninstall jupyterhub