Helm和Kubernetes

Helm という Kubernetes 用のパッケージマネージャを試しました。

Helm が apt や brew などの OS のパッケージマネージャと一番違うと感じたのは、一つのパッケージ(Chart と呼びます)を複数個インストール出来る事です。例えば mysql を三回インストールすれば3つの mysql が立ち上がります。3つインストールすればそれぞれを見分けないといけないので、Release 名が付けられます。

Chart のインストールと削除

我将尝试进行Quickstart Guide。

まず、現在の Kubernetes 環境を確認する。とりあえず Docker for Mac についてる環境でやります。

$ kubectl config current-context 
docker-for-desktop

安装Helm。

brew install kubernetes-helm

在初始阶段,据说我们需要安装一个名为Tiller的服务器端组件到Kubernetes集群。

helm init

我們試著安裝 stable/mysql 圖表。

$ helm repo update
$ helm install stable/mysql
NAME:   braided-quail
...

NAME: の所に表示されるのを Release 名です。これで Chart から出来たインスタンスを見分けます。適当に名付けられますが、 –name オプションで指定も出来ます。Chart をインストールすると丁寧な説明が表示されるので、そのとおりに操作して mysql が動いている事を確認する。

$ kubectl port-forward svc/braided-quail-mysql 3306 & # これはクラスタ内にアクセスするためのポートフォワーディング

$ MYSQL_ROOT_PASSWORD=$(kubectl get secret --namespace default braided-quail-mysql -o jsonpath="{.data.mysql-root-password}" | base64 --decode; echo)

$ mysql -h 127.0.0.1 -P 3306 -u root -p${MYSQL_ROOT_PASSWORD}
mysql: [Warning] Using a password on the command line interface can be insecure.
Handling connection for 3306
Welcome to the MySQL monitor.  Commands end with ; or \g.
...

再次查看《发布》的详细说明。

helm status braided-quail

看图表的信息。

helm inspect stable/mysql

已安装发行版的列表

$ helm ls
NAME            REVISION    UPDATED                     STATUS      CHART           APP VERSION NAMESPACE
braided-quail   1           Fri Sep  7 10:44:43 2018    DEPLOYED    mysql-0.10.1    5.7.14      default

有趣的是,如果再次安装 stable/mysql,就会得到另一个发布版。

$ helm install stable/mysql
$ helm ls --all
NAME            REVISION    UPDATED                     STATUS      CHART           APP VERSION NAMESPACE
braided-quail   1           Fri Sep  7 10:44:43 2018    DEPLOYED    mysql-0.10.1    5.7.14      default
moldy-toucan    1           Fri Sep  7 11:15:12 2018    DEPLOYED    mysql-0.10.1    5.7.14      default

删除发布

helm delete braided-quail

删除后仍会保留记录,无法再使用相同的名称。若要完全删除,请使用“–purge”。

helm delete --purge customized

自定义并安装图表。

我要查看自定义项目。

helm inspect values stable/mysql

实际上进行自定义。写入config.yaml的差异,通过helm install的 -f选项传入。例如,创建MySQL用户hoge和密码hige。

echo '{mysqlUser: hoge, mysqlPassword: hige}' > config.yaml
helm install stable/mysql -n customized -f config.yaml

确认行动

$ kubectl port-forward svc/customized-mysql 3306 & # ポートフォワーディングの設定

$ mysql -h 127.0.0.1 -P 3306 -u hoge -phige
mysql: [Warning] Using a password on the command line interface can be insecure.
Handling connection for 3306
Welcome to the MySQL monitor.  Commands end with ; or \g.

进行得很顺利。计划在图表上继续书写…

广告
将在 10 秒后关闭
bannerAds