Kubernetesのパッケージマネージャ: Helmを試してみよう
数ヶ月前にCNCFのIncubation-leveのプロジェクトとなったKubernetesのパッケージマネージャHelmに関する記事が、CNCFブログにポストされましたので、これを参考にしつつ試してみました。
Helmとは
HelmはKubernets上にアプリケーションコンテナをPodとしてデプロイすることを容易にすることを目的としています。KubernetesをLinuxなどのオペレーティングシステムと位置付けた時に、Helmはyumやaptといったパッケージ管理システムの役割を果たします。
KubernetesではPodをデプロイする際にManifestを定義しますが、HelmではChartsと呼ばれるアプリケーション定義を記述するそうです。物は試しということでHelmを利用してPodをデプロイしてみようと思います。
前提
Helmを試すには、自由に利用可能なKubernetesクラスタが必要です。minikubeを利用するのがもっとも簡単ですので、環境がない方はインストールしてみてください。 techlunch.hatenablog.com
インストール
インストールはとても簡単で以下のコマンドを実行するだけです。
$ curl https://raw.githubusercontent.com/kubernetes/helm/master/scripts/get | bash $ helm init
WordPressを動かしてみる
Chartsとして提供されてるアプリケーションを探すには次のコマンドを打ちます。
$ helm search NAME CHART VERSION APP VERSION DESCRIPTION stable/acs-engine-autoscaler 2.2.0 2.1.1 Scales worker nodes within agent pools ... stable/wordpress 2.1.8 4.9.8 Web publishing platform for building blogs and ...
今回は、WordPressをサンプルとしてインストールします。
$ helm repo update
これで完了です。WordPressとバックエンドのMariaDBの2つのPodが動作してることが確認できます。
$ kubectl get pods NAME READY STATUS RESTARTS AGE intended-aardwolf-mariadb-0 1/1 Running 0 1m intended-aardwolf-wordpress-646bd6955b-vj4px 1/1 Running 1 1m
HelmコマンドでもChartがインストールされていることを確認できます。
$ helm list NAME REVISION UPDATED STATUS CHART NAMESPACE intended-aardwolf 1 Sun Aug 12 15:08:58 2018 DEPLOYED wordpress-2.1.8 default
Kubernetesの導入の敷居の高さにはさまざまな理由があるのですが、一つはKubernetesマニフェストを書くことだと思っています。 Helmを利用することで、よく利用するアプリケーションが簡単にKubernetes上にデプロイできるようになるので、ますますKubernetesユーザは増えるかもしれません。
Helmについては、今後もしばらく動向をウォッチしていきたいと思います。