第3章 Helm CLI
3.1. OpenShift Container Platform での Helm 3 の使用開始
3.1.1. Helm について
Helm は、アプリケーションやサービスの OpenShift Container Platform クラスターへのデプロイメントを単純化するソフトウェアパッケージマネージャーです。
Helm は charts というパッケージ形式を使用します。Helm チャートは、OpenShift Container Platform リソースを記述するファイルのコレクションです。
クラスター内のチャートの実行中のインスタンスは、リリース と呼ばれます。チャートがクラスターにインストールされているたびに、新規のリリースが作成されます。
チャートのインストール時、またはリリースがアップグレードまたはロールバックされるたびに、増分リビジョンが作成されます。
3.1.1.1. 主な特長
Helm は以下を行う機能を提供します。
- チャートリポジトリーに保存したチャートの大規模なコレクションの検索。
- 既存のチャートの変更。
- OpenShift Container Platform または Kubernetes リソースの使用による独自のチャートの作成。
- アプリケーションのチャートとしてのパッケージ化および共有。
3.1.2. Helm のインストール
以下のセクションでは、CLI を使用して各種の異なるプラットフォームに Helm をインストールする方法を説明します。
また、OpenShift Container Platform Web コンソールから最新のバイナリーへの URL を見つけるには、右上隅の ? アイコンをクリックし、Command Line Tools を選択します。
前提条件
- Go バージョン 1.13 以降がインストールされている。
3.1.2.1. Linux の場合
Helm バイナリーをダウンロードし、これをパスに追加します。
# curl -L https://mirror.openshift.com/pub/openshift-v4/clients/helm/latest/helm-linux-amd64 -o /usr/local/bin/helm
バイナリーファイルを実行可能にします。
# chmod +x /usr/local/bin/helm
インストールされたバージョンを確認します。
$ helm version
出力例
version.BuildInfo{Version:"v3.0", GitCommit:"b31719aab7963acf4887a1c1e6d5e53378e34d93", GitTreeState:"clean", GoVersion:"go1.13.4"}
3.1.2.2. Windows 7/8 の場合
-
最新の
.exe
ファイル をダウンロードし、希望のディレクトリーに配置します。 - Start を右クリックし、Control Panel をクリックします。
- System and Security を選択してから System をクリックします。
- 左側のメニューから、Advanced systems settings を選択し、下部にある Environment Variables をクリックします。
- Variable セクションから Path を選択し、Edit をクリックします。
-
New をクリックして、
.exe
ファイルのあるフォルダーへのパスをフィールドに入力するか、または Browse をクリックし、ディレクトリーを選択して OK をクリックします。
3.1.2.3. Windows 10 の場合
-
最新の
.exe
ファイル をダウンロードし、希望のディレクトリーに配置します。 -
Search クリックして、
env
またはenvironment
を入力します。 - Edit environment variables for your account を選択します。
- Variable セクションから Path を選択し、Edit をクリックします。
- New をクリックし、exe ファイルのあるディレクトリーへのパスをフィールドに入力するか、または Browse をクリックし、ディレクトリーを選択して OK をクリックします。
3.1.2.4. MacOS の場合
Helm バイナリーをダウンロードし、これをパスに追加します。
# curl -L https://mirror.openshift.com/pub/openshift-v4/clients/helm/latest/helm-darwin-amd64 -o /usr/local/bin/helm
バイナリーファイルを実行可能にします。
# chmod +x /usr/local/bin/helm
インストールされたバージョンを確認します。
$ helm version
出力例
version.BuildInfo{Version:"v3.0", GitCommit:"b31719aab7963acf4887a1c1e6d5e53378e34d93", GitTreeState:"clean", GoVersion:"go1.13.4"}
3.1.3. OpenShift Container Platform クラスターでの Helm チャートのインストール
前提条件
- 実行中の OpenShift Container Platform クラスターがあり、ログインしている。
- Helm がインストールされている。
手順
新規プロジェクトを作成します。
$ oc new-project mysql
Helm チャートのリポジトリーをローカルの Helm クライアントに追加します。
$ helm repo add stable https://kubernetes-charts.storage.googleapis.com/
出力例
"stable" has been added to your repositories
リポジトリーを更新します。
$ helm repo update
MySQL チャートのサンプルをインストールします。
$ helm install example-mysql stable/mysql
チャートが正常にインストールされたことを確認します。
$ helm list
出力例
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION example-mysql mysql 1 2019-12-05 15:06:51.379134163 -0500 EST deployed mysql-1.5.0 5.7.27
3.1.4. OpenShift Container Platform でのカスタム Helm チャートの作成
手順
新規プロジェクトを作成します。
$ oc new-project nodejs-ex-k
OpenShift Container Platform オブジェクトが含まれる Node.js チャートのサンプルをダウンロードします。
$ git clone https://github.com/redhat-developer/redhat-helm-charts
サンプルチャートを含むディレクトリーに移動します。
$ cd redhat-helm-charts/alpha/nodejs-ex-k/
Chart.yaml
ファイルを編集し、チャートの説明を追加します。apiVersion: v2 1 name: nodejs-ex-k 2 description: A Helm chart for OpenShift 3 icon: https://static.redhat.com/libs/redhat/brand-assets/latest/corp/logo.svg 4
チャートが適切にフォーマットされていることを確認します。
$ helm lint
出力例
[INFO] Chart.yaml: icon is recommended 1 chart(s) linted, 0 chart(s) failed
直前のディレクトリーレベルに移動します。
$ cd ..
チャートをインストールします。
$ helm install nodejs-chart nodejs-ex-k
チャートが正常にインストールされたことを確認します。
$ helm list
出力例
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION nodejs-chart nodejs-ex-k 1 2019-12-05 15:06:51.379134163 -0500 EST deployed nodejs-0.1.0 1.16.0