仓库
Helm 的 Repo 仓库和 Docker Registry 比较类似,Chart 库可以用来存储和共享打包 Chart 的位置,我们在安装了 Helm 后,默认的仓库地址是 google 的一个地址,这对于我们不能科学上网的同学就比较苦恼了,没办法访问到官方提供的 Chart 仓库,可以用helm repo list
来查看当前的仓库配置:
1 | helm repo list |
替换阿里的仓库:
1 | [root@master101 sy]# helm repo remove stable |
仓库添加完成后,可以使用 update 命令进行仓库更新。当然如果要我们自己来创建一个 web 服务器来服务 Helm Chart 的话,只需要实现下面几个功能点就可以提供服务了:
- 将索引和
Chart
置于服务器目录中 - 确保索引文件
index.yaml
可以在没有认证要求的情况下访问 - 确保 yaml 文件的正确内容类型(text/yaml 或 text/x-yaml)
查找 chart
Helm 将 Charts 包安装到 Kubernetes 集群中,一个安装实例就是一个新的 Release,要找到新的 Chart,我们可以通过搜索命令完成。
直接运行helm search
命令可以查看有哪些 Charts 是可用的:
1 | [root@master101 sy]# helm search |
搜索mysql:
1 | [root@master101 sy]# helm search mysql |
inspect 命令来查看一个 chart 的详细信息:
1 | [root@master101 sy]# helm inspect stable/mysql |
安装 chart
1 | helm install stable/mysql |
--name
参数指定 名字:
1 | helm install stable/mysql --name mydb |
自定义 chart
要查看 chart 上可配置的选项,使用helm inspect values
命令即可,比如我们这里查看上面的 mysql 的配置选项:
1 | [root@master101 sy]# helm inspect values stable/mysql |
我们可以直接在 YAML 格式的文件中来覆盖上面的任何配置,在安装的时候直接使用该配置文件即可:(config.yaml)
1 | mysqlUser: syUser |
指定该 yaml 文件
1 | helm install -f config.yaml stable/mysql --name mydb |
pod状况
1 | kubectl get pods |
看到是pending状态,describe查下:
1 | Events: |
可以通过 storageclass 或者手动创建一个合适的 PV 对象来解决这个问题。
也可以更新helm,来直接禁用掉数据持久化,可以在上面的 config.yaml 文件中设置:
1 | persistence: |
另外一种方法就是在安装过程中使用--set
来覆盖对应的 value 值,比如禁用数据持久化,我们这里可以这样来覆盖:
1 | helm install stable/mysql --set persistence.enabled=false --name mydb |
升级
将数据持久化禁用掉来对上面的 mydb 进行升级:
1 | [root@master101 sy]# echo config.yaml |
可以使用 helm history 命令查看 release 的历史版本:
1 | helm history mydb |