バージョンアップ情報
Helm情報
Helmとは
Helm(ヘルム)は、Kubernetesクラスタのためのパッケージマネージャで、Kubernetes向けパッケージマネージャとして現在最も人気のある製品となっています。
HelmはDeis社(2017年にマイクロソフト社が買収)のプロジェクトの一つで、2015年に開催された最初の KubeCon(The Kubernetes Community Conference) において Helm Classic として発表されました。Helmプロジェクトは2016年1月にKubernetesのサブプロジェクトとなりました。2016年後半にHelm 2.0 がリリースされ、2018年6月にはMonocular、Helm Chart Repo、Chart Museumなどのプロジェクトを取り込み、Kubernetesのサブシステムから本格的な CNCF(Cloud Native Computing Foundation)プロジェクトに昇格、2019年11月にはHelm 3 がリリースされ、2020年にはCNCFの卒業(Graduaetdプロジェクトになっています。
主な特徴
HelmはGo言語で記述されており、Helmクライアント、Helmライブラリの2つのコンポーネントで構成されます。
HelmはHelmクライアントを介して、Kubernetes上で動作するアプリケーションをLinuxのyumコマンドのようにインストール(デプロイ)、アンインストールすることが出来ます。アプリケーションの管理は、チャート(Chart)と呼ばれるパッケージ化された設定ファイルを使用して行います。チャートにはアプリケーションそのものは含まれておらず、アプリケーションの構築に必要な情報が記載されています。なお、Artifact Hub というサイトには各種のチャートが公開されており、使用することが可能です。
Helmライブラリは、Kubernetes クライアントライブラリを使用してKubernetesと通信します。通信にはREST + JSONが使用されます。独自のデータベースは不要で、Kubernetesのシークレットにデータを保持します。
Helm の基本的な概念として以下が挙げられます。
- チャート:アプリケーションのインスタンスを作成するために必要な設定ファイル群です。
- コンフィグ:チャートインストール時にアプリケーションのための各種パラメータを設定するためのものです。
- リリース:チャートがインストールされ、アプリケーション(リリースオブジェクト)が実行可能な状態になったインスタンスをリリースと呼びます。
Helmは以下のことが出来ます。
- チャートの新規作成
- チャートをチャートアーカイブ(tgz)にパッケージ化する
- チャートが保存されているチャートリポジトリを操作する
- Kubernetes クラスタにチャートをインストール、アンインストールする
- Helmでインストールしたチャートのリリースサイクルを管理する
Helmクライアントとライブラリの役割はそれぞれ以下になります。
Helmクライアント
エンドユーザー向けのコマンドラインプログラムで以下を担当します。
- ローカルチャートの開発
- リポジトリの管理
- リリースの管理
- Helmライブラリと連携し、チャートを送信したり、リリースのアップグレードやアンインストールの要求を行います。
Helmライブラリ
全てのHelmの操作を Kubernetes API と連携して実行します。
- チャートからリリースオブジェクトを作成する
- リリースオブジェクトを構築し、Kubernetesにインストールする
- リリースオブジェクトのアップグレードやアンインストールを行う
同様の機能を提供する商用製品
Helmと同様のツールにはKsonnet、Kapitan、Kustomize、kompose、Ansibleがあります。
Helmコマンドの例
helm install |
チャートをインストールします。 |
---|---|
helm list |
リリースの一覧を表示します。 |
helm pull |
チャートをダウンロードしローカルに展開します。 |
helm repo add |
チャートリポジトリを追加します。 |
helm repo list |
チャートリポジトリ一覧を表示します。 |
helm search |
チャートを検索します。 |
helm show |
チャートの詳細を表示します。 |
helm uninstall |
リリースを削除します。 |
helm upgrade |
新しいチャートにアップグレードします。 |
動作環境
helm は各OS向きのバイナリが用意されており、ダウンロードしてインストールすることができます。V3.14.4では下記のパッケージが用意されています。
- MacOS amd64
- MacOS arm64
- Linux amd64
- Linux arm
- Linux arm64
- Linux i386
- Linux ppc64le
- Linux s390x
- Linux riscv64
- Windows amd64
その他のスクリプトによるインストール方法なども存在しております。詳細は下記を参照して下さい。
Helmのライセンス
Helmのライセンスは、「Apacheライセンスバージョン2」(Apache License version2)というライセンスに基づいて公開され、営利、非営利を問わず、誰でも自由かつ無償で利用・改変・再配布できるようになっています。
オープンソース年間サポートサービス
OpenStandiaではOSSを安心してご利用いただけるように、オープンソース年間サポートサービスをご提供しております。
サポートしているOSSは下記ページをご参照ください。
関連OSS
-
サポート対象
Rancher
ランチャー。Rancher Labsが主導となって開発しているKaaS(Kubernetes-as-a-Service)を実現するプロダクトで、Multi-Cluster Kubernetes Management を行うためのOSSです。
-
サポート対象
Kubernetes
クーバネティス。Dockerをはじめとするコンテナ化されたアプリケーションの展開、スケーリング、管理を行うオープンソースのプラットフォームです。
-
サポート対象
Docker
ドッカー。ソフトウェアコンテナを用いたアプリケーションのデプロイメントを自動化する仮想化オープンソースソフトウェアです。