K8s已安装Helm Chart无需values.yaml如何修改单个值完成升级
结论
完全可以在不使用任何自定义YAML配置文件的前提下,仅修改单个配置值完成Helm升级,不需要提前留存全量values.yaml文件。
具体操作
核心靠helm upgrade的两个内置参数就能实现需求:
--reuse-values:直接拉取集群里对应Helm Release当前已经生效的全部历史配置当本次升级的基础配置,保证原有所有配置值完全不变--set <配置键>=<新值>:直接在命令行传入你要改的单个配置键值对,只覆盖对应配置项,完全不需要依赖本地YAML文件
命令格式
helm upgrade <你的Helm Release名称> <对应Chart的引用> --reuse-values --set <要修改的配置键>=<新的配置值>
操作示例
假设你部署的Release名叫my-nginx,用的是bitnami仓库的nginx chart,现在只需要把副本数改成2,直接跑下面的命令就行:
helm upgrade my-nginx bitnami/nginx --reuse-values --set replicaCount=2
注意事项
- 要是你要改的配置值带特殊字符(空格、逗号、引号这类),给整个键值对套双引号转义就可以,比如
--set "app.description=My Production App" - 升级完成后可以执行
helm get values <你的Helm Release名称>查看当前Release生效的全量配置,确认目标配置已经更新、其余配置没有变动 - 千万别漏加
--reuse-values参数:不带这个参数的话,helm upgrade会以Chart内置的默认values为基础来合并你传入的配置,之前你自定义过的、和Chart默认值不一致的配置会被直接覆盖,很容易引发服务故障。
内容的提问来源于stack exchange,提问作者Eitan
相关产品推荐
相关产品推荐

