My RSS Reader

Description about Blog Author


helmとhelm templateについての気づき 第一回 helmについておさらい

今更な話題ですが、Kubernetesにはhelmという便利なアプリケーションインストーラーがあります。 例えばこのように実行すると、Kubernetesにあらかじめ決められた設定でアプリケーションを展開できます。

$ helm install

例えば次のようにNamespaceを指定してアプリケーションをデプロイできますし、2行目のようにイメージタグを指定してデプロイしたり、設定する項目が多ければファイルに書いた内容でデプロイなんてことができます。Kubernetesでhelmは普通に使われていると思います。

$ helm install test stable/prometheus –namespace helm-test $ helm install –name my-release –namespace helm-test my-chart –set image.tag=v1.0.0 $ helm install -f myvalues.yaml myredis ./redis

便利なHelmですが、Helmにはhelm templateというコマンドがあって、Helm templateでカスタマイズした状態のマニフェストをファイルに出力することができるという機能があります。 言葉では伝わりにくいので実行例を見ながら解説します。 次のコマンドは./myapp-helmというディレクトリーにあるHelm chartにmyapp/values.yamlに書かれている設定に上書きしています。これをリダイレクトしてhogehuga-myapp-manifests.yamlという名前のファイルに書き込んでいます。

$ helm template myapp-helm ./myapp-helm -f myapp/values.yaml > hogehuga-myapp-manifests.yaml

ちょっと実践してみましょう。これでwordpressのHelm chartをリポジトリーからダウンロードできます。ファイルはtar.gz形式のアーカイブがダウンロードされます。

$ helm repo add bitnami https://charts.bitnami.com/bitnami $ helm update $ helm pull bitnami/wordpress

展開すると、いくつかのファイルが見つかると思います。 values.yamlがこのchartのデフォルトが書かれているファイルで、これをコピーしてカスタマイズして任意の設定でアプリケーションをデプロイできるのですが、今回はちょっとだけ書き換えてhelm templateコマンドを実行してみましょう。

$ tar -xzvf wordpress-24.2.2.tgz $ ls wordpress Chart.lock Chart.yaml charts README.md templates values.schema.json values.yaml

実際デプロイする訳ではないので、適当です。

$ vi values.yaml … wordpressUsername: hogehogeuser

では、次のように実行してみましょう。values.yamlを書き換えた設定が反映されたマニフェストがファイルとして出力されたのが確認できました。

$ helm template mywordpress ./wordpress -f ./values.yaml > mywp-manifests.yaml $ cat mywp-manifests.yaml |grep hogehogeuser value: “hogehogeuser”

helm template、便利ですね。 長くなったので、次回に続きます。

第2回に続く

devops-blog.virtualtech.jp

[source]