Helm
Helmとは?

Kubernetesでアプリケーションを動作させるには、「Deployment」「Service」「Ingress」「ConfigMap」など複数のYAML形式の設定ファイルを組み合わせる必要がある。ファイル数が多くなるほど記述ミスや設定漏れが生じやすく、複数の環境間で同期を保つことも難しくなる。Helmはこれらをひとまとめにして扱う仕組みを提供する。
Helmでは、アプリケーションの構成一式を「チャート」(Chart)と呼ばれる単位でパッケージ化する。チャートには設定ファイルのテンプレートやバージョン情報、依存関係などが含まれる。利用者はインストール時にパラメータを渡すだけで、ポート番号やレプリカ数といった環境ごとの差分を吸収できる。同じチャートを開発、検証、本番の各環境へ展開することも可能で、構成の標準化に役立つ。
デプロイの記録は「リリース」(Release)として管理される。Helmはリリースごとに変更履歴を保持しており、更新後に問題が生じた場合はコマンド一つで以前の状態へ戻せる。同一のチャートを複数回インストールした場合は、それぞれ独立したリリースとして扱われるため、同じアプリケーションを異なる設定で並行稼働させることもできる。
公式のチャートリポジトリには、MySQLやRedis、WordPressといった広く使われるソフトウェアのチャートが公開されている。利用者はこれらを取得してコマンド一つでクラスタにデプロイでき、データベースや監視ツール、CI/CDツールなどを短時間で導入できる。HelmはDeis社(2017年にMicrosoft社が買収)が開発を始め、後にCNCF(Cloud Native Computing Foundation)のプロジェクトとして採用された。現在はv3系が主流であり、以前のバージョンで必要だったサーバ側コンポーネント「Tiller」が廃止されてセキュリティモデルが簡素化されている。