Helm 3.0 - 1 / quick start

Page content

Helm 3.0 が GAになったので 色々やってみる。

Quickstart Guide

やること

  1. Kubernetes Clusterを準備する
  2. セキュリティ構成をする
  3. 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なんかにコピーする。

helm latest release

{
    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