Helm 3.0 - 1 / quick start
Helm 3.0 が GAになったので 色々やってみる。
やること
- Kubernetes Clusterを準備する
- セキュリティ構成をする
- Helmをインストールして構成する
Kubernetes Cluster
推奨はLatestリリースのHelmとLatest StableリリースのKubernetes。 まぁ適当に。
helmのインストール
以前のVersionでは helmのコマンドをインストールした後に helm initして tillerを kubernetes clusterに deployする必要があったのが無くなっているためかなりシンプル。
Download release binary
Githubの Releaseから Binaryを Downloadして/usr/local/binなんかにコピーする。
{
ARCH=linux-amd64
VERSION=v3.0.0
RELEASE=helm-$VERSION-$ARCH.tar.gz
INSTALL=/usr/local/bin
curl -LOJR https://get.helm.sh/$RELEASE
curl -LOJR https://get.helm.sh/$RELEASE.sha256
sed -e "s/$/ $RELEASE/" $RELEASE.sha256 > $RELEASE.sha256sum
sha256sum -c $RELEASE.sha256sum && tar xzf $RELEASE
sudo install -m 0755 -o root -g root $ARCH/helm $INSTALL
}
macOSの場合は brewで、Windowsであれば Chocolateyでインストールも可能
Add helm chart repository
helmの chart repositoryを 追加する。
helm repo add stable https://kubernetes-charts.storage.googleapis.com/
実行結果
$ helm version
version.BuildInfo{Version:"v3.0.0", GitCommit:"e29ce2a54e96cd02ccfce88bee4f58bb6e2a28b6", GitTreeState:"clean", GoVersion:"go1.13.4"}
$ helm repo add stable https://kubernetes-charts.storage.googleapis.com/
"stable" has been added to your repositories
ここで追加しているのは chartを tgzでまとめて Object Storageに 格納した bucketのS3 API URL
試しに使ってみる
使い方は apt使う感覚と似ている?
リストの更新
helm repo update
chartの検索
repoにある chartを 検索してみる
helm search repo
repo以外には hubを指定して Helm Hubから検索したりも可能
$ 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...
stable/prometheus-mysql-exporter 0.5.2 v0.11.0 A Helm chart for prometheus mysql exporter with...
stable/percona 1.2.0 5.7.17 free, fully compatible, enhanced, open source d...
stable/percona-xtradb-cluster 1.0.3 5.7.19 free, fully compatible, enhanced, open source d...
stable/phpmyadmin 4.2.3 4.9.1 phpMyAdmin is an mysql administration frontend
stable/gcloud-sqlproxy 0.6.1 1.11 DEPRECATED Google Cloud SQL Proxy
stable/mariadb 7.0.1 10.3.20 Fast, reliable, scalable, and easy to use open-...
さっきは repo updateで object verb の語順だったのに、今は verb object で直感的に理解しにくいな。
Chartをインストール
あとはChartを指定してインストールしてみる。
helm install stable/mysql --generate-name
名前を独自に指定する場合はchart名の前に置く
helm install NAME stable/mysql
実行した例、–generate-nameにするとランダムな番号?がついた
$ helm install stable/mysql --generate-name
NAME: mysql-1574528875
...
名前を指定するとこんな感じ。
$ helm install my-mysql stable/mysql
NAME: my-mysql
LAST DEPLOYED: Sun Nov 24 02:09:34 2019
NAMESPACE: default
STATUS: deployed
REVISION: 1
NOTES:
MySQL can be accessed via port 3306 on the following DNS name from within your cluster:
my-mysql.default.svc.cluster.local
To get your root password run:
... snip ...
インストールしたパッケージ(リリース)の確認
インストールしたパッケージを確認するには list (ls) を使う
helm list
実行するとこんな感じ
$ helm list
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION
mysql-1574528875 default 1 2019-11-24 02:07:57.470211919 +0900 JST deployed mysql-1.4.05.7.27
更に個別に状態を確認するには status NAME で状態を確認出来る。Install後に表示されるメッセージと同じっぽ。
$ helm status mysql
NAME: mysql
LAST DEPLOYED: Sat Nov 30 11:48:28 2019
NAMESPACE: default
STATUS: deployed
REVISION: 1
NOTES:
MySQL can be accessed via port 3306 on the following DNS name from within your cluster:
... snip
インストールしたパッケージのアンインストール
名前を指定してuninstallすれば良い
helm uninstall mysql-1574528875
$ helm uninstall mysql-1574528875
release "mysql-1574528875" uninstalled