再次实践 MySQL chart — Kubernetes(53)

in #kubernetes7 years ago

学习了 chart 结构和模板的知识后,现在重新实践一次 MySQL chart,相信会有更多收获。

chart 安装前的准备

作为准备工作,安装之前需要先清楚 chart 的使用方法。这些信息通常记录在 values.yaml 和 README.md 中。除了下载源文件查看,执行 helm inspect values 可能是更方便的方法。

810.png

输出的实际上是 values.yaml 的内容。阅读注释就可以知道 MySQL chart 支持哪些参数,安装之前需要做哪些准备。其中有一部分是关于存储的:

811.png

chart 定义了一个 PersistentVolumeClaim,申请 8G 的 PersistentVolume。由于我们的实验环境不支持动态供给,所以得预先创建好相应的 PV,其配置文件 mysql-pv.yml 内容为:

812.png

创建 PV mysql-pv

813.png

接下来就可以安装 chart 了。

定制化安装 chart

除了接受 values.yaml 的默认值,我们还可以定制化 chart,比如设置 mysqlRootPassword

Helm 有两种方式传递配置参数:

  1. 指定自己的 values 文件。
    通常的做法是首先通过 helm inspect values mysql > myvalues.yaml 生成 values 文件,然后设置 mysqlRootPassword,之后执行 helm install --values=myvalues.yaml mysql

  2. 通过 --set 直接传入参数值,比如:

814.png

mysqlRootPassword 设置为 abc123。另外,-n 设置 release 为 my,各类资源的名称即为my-mysql

通过 helm listhelm status 可以查看 chart 的最新状态。

815.png

PVC 已经 Bound,Deployment 也 AVAILABLE

升级和回滚 release

release 发布后可以执行 helm upgrade 对其升级,通过 --values--set 应用新的配置。比如将当前的 MySQL 版本升级到 5.7.15:

816.png

等待一些时间,升级成功。

817.png

helm history 可以查看 release 所有的版本。通过 helm rollback 可以回滚到任何版本。

818.png

回滚成功,MySQL 恢复到 5.7.14。

819.png

到这里,相信大家已经会使用 chart 了。下一节我们学习如何开发自己的 chart。