Helmのインストール
HelmはKubernetesのパッケージ管理ツールです。ここでは、Helmのインストールと設定について説明をします。Helmの概要にについては、概要編にて説明をしていますので、Helmをはじめて利用される場合は、事前に確認をしておくことをお勧めします。
事前準備
Kubernetesクラスタの準備
Helmのサーバコンポーネント(Tiller)は、Kubernetesクラスタのコンポーネントとしてインストールされます。Helmのインストール前に、Helmの管理対象とするKuernetesクラスタを準備しておいてください。
kubectlの設定
Helmサーバ(Tiller)のインストール先は、Kubernetesの設定ファイルの内容に従います。Kubernetesの設定ファイルは通常、以下の場所に kubectl
によって作られます。
1 |
$HOME/.kube/config |
Helmのインストール前に、現在のKubernetesの設定で、どのコンテキストに接続するようになっているかを確認しておいてください。Helmサーバ(Tiller)は、デフォルトで現在設定されているKubernetesコンテキストにインストールされます。現在のKubernetesコンテキストは、以下のコマンドで確認することができます。
1 |
$ kubectl config current-context |
Tillerをインストールするコンテキストになっているか確認をしてください。表示されたコンテキストが正しくない場合は、 kubectl
コマンドでコンテキストの変更を行ってください。
1 |
$ kubectl config use-context <your-context> |
Helmクライアントのインストール
Helmクライアントのインストールを行います。以下の実行例では、一般的なLinux環境(linux-amd64)を対象としています。
Helmバイナリファイルのダウンロード
Helmの公式リリースページ(https://github.com/helm/helm/releases)から、Helmクライアントをインストールするアーキテクチャのバイナリファイルをダウンロードします。リリースページにはPre-releaseバージョンのバイナリファイルも置いてあります。必ず公式リリースページを確認し、どのバージョンのHelmをインストールするのかを確認してください。通常は、最新安定版であるLatest releaseのバイナリファイルを選択するのが良いでしょう。
1 |
$ wget https://storage.googleapis.com/kubernetes-helm/helm-v2.13.1-linux-amd64.tar.gz |
ダウンロードしたファイルの解凍
公式リリースページからダウンロードしたファイルを解凍します。
1 |
$ tar xvfz helm-v2.13.1-linux-amd64.tar.gz |
Helmファイルの移動
解凍したディレクトリにできたhelmファイルを、パス(PATH)の通ったディレクトリに移動します。
1 |
$ sudo mv linux-amd64/helm /usr/local/bin/helm |
helmコマンドの実行
最後に、 helm help
コマンドを実行して、正常にHelmクライアントがインストールができたかを確認します。
1 |
$ helm help |
ヘルプメッセージが表示されれば、Helmクライアントのインストールは成功です。
[参考]そのほかのインストール方法
Helmクライアントのインストールは、上記で紹介した公式リリースページからバイナリファイルをダウンロードする以外にも方法があります。
- Snapを利用する方法(Linux)
- Homebrewを利用する方法(macOS)
- Chocolateyもしくはscoopを利用する方法(Windows)
- インストールスクリプトを使う方法
- ソースファイルからインストールする方法
インストール方法の詳細は、公式ドキュメント(https://helm.sh/docs/using_helm/#installing-helm)を参照してください。
Helmサーバ(Tiller)のインストール
helm initコマンドの実行
Helmサーバ(Tiller)のインストールを行います。TillerはKubernetesのコンポーネントとしてインストールされます。事前にkubectlの設定と現在設定されているコンテキストの確認をしておいてください。コンテキストがHelmインストール先と同じ場合、 helm init
コマンドでHelmサーバ(Tiller)のインストールを行うことができます。
1 |
$ helm init |
異なるクラスタ(コンテキスト)にHelmサーバ(Tiller)をインストールしたい場合は、 --kube-context
フラグでコンテキストを指定することもできます。
1 |
$ helm init --kube-context <your-context> |
kubernetesクラスタのデプロイ確認
Helmサーバ(Tiller)は、Kubernetesのkube-systemネームスペースにインストールされます。以下のコマンドでTillerのデプロイを確認することができます。
1 2 3 |
$ kubectl --namespace=kube-system get deployments NAME READY UP-TO-DATE AVAILABLE AGE tiller-deploy 1/1 1 1 16h |
Kubernetes APIとTillerの接続確認
最後にKubernetes APIとTillerの接続確認を行います。接続確認には、 helm version
コマンドを利用します。Serverのバージョンが正常に取得できれば、接続確認は成功です。
1 2 3 |
$ helm version Client: &version.Version{SemVer:"v2.13.1", GitCommit:"618447cbf203d147601b4b9bd7f8c37a5d39fbb4", GitTreeState:"clean"} Server: &version.Version{SemVer:"v2.13.1", GitCommit:"618447cbf203d147601b4b9bd7f8c37a5d39fbb4", GitTreeState:"clean"} |
TillerやKubernetesが動作していなく、APIの接続確認ができない場合は、以下のようなエラーが出力されます。
1 2 3 |
$ helm version Client: &version.Version{SemVer:"v2.13.1", GitCommit:"618447cbf203d147601b4b9bd7f8c37a5d39fbb4", GitTreeState:"clean"} Error: Get <http://xxxx/api/v1/namespaces/kube-system/pods?labelSelector=app%3Dhelm%2Cname%3Dtiller:> dial tcp XXXX: connect: connection refused |
Helmサーバ(Tiller)のアップグレード
Helmサーバ(Tiller)をアップグレードするには、 helm init
コマンドで--upgrade
フラグを利用します。インストールの時と同じように、設定されているKubernetesのコンテキストの確認は忘れないようにしてください。
1 |
$ helm init --upgrade |
Helmサーバ(Tiller)の削除
Tillerを削除するには、 kubectl
コマンドからTillerのデプロイメントを削除します。
1 |
$ kubectl delete deployment tiller-deploy --namespace kube-system |
さいごに
HelmクライアントとHelm サーバ(Tiller)のインストール方法を紹介しました。どちらも非常に簡単にインストールを行うことができます。HelmのインストールやHelmクライアントの動作はkube configファイルに依存します。接続先のKubernetesコンテキストの確認を忘れないようにしましょう。
投稿者プロフィール
最新の投稿
- AWS2021年12月2日AWS Graviton3 プロセッサを搭載した EC2 C7g インスタンスが発表されました。
- セキュリティ2021年7月14日ゼロデイ攻撃とは
- セキュリティ2021年7月14日マルウェアとは
- WAF2021年7月13日クロスサイトスクリプティングとは?