Helm 3.0 - 2 / big 3 concept / chart repository
先週に引き続き、Helm 3.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な感じでもなんとなく見つけてくれる。