有什么方便管理 k8s yaml 的工具吗, helm 已经不够用了

2024-02-18 17:47:53 +08:00
kikyou12138  kikyou12138

目前的问题是,helm 的 value 会有多个,因为有很多个环境,如果 value 中新增一项,那么要在所有 value.yaml 中添加那一项,新增子 chart 的方案感觉很乱所有没有用,还有什么其他可以管理的方案不

2298 次点击
所在节点   Kubernetes  Kubernetes
16 条回复
arischow
arischow
2024-02-18 17:50:56 +08:00
fengxsong
fengxsong
2024-02-18 17:59:06 +08:00
你是一个 chart 使用在多个应用上?
a842543374
a842543374
2024-02-18 18:01:02 +08:00
试试 helmfile
kikyou12138
kikyou12138
2024-02-18 18:08:50 +08:00
@fengxsong 不是,是一个 chart 应用在多套环境,其中也有离线环境,所以添加一个配置项的时候,需要手动维护多个 value.yaml
kikyou12138
kikyou12138
2024-02-18 18:08:59 +08:00
@a842543374 好的我学习下
kikyou12138
kikyou12138
2024-02-18 18:09:15 +08:00
airycanon
airycanon
2024-02-18 18:12:32 +08:00
听起来 kustomize overlay 挺适合你的。
sampeng
sampeng
2024-02-18 18:29:04 +08:00
因为一次 helm template 过程是可以传递多个 value.yaml.
其次 value.yaml 是覆盖关系。所以可以抽取一个公共的 common.yaml.公共的放这里面。
最后,就可以做到改一个 yaml 所有环境自动调整好。

当然也有坏处,多一个文件就要多一个说明。时间长了记不住
sampeng
sampeng
2024-02-18 18:29:51 +08:00
比如我的 helm 就是
helm install -f common.yaml -f prod.yaml
helm install -f common.yaml -f test.yaml
helm install -f common.yaml -f staging.yaml
kikyou12138
kikyou12138
2024-02-18 19:48:03 +08:00
@sampeng 这个我尝试过,但是还是要维护多个 value 的 yaml ,如果要新增一个多个环境有差别的配置的话
mightybruce
mightybruce
2024-02-19 00:00:42 +08:00
这时候 yaml 是不够的,
你需要尝试一下 HCL CUE KCL 这样的通用语言去生成 Yaml 了
https://kcl-lang.io/docs/user_docs/getting-started/intro/
fengxsong
fengxsong
2024-02-19 09:13:53 +08:00
sampeng
sampeng
2024-02-19 10:11:01 +08:00
@kikyou12138 多个环境就是要维护多个 yaml 。否则,就要用类似 hcl ,cue 之类的语言从配置中心自动来生成 yaml 。取决你的需求。helm 的 value 变更一般很小。一个月一次?甚至只要这个环境定了就不动了。。。
kikyou12138
kikyou12138
2024-02-19 11:06:09 +08:00
@sampeng 好的我去了解下,我们多个环境变动很频繁,所以才有这个需求
clhlc
clhlc
2024-02-19 18:01:16 +08:00
看起来 7 楼方案适合你,不过我用 3 楼方案
windcode
windcode
251 天前
可以考虑 KCL+Kusion

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1016312

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX