Helm 3.0.0 - 2 / big 3 concept / chart repository

Page content

先週に引き続き、Helm 3.0.0 が GAになったので 色々やってみる。

今日のお題はここ Using Helm

長いので、とりあえず概念とパッケージ検索について

3つの概念

以下まずは最初におさえるべきコンセプト

チャート

チャート(chart)が Helmにおけるパッケージで、アプリケーションやサービスを実行するのに必要なリソース定義をまとめた物。

RHELの rpmや、Debianの .debなんかのファイルに相当すると考えれば良い。

チャートレポジトリ

チャートレポジトリは複数のチャートを集めて共有するための場所。

公式ドキュメントだと 単にレポジトリってなってますが、ちょっと曖昧なのでチャートレポジトリと言うようにしてます。

リリース

チャートを使って実際にKubernetes cluster上にインストールしたインスタンスをリリースと言う。

一般的なOS管理と違って一つのチャートから複数のリリースをクラスタ上にたてる事があるので名前を付けて管理する。

例えば、WordPress用のMySQLを立てて、同じクラスタにBitBucket用のMySQLを立てたい場合、単一のOSで言えばインストールは一度で、実行するデーモンを2つ立てたりしますが、 Helmの場合にはチャートを使って2つのリリースを作る事になります。

チャートを見つける

既に準備されているチャートは自分で作る必要は無いので、チャートレポジトリの中から探して再利用したい。

検索方法は2つ。

一つが the Helm Hub からの検索。Docker Hubみたいな物で、複数のチャートレポジトリの内容を含んでいる。2019/11/30現在で910チャート公開されていて利用できる。

もう一つはインストールした helmに チャートレポジトリを追加してそこから検索する。

helm hubからのサーチ

ハブから特定のワードで検索をかけられる。当然ながらインターネットへのアクセスが必要になる。

$ helm search hub mysql
URL                                               	CHART VERSION	APP VERSION	DESCRIPTION                                       
https://hub.helm.sh/charts/rimusz/gcloud-sqlproxy 	0.19.1       	1.16       	Google Cloud SQL Proxy                            
https://hub.helm.sh/charts/bitnami/phpmyadmin     	4.2.4        	4.9.2      	phpMyAdmin is an mysql administration frontend    
https://hub.helm.sh/charts/bitnami/mariadb        	7.1.0        	10.3.20    	Fast, reliable, scalable, and easy to use open-...
... snip

チャートレポジトリからのサーチ

先立ってレポジトリを追加しておく必要がある。

$ helm repo add stable https://kubernetes-charts.storage.googleapis.com/
"stable" has been added to your repositories

ここで注意。helmのリリースはKubernetes Clusterに問い合わせる事で表示するので、どの端末の helmを叩いても同じ結果が期待出来ますが、 helm repoで扱うチャートレポジトリは実行環境毎に行う必要がある。

addした レポジトリの情報は ~/.config/helm/repositories.yaml に記録される。システムで一度helm repo addすればどのユーザ・クライアント端末からでも有効というわけではないので注意。このファイルのパスは –repository-config で変更可能。

$ cat .config/helm/repositories.yaml
apiVersion: ""
generated: "0001-01-01T00:00:00Z"
repositories:
- caFile: ""
  certFile: ""
  keyFile: ""
  name: stable
  password: ""
  url: https://kubernetes-charts.storage.googleapis.com/
  username: ""
$ helm search repo mysql
NAME                            	CHART VERSION	APP VERSION	DESCRIPTION                                       
stable/mysql                    	1.4.0        	5.7.27     	Fast, reliable, scalable, and easy to use open-...
stable/mysqldump                	2.6.0        	2.4.1      	A Helm chart to help backup MySQL databases usi...
... snip ...

検索語句については Fuzzyな感じでもなんとなく見つけてくれる。