【Helm入門】Helm使ってみる
はじめに
これからHelmを使ってみたい人に向けて、Helmとはどんなものなのかざっくり解説し、実際にローカルで動かしてイメージを掴んでみたいと思います。
Helmとは
Helmとは、Kubernetes用のパッケージマネージャーです。
ここでのパッケージ(チャートと呼ばれます)とは、Kubernetesクラスタでアプリケーションを動かすために必要なリソース一式というイメージです。つまり、Helmを使うことで簡単にKubernetesクラスタ上でアプリケーションを実行させることができます。
Helm
Helm - The Kubernetes Package Manager.
チャート・リポジトリ・リリース
Helmを利用する上で必要不可欠な3つの用語があります。
用語 | 意味 |
---|---|
チャート | アプリケーションを実行するために必要なリソース定義のパッケージ |
リポジトリ | チャートが保存されている場所 |
リリース | Kubernetesで実行されているチャートのインスタンス |
チャートをリポジトリからとってきて、インストールすることでKubernetes上でアプリケーションをリリースとして実行できます。
インストール
まずはHelm CLIをインストールします。
Macの場合は以下の通りです。
1brew install helm
Helm のインストール
Helm をインストールして実行する方法を学びます。
使ってみる
実際にローカルでWordpressのチャートをインストールし、Kubernetes上で動かしてみます。
リポジトリの追加
まずはリポジトリの追加をします。
今回は下記のチャートをインストールしたいので、https://charts.bitnami.com/bitnami
のリポジトリを追加します。
Helm Charts to deploy WordPress in Kubernetes
リポジトリの追加は下記の通りです。
1helm repo add bitnami https://charts.bitnami.com/bitnami
追加されたリポジトリを確認してみます。
1❯ helm repo list
2NAME URL
3stable https://charts.helm.sh/stable
4bitnami https://charts.bitnami.com/bitnami
また、リポジトリにあるチャートの一覧も見ることができます。
1❯ helm search repo bitnami
2NAME CHART VERSION APP VERSION DESCRIPTION
3bitnami/bitnami-common 0.0.9 0.0.9 DEPRECATED Chart with custom templates used in ...
4bitnami/airflow 11.1.11 2.2.2 Apache Airflow is a platform to programmaticall...
5bitnami/apache 8.9.6 2.4.51 Chart for Apache HTTP Server
6:
7:
8bitnami/wildfly 12.0.2 25.0.1 Chart for Wildfly
9bitnami/wordpress 12.2.4 5.8.2 Web publishing platform for building blogs and ...
10bitnami/zookeeper 7.5.0 3.7.0 A centralized service for maintaining configura...
チャートのインストール
実際にチャートをインストールしていきます。
まずはリポジトリの情報を最新にしておきます。
1helm repo update
下記でWordpressのチャートをインストールします。
1helm install bitnami/wordpress --generate-name
リリースの確認
実行しているリリースは下記で確認できます。
1❯ helm ls
2NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION
3wordpress-1639287375 default 1 2021-12-12 14:36:19.182037 +0900 JST deployed wordpress-12.2.4 5.8.2
wordpress-1639287375
という名前でリリースが実行されているのがわかります。
また、kubectl
を使ってDeploymentやServiceを確認してみるとWordpressに関するリソースが作成されているのがわかります。
1❯ kubectl get deployment
2NAME READY UP-TO-DATE AVAILABLE AGE
3wordpress-1639287375 1/1 1 1 2m5s
4
5❯ kubectl get service
6NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
7wordpress-1639287375 LoadBalancer 10.111.135.27 localhost 80:31278/TCP,443:32106/TCP 2m10s
8wordpress-1639287375-mariadb ClusterIP 10.96.204.66 <none> 3306/TCP 2m10s
実際にブラウザからhttp://localhost
にアクセスすればWordpressのGUIも確認できます。
リリースのアンインストール
リリースを削除したい場合はアンインストールをします。
以下のようにリリース名でアンインストールすることで関連するリソースが削除されます。
1helm uninstall wordpress-1639287375
まとめ
- HelmはKubernetes用のパッケージマネージャー
- Helmでアプリケーションのインストールと設定が簡単になる