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.
进行得很顺利。计划在图表上继续书写…