読み方 : ヘルム

Helm

Helmとは?

Kubernetes上でアプリケーションの導入や更新、削除を管理するパッケージ管理ツール。Linuxにおける「apt」や「yum」に相当する仕組みとして説明されることが多く、複雑な構成を持つシステムを一括して扱えるようにする。
Helmのイメージ画像

Kubernetesでアプリケーションを動作させるには、「Deployment」「Service」「Ingress」「ConfigMap」など複数のYAML形式の設定ファイルを組み合わせる必要がある。ファイル数が多くなるほど記述ミスや設定漏れが生じやすく、複数の環境間で同期を保つことも難しくなる。Helmはこれらをひとまとめにして扱う仕組みを提供する。

Helmでは、アプリケーションの構成一式を「チャート」(Chart)と呼ばれる単位でパッケージ化する。チャートには設定ファイルのテンプレートやバージョン情報、依存関係などが含まれる。利用者はインストール時にパラメータを渡すだけで、ポート番号やレプリカ数といった環境ごとの差分を吸収できる。同じチャートを開発、検証、本番の各環境へ展開することも可能で、構成の標準化に役立つ。

デプロイの記録は「リリース」(Release)として管理される。Helmはリリースごとに変更履歴を保持しており、更新後に問題が生じた場合はコマンド一つで以前の状態へ戻せる。同一のチャートを複数回インストールした場合は、それぞれ独立したリリースとして扱われるため、同じアプリケーションを異なる設定で並行稼働させることもできる。

公式のチャートリポジトリには、MySQLRedisWordPressといった広く使われるソフトウェアのチャートが公開されている。利用者はこれらを取得してコマンド一つでクラスタデプロイでき、データベースや監視ツール、CI/CDツールなどを短時間で導入できる。HelmはDeis社(2017年にMicrosoft社が買収)が開発を始め、後にCNCF(Cloud Native Computing Foundation)のプロジェクトとして採用された。現在はv3系が主流であり、以前のバージョンで必要だったサーバコンポーネント「Tiller」が廃止されてセキュリティモデルが簡素化されている。

この記事の著者 : (株)インセプト IT用語辞典 e-Words 編集部
1997年8月より「IT用語辞典 e-Words」を執筆・編集しています。累計公開記事数は1万ページ以上、累計サイト訪問者数は1億人以上です。学術論文や官公庁の資料などへも多数の記事が引用・参照されています。