トップ OSS紹介 Helm

Helm

NRIのOpenStandiaが提供するHelm最新情報

バージョンアップ情報

Helm情報

Helmとは

Helm(ヘルム)は、Kubernetesクラスタのためのパッケージマネージャで、Kubernetes向けパッケージマネージャとして現在最も人気のある製品となっています。
HelmはDeis社(2017年にマイクロソフト社が買収)のプロジェクトの一つで、2015年に開催された最初の KubeCon(The Kubernetes Community Conference) において Helm Classic として発表されました。Helmプロジェクトは2016年1月にKubernetesプロジェクトと統合され、Kubernetesのサブプロジェクトとなりました。そして、2016年後半にHelm 2.0、2018年6月にHelm 3.0がリリースされ、本格的な CNCF(Cloud Native Computing Foundation)プロジェクトに昇格しています。

主な特徴

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.7.1では下記のパッケージが用意されています。

  • MacOS amd64
  • MacOS arm64
  • Linux amd64
  • Linux arm
  • Linux arm64
  • Linux i386
  • Linux ppc64le
  • Linux s390x
  • Windows amd64

その他のスクリプトによるインストール方法なども存在しております。詳細は下記を参照して下さい。

Helmのライセンス

Helmのライセンスは、「Apacheライセンスバージョン2」(Apache License version2)というライセンスに基づいて公開され、営利、非営利を問わず、誰でも自由かつ無償で利用・改変・再配布できるようになっています。

オープンソース年間サポートサービス

OpenStandiaではOSSを安心してご利用いただけるように、オープンソース年間サポートサービスをご提供しております。
サポートしているOSSは下記ページをご参照ください。

お気軽にお問い合わせください

関連OSS

  • Rancher

    Rancher

    ランチャー。Rancher Labsが主導となって開発しているKaaS(Kubernetes-as-a-Service)を実現するプロダクトで、Multi-Cluster Kubernetes Management を行うためのOSSです。

  • Kubernetes
    サポート対象

    Kubernetes

    クーバネティス。Dockerをはじめとするコンテナ化されたアプリケーションの展開、スケーリング、管理を行うオープンソースのプラットフォームです。

  • Docker
    サポート対象

    Docker

    ドッカー。ソフトウェアコンテナを用いたアプリケーションのデプロイメントを自動化する仮想化オープンソースソフトウェアです。

オープンソースに関する様々な課題、OpenStandiaがまるごと解決します。
下記コンテンツも
あわせてご確認ください。