Zadig 文档
Zadig
论坛
关于
Zadig
论坛
关于
v1.13.0
Loading...
      编辑文档
      反馈问题
      Slack 上联系我们

    本页导航

    K8s Helm Chart 服务

    本文介绍 K8s Helm Chart 项目中的服务相关操作。Helm (opens new window) 是 Kubernetes 应用的包管理工具,使用 Helm Chart 可定义、安装和升级复杂的 Kubernetes 应用。

    # 新建服务

    支持从代码库同步、从 Chart 仓库同步、使用模板新建三种方式创建 K8s Helm Chart 服务。

    • 从代码库同步:从代码库中同步服务的 Helm Chart 配置,支持 GitHub/GitLab/Gerrit 代码库。
    • 从 Chart 仓库同步:从 Chart 仓库中同步服务的 Helm Chart 配置。
    • 使用模板新建:使用 Zadig 平台中的服务 Helm Chart 模板来创建服务,支持一次创建一个服务,也支持批量创建服务。

    # 从代码库同步服务

    点击从代码库同步 -> 填写代码库及服务配置在代码库中的目录 -> 点击加载,即可从代码库同步服务。同步成功后,当代码库中对应目录的文件有变更时,会通过 Webhook 的方式自动更新此处的服务配置。

    提示

    1. 需要在系统中集成代码源,可参考:代码源集成
    2. 目前支持从 GitLab/GitHub/Gerrit/Gitee 代码源同步服务

    以 service2 (opens new window) 服务为例,服务的 Helm Chart 配置目录结构为:

    ├── zadig/examples/multi-service-demo/full-charts/service2
    │   ├── Chart.yaml
    │   ├── templates
    │   │   ├── _helpers.tpl
    │   │   ├── deployment.yaml
    │   │   └── service.yaml
    │   └── values.yaml
    
    1
    2
    3
    4
    5
    6
    7

    从代码库同步该服务:

    从 Git 仓库导入 Helm Chart

    同步后效果:

    从 Git 仓库导入 Helm Chart 效果

    # 从 Chart 仓库同步服务

    前提

    需要先集成 Helm Chart 仓库,参考:集成 Helm Chart 仓库。

    点击从 Chart 仓库同步,选择 Chart 仓库及 Chart,新建即可。 从 Chart 仓库同步 Helm Chart

    # 使用模板新建单个服务

    前提

    需要先在系统模板库里创建 Helm Chart 模板,请参考 Helm Chart 模板管理

    • 点击使用模板新建 -> 填写服务名称并选择模板 -> 按需填写配置后,导入即可。
      • 变量配置可使用模板中的默认值,也可以在新建时重新赋值
      • 开启自动同步后,当在模板库中对使用的模板操作应用到服务时,该服务配置将自动基于模板内容同步

    从 Git 仓库导入 Helm Chart

    • 在高级设置中,系统还支持用新的 values.yaml 覆盖模板中的 values.yaml 内容,包括手动输入和从指定代码库导入两种途径来覆盖。

    从 Git 仓库导入 Helm Chart

    # 使用模板批量新建服务

    提示

    Helm Chart 模板的 values.yaml 文件中不能使用自定义变量

    使用 multi-service-demo (opens new window) 案例来说明如何使用模板批量新建服务,必要目录说明如下:

    zadig/examples/multi-service-demo
    ├── base-chart # Helm Chart 模板
    │   ├── Chart.yaml
    │   ├── templates
    │   │   ├── _helpers.tpl
    │   │   ├── deployment.yaml
    │   │   └── service.yaml
    │   └── values.yaml # 不支持使用自定义变量
    └── values # 分别对应 3 个服务的 values 文件
        ├── service1.yaml
        ├── service2.yaml
        └── service3.yaml
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12

    点击使用模板新建 -> 点击批量创建 -> 选择 Helm Chart 模板 -> 选择要导入服务的 values 文件,导入即可。

    从 Helm Chart 模板导入服务 从 Helm Chart 模板导入服务

    导入后,效果如下图所示。一份 values 文件会被定义成一个服务,values 文件名即为服务名。服务批量创建完毕后,点击更新环境即可将服务快速应用于环境中。

    预览从 Helm Chart 模板导入服务后效果

    # 服务组件

    Helm Chart 服务组件自定义

    可参考服务组件了解更多信息,此处相关字段说明如下:

    • 服务组件:同镜像名
    • 镜像名:按照仓库地址/命名空间/镜像名:标签名的规则来解读当前镜像版本,标签名前即为镜像名称
    • 当前镜像版本:系统按照一定的规则对 values.yaml 文件做解析获得镜像信息,解析规则可阅读服务组件镜像解析规则
    • 构建信息/操作:可为服务组件配置构建操作,定义其构建过程,参考:构建配置

    # 服务组件镜像解析规则

    包括内置规则和自定义规则,导入 Helm Chart 配置文件后,系统会按照内置规则解析 vaues.yaml 文件中的镜像内容。当内置规则不满足需求时,可点击服务组件右侧的更新匹配规则来自定义镜像解析规则。

    Helm Chart 服务组件自定义

    内置规则

    1. values.yaml 中有如下代码段结构,拼接 image.repository:image.tag 作为该组件的镜像版本,服务的部署版本和更新均围绕 image.repository 和 image.tag。该例中即为:koderover.tencentcloudcr.com/koderover-demo/backend:latest。
    点击查看
    # Helm Chart values.yaml Demo
    key1: value1
    key2: value2
    key3:
      key4: value4
      key5:
        image:
          repository: "koderover.tencentcloudcr.com/koderover-demo/backend"
          tag: "latest"
      key6:
        ...
    ...
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    1. values.yaml 中的 image 字段的值为镜像信息,服务的部署版本和更新均围绕 image。该例中即为 koderover.tencentcloudcr.com/koderover-demo/backend:latest。
    点击查看
    # Helm Chart values.yaml Demo
    key1: value1
    key2: value2
    key3:
      key4: value4
      key5:
        image: "koderover.tencentcloudcr.com/koderover-demo/backend:latest"
      key6:
        ...
    ...
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10

    自定义规则

    1. 使用 key 的绝对路径来解析组件的镜像信息,下例中,自定义规则中填入 deploy.image.repo/deploy.image.name:deploy.image.tag 即可。
    点击查看
    key1: value1
    key2: value2
    ...
    deploy:
      image:
        repo: library
        name: ubuntu
        tag: 20.04
    
    1
    2
    3
    4
    5
    6
    7
    8
    1. 使用 key 的相对路径来解析服务组件的镜像信息,下例中,自定义规则中填入 repo/name:tag 即可。
    点击查看
    key1: value1
    key2: value2
    ...
    deploy:
      image:
        repo: library
        name: ubuntu
        tag: 20.04
    
    1
    2
    3
    4
    5
    6
    7
    8
    1. 支持使用一份解析规则来解析多个服务组件,下例中,自定义规则中填入 repo/name:tag 即可解析出 service1 和 service2 的镜像分别为 library/service1:v1 和 library/service2:v2。
    点击查看
    key1: value1
    key2: value2
    ...
    deploy:
      service1:
        repo: library
        name: service1
        tag: v1
      service2:
        repo: library
        name: service2
        tag: v2
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    1. values.yaml 文件中可复用部分 key,下例中,自定义规则中填入 public.repoInfo/name:tag 即可解析出 service1 和 service2 的镜像分别为 library/service1:v1 和 library/service2:v2。
    点击查看
    key1: value1
    key2: value2
    ...
    public:
      repoInfo: library
    deploy:
      service1:
        name: service1
        tag: v1
      service2:
        name: service2
        tag: v2
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    1. 自定义规则中的 仓库地址/命名空间 和 镜像名 填写一项即可,标签名 非必填。下例中,在自定义规则的仓库地址/命名空间或镜像名中填入 deploy.image.name 即可
    点击查看
    deploy:
      image:
        name: library/ubuntu:12.04
    
    1
    2
    3

    # 自定义 Helm Release 名称

    系统默认会使用服务名作为部署的 Helm Release 名称,可在服务右侧的Helm Release 名称配置中按需修改。系统支持通过常量和以下变量组合来配置:

    • $Product$:项目名称
    • $Service$:服务名称
    • $Namespace$:环境所在的命名空间
    • $EnvName$:环境名称

    当修改服务的 Helm Release 名称配置后,系统会自动重新部署环境中的服务,生成新的 Helm Release。

    自定义 Helm Release 名称

    # 服务编排

    Zadig 系统支持对多个服务的部署顺序进行编排管理,同一启动顺序组的服务在部署时会并行执行,不同启动顺序组的服务会按照组顺序执行,适用于多个服务的启动顺序有先后依赖关系的场景。

    点击服务编排图标,按需对服务启动顺序进行拖拽组合。

    K8s 服务编排 K8s 服务编排

    # 更新服务

    # 更新从代码库同步的服务

    • 从代码库同步服务的 Chart 配置后,会自动创建 Webhook。当对应代码库中有变更时,会自动同步服务的 Chart 配置到 Zadig 中。也可以点击服务右侧的同步按钮,点击加载主动同步更新。

    更新 Helm Chart 服务

    # 更新从 Chart 仓库同步的服务

    • 点击服务右侧的同步按钮,按需修改 Chart 版本号,点击更新即可。

    更新 Helm Chart 服务

    # 更新使用模板新建的服务

    • 点击服务右侧的同步按钮,按需修改 Helm values 文件后点击导入即可。

    更新 Helm Chart 服务

    # 删除服务

    • 点击服务右侧的删除按钮即可将服务配置删除。若需要将服务从环境中也删除,点击更新环境并选择要更新的环境即可。

    删除服务

    # 策略配置

    在策略中设置部署服务的超时时间以及交付物命名规则。细节可阅读:策略配置。

    服务策略配置

    # Helm Chart 样例

    koderover/zadig (opens new window) 库中提供了 Helm Chart 样例,点击链接 (opens new window)查看详情。

    ← K8s YAML 服务 K8s 托管服务→

    资源
    文档
    论坛
    公司
    关于我们
    加入我们
    联系我们
    微信扫一扫
    hello@koderover.com
    上海市浦东软件园

    © 2023 筑栈(上海)信息技术有限公司 沪 ICP 备 19000177 号 - 1

    •  跟随系统
    •  浅色模式
    •  深色模式
    •  阅读模式