使用 k8s+helm 同时管理 saas 化部署和私有化部署 ,想问一下大家可以参考的最佳实践? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
eephee
V2EX    Kubernetes

使用 k8s+helm 同时管理 saas 化部署和私有化部署 ,想问一下大家可以参考的最佳实践?

  •  
  •   eephee 2023 年 2 月 15 日 2486 次点击
    这是一个创建于 1072 天前的主题,其中的信息可能已经有所发展或是发生改变。

    公司的服务是属于 saas 化的一款产品,部署在华为云 k8s 集群里面。此外我们还承接针对某些客户的私有化部署,为了使部署过程更方便快捷、降低部署时因配置等导致的不稳定因素,我们决定采用 helm 来管理 k8s 配置,我也看过 kustomize ,但是感觉用起来较为复杂了所以后面还是继续使用 helm 了。

    我目前的想法是:

    charts/ templates/ environments/ values.dev.yaml values.prod.yaml values.selfhosted.yaml values.yaml 

    其中 templates/ 文件夹里面存放各个服务的 deployment/service 等信息,environments/ 文件夹下面存放不同环境独有的一些变量值,最外层的 values.yaml 存放不同环境下通用的一些变量值,优先级会低于 environments/ 下面的那些文件。

    我们在华为云上面的服务的 k8s 配置后面也会改成使用 helm 模板渲染出的配置,这样每次更新服务配置就只改 helm 然后生成配置,能比较好地使得不同部署环境的配置是实时同步的。

    这个只是一个很简单应该也是很常规的做法,想问一下大家有没有一些最佳实践之类的可以分享一下吗?包括更合理和全面的文件夹结构、或者说将自己的服务做成一个 helm 包(感觉这个场景并不常见...)、或者大家有知道的 Git 仓库吗我去瞻仰一波

    13 条回复    2023-04-19 13:54:21 +08:00
    perfectlife
        1
    perfectlife  
       2023 年 2 月 15 日
    那还不如直接给客户 yaml 文件 apply ,更减少复杂度
    eephee
        2
    eephee  
    OP
       2023 年 2 月 15 日
    @perfectlife 我可能没说清楚,k8s 配置文件我们这边是需要持续维护的,当然在部署的时候也可以生成一份 yaml 给客户
    xabcstack
        3
    xabcstack  
       2023 年 2 月 15 日
    不建议使用 helm , 建议使用原生 yaml
    eephee     4
    eephee  
    OP
       2023 年 2 月 15 日
    @xabcstack 能说一下为什么不建议使用 helm 吗?我看蛮多人对 helm 普遍持称赞态度。

    使用原生 yaml 对于我们这种多环境的情况很不方便也很不安全:如果某个服务的配置需要更改,我们就要去把每个环境的配置都改一遍,很容易遗漏。
    eephee
        5
    eephee  
    OP
       2023 年 2 月 15 日
    刚刚又看到一个项目 helmfile ,好像也蛮不错,只是不知道用起来可不可靠

    https://github.com/helmfile/helmfile/blob/main/README-zh_CN.md
    runzhliu
        6
    runzhliu  
       2023 年 2 月 15 日
    用 helm 就很够了,相对 yaml 会灵活一点,前提是对 helm 比较熟悉
    perfectlife
        7
    perfectlife  
       2023 年 2 月 15 日
    @eephee 自己团队用 helm 都无所谓,交付给客户还是 yaml 省劲,直观看着也方便,另外原生 yaml 没感觉多环境不方便,我们四个环境全用 yaml ,服务配置有配置中心,yaml 基本上很少变更配置,并且都是 yaml ,cicd 做起来也很省劲
    liuhan907
        8
    liuhan907  
       2023 年 2 月 15 日
    其它的不多说,我觉得你们肯可以参考一下 bitnami 他们的开源 helm 仓库的写法。
    yyttrr
        9
    yyttrr  
       2023 年 2 月 20 日
    长期维护而且没有网络限制的话还是用 web+后台+数据库维护吧,要不然多了肯定乱
    xabcstack
        10
    xabcstack  
       2023 年 2 月 21 日
    xabcstack
        11
    xabcstack  
       2023 年 2 月 21 日
    @eephee 因为绝大多数人,没有自己独立思考能力,只能人云亦云,冷静思考一下,helm 解决了什么问题?其实什么也没解决,而原生 yaml 可读性非常好,何必多此一举使用 helm
    xiaomudk
        12
    xiaomudk  
       2023 年 2 月 27 日
    强烈推荐使用 helmfile, 对 helm 和 kustomize 可以根据环境一起管理起来。
    最重要的,别忘了 Star(利益相关:helmfile 核心维护者),哈哈~~
    eephee
        13
    eephee  
    OP
       2023 年 4 月 19 日
    @xiaomudk orz 大佬!
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3450 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 39ms UTC 04:37 PVG 12:37 LAX 20:37 JFK 23:37
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86