V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
eephee
V2EX  ›  Kubernetes

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

  •  
  •   eephee · 2023-02-15 13:06:00 +08:00 · 1913 次点击
    这是一个创建于 651 天前的主题,其中的信息可能已经有所发展或是发生改变。

    公司的服务是属于 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-02-15 13:22:01 +08:00
    那还不如直接给客户 yaml 文件 apply ,更减少复杂度
    eephee
        2
    eephee  
    OP
       2023-02-15 13:24:51 +08:00
    @perfectlife 我可能没说清楚,k8s 配置文件我们这边是需要持续维护的,当然在部署的时候也可以生成一份 yaml 给客户
    xabcstack
        3
    xabcstack  
       2023-02-15 13:26:05 +08:00
    不建议使用 helm , 建议使用原生 yaml
    eephee
        4
    eephee  
    OP
       2023-02-15 13:27:56 +08:00
    @xabcstack 能说一下为什么不建议使用 helm 吗?我看蛮多人对 helm 普遍持称赞态度。

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

    https://github.com/helmfile/helmfile/blob/main/README-zh_CN.md
    runzhliu
        6
    runzhliu  
       2023-02-15 14:00:33 +08:00
    用 helm 就很够了,相对 yaml 会灵活一点,前提是对 helm 比较熟悉
    perfectlife
        7
    perfectlife  
       2023-02-15 16:03:42 +08:00
    @eephee 自己团队用 helm 都无所谓,交付给客户还是 yaml 省劲,直观看着也方便,另外原生 yaml 没感觉多环境不方便,我们四个环境全用 yaml ,服务配置有配置中心,yaml 基本上很少变更配置,并且都是 yaml ,cicd 做起来也很省劲
    liuhan907
        8
    liuhan907  
       2023-02-15 16:05:05 +08:00
    其它的不多说,我觉得你们肯可以参考一下 bitnami 他们的开源 helm 仓库的写法。
    yyttrr
        9
    yyttrr  
       2023-02-20 16:02:41 +08:00
    长期维护而且没有网络限制的话还是用 web+后台+数据库维护吧,要不然多了肯定乱
    xabcstack
        10
    xabcstack  
       2023-02-21 13:06:06 +08:00
    xabcstack
        11
    xabcstack  
       2023-02-21 13:08:41 +08:00
    @eephee 因为绝大多数人,没有自己独立思考能力,只能人云亦云,冷静思考一下,helm 解决了什么问题?其实什么也没解决,而原生 yaml 可读性非常好,何必多此一举使用 helm
    xiaomudk
        12
    xiaomudk  
       2023-02-27 13:10:02 +08:00
    强烈推荐使用 helmfile, 对 helm 和 kustomize 可以根据环境一起管理起来。
    最重要的,别忘了 Star(利益相关:helmfile 核心维护者),哈哈~~
    eephee
        13
    eephee  
    OP
       2023-04-19 13:54:21 +08:00
    @xiaomudk orz 大佬!
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2961 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 15:00 · PVG 23:00 · LAX 07:00 · JFK 10:00
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.