Helm安装服务前自定义Chart默认配置项
文章目录
1.修改Chart默认配置项的两种方式
在前面使用helm部署的mysql,不管使用什么仓库的chart包,都不会顺利的直接部署成功,都需要有一些环境依赖,例如阿里云的chart包需要pv的依赖,apphub的chart包需要StorageClass的依赖,不管我们补充了什么依赖,虽然最后都成功运行了服务,但是我们也并不是以chart默认的配置运行成功的。
基于这种现象,我们可以通过自定义一些chart的配置选项,自定义chart的配置选项有两种方式:
- –values或-f:指定带有覆盖values.yaml文件,可以多次指定,只会将新yaml中的参数传到原本的values.yaml,没有指定的参数不会发生变化。 - 命令格式:
helm install -f values.yaml chart包路径|chart包
- –set:在命令行上指定替代,如果两者都用,–set的优先级高。 - 命令格式:
helm install --set mysqlUer="test" chart包路径|chart包
- 如果一条命令中需要修改多个配置项,则每一个配置项都需要有一个–set。
–values和–set书写不同之处
valuessetmysqlUser: test–set mysqlUser=testa: b
c: d–set a=b,c=douter:
inner: value–set outer.inner=valueport:
- 8080
- 8090–set port={8080,8090}servers:
- port: 80–set servers[0].port=80servers:
- port: 80
name: web–set servers[0].port=80,service[0].host=webname: “value1”,“value2”–set name=value1,value2nodeSelector:
kubernetes.io/role: master–set “
”=masternodeSelector.kubernetes\.io/role
2.使用–values的方式自定义chart配置项
实现目的:调整创建pvc的方式为StorageClass,并创建一个test_db数据库以及test用户和密码。
2.1.编写values.yaml
1.编写一个values文件存放自定义的配置参数
[root@k8s-master1 ~/helm/deploy/mysql/aliyun]# vim values.yaml mysqlUser: test #创建一个test的普通用户mysqlPassword: test123 #test用户的密码为test123mysqlDatabase: test_db #创建一个test_db数据库persistence:#设置存储类型enabled:truestorageClass:"helm-storageclass"#指定StorageClassaccessMode: ReadWriteOnce
size: 8Gi
2.2.部署mysql服务
1.部署服务的时候使用-f或者--values指定values.yaml文件
[root@k8s-master1 ~/helm/deploy/mysql/aliyun]# helm install db3 -f values.yaml mysql
2.查看服务的状态
[root@k8s-master1 ~/helm/deploy/mysql/aliyun]# helm list
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION
db default 1 2021-07-21 17:02:16.911916854 +0800 CST deployed mysql-0.3.5
db-apphub default 1 2021-07-22 13:51:16.968872145 +0800 CST deployed mysql-6.8.0 8.0.19
db3 default 1 2021-07-22 15:54:24.185469279 +0800 CST deployed mysql-0.3.5
[root@k8s-master1 ~/helm/deploy/mysql/aliyun]# kubectl get pod | grep db3
db3-mysql-6f49c98d58-sqwgz 1/1 Running 0 38s
3.进入mysql容器查看数据库、用户是否创建
[root@k8s-master1 ~/helm/deploy/mysql/aliyun]# kubectl exec -it db3-mysql-6f49c98d58-sqwgz bash
root@db3-mysql-6f49c98d58-sqwgz:/# mysql -utest -ptest123
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| test_db |
+--------------------+
2 rows in set (0.01 sec)
3.使用–set方式自定义chart配置项
3.1.部署mysql服务
1.部署服务
[root@k8s-master1 ~/helm/deploy/mysql/aliyun]# helm install db4 --set mysqlUser=test --set mysqlPassword=test123 --set mysqlDatabase=test_db --set persistence.storageClass="helm-storageclass" mysql
2.查看服务的状态
[root@k8s-master1 ~/helm/deploy/mysql/aliyun]# helm list
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION
db default 1 2021-07-21 17:02:16.911916854 +0800 CST deployed mysql-0.3.5
db-apphub default 1 2021-07-22 13:51:16.968872145 +0800 CST deployed mysql-6.8.0 8.0.19
db3 default 1 2021-07-22 15:54:24.185469279 +0800 CST deployed mysql-0.3.5
db4 default 1 2021-07-22 16:15:27.482006146 +0800 CST deployed mysql-0.3.5
[root@k8s-master1 ~/helm/deploy/mysql/aliyun]# kubectl get pod | grep db4
db4-mysql-6bf5d8dc45-fkmk8 1/1 Running 0 31s
3.2.进入mysql容器验证配置项是否生效
[root@k8s-master1 ~/helm/deploy/mysql/aliyun]# kubectl exec -it db4-mysql-6bf5d8dc45-fkmk8 bash
root@db4-mysql-6bf5d8dc45-fkmk8:/# mysql -utest -ptest123
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| test_db |
+--------------------+
2 rows in set (0.00 sec)
4.helm install支持的安装源
helm install命令可以从多个来源安装:
- chart存储库
- 本地chart存档(helm install foo-0.1.1.tgz)
- chart目录(helm install path/to/foo)
- 完整的URL(helm install https://example.com/charts/foo-1.2.3.tgz)
版权归原作者 Jiangxl~ 所有, 如有侵权,请联系我们删除。