Zadig 文档
Zadig
教程
博客
论坛
关于
中文英文
Zadig
教程
博客
论坛
关于
Zadig v3.4
Loading...
     编辑文档
     反馈问题
     社区讨论

    本页导航

    简介

    本文介绍 Zadig 服务和环境的基本概念。

    # 环境

    Zadig 环境是一组服务集合及其配置、运行环境的总称,与 Kubernetes 的 Namespace 是一对一的关系,使用一套服务模板可以创建多套环境。

    Zadig 环境按照以下方式进行分类:

    • 根据服务部署方式和基础设施的不同分为:K8s YAML 环境、K8s Helm Chart 环境、K8s 托管环境、主机环境。
    • 根据场景的不同分为:测试环境和生产环境。

    # 服务

    Zadig 中的服务可以理解为一组 Kubernetes 资源,包括 Ingress、Service、Deployment/Statefulset/CronJob、InitContainer、ConfigMap 等,也可以是一个完整的 Helm Chart 或者云主机/物理机服务,成功部署后可对外提供服务能力。

    Zadig 服务可以按照以下方式进行分类:

    • 根据服务部署方式和基础设施的不同分为:K8s YAML 服务、K8s Helm Chart 服务、K8s 托管服务、主机服务。
    • 根据场景的不同分为:测试服务和生产服务。测试服务供测试环境使用,生产服务供生产环境使用。

    # 什么是服务组件?

    服务组件是容器服务中极其重要的一个概念,是可被更新的最小单元,以开源 Zadig(opens new window) 服务示例,它包含以下服务组件:

    • aslan:负责 Zadig 中项目、环境、服务、构建、系统管理等核心功能
    • zadig-portal:Zadig 的 Web 端
    • dex:负责 Zadig 中第三方账号和认证鉴权相关业务
    • ......

    一个服务中可以包含多个服务组件,可以理解为:服务组件是一个独立可自治的模块,所有的服务组件组合起来,整体对外提供服务能力。

    服务配置

    # 服务组件的解析

    对于不同的项目类型,系统解析服务组件的逻辑不同,下面展开介绍。

    # K8s YAML 项目

    服务组件的信息来源于服务 K8s YAML 配置内容中的 Deployment/Statefulset/CronJob/InitContainer 资源,以下图为例:

    • 服务组件:Deployment/StatefulSet/CronJob/InitContainer 资源中,container 的名称
    • 当前镜像版本:服务组件的 image 信息
    • 镜像名:从当前镜像版本中解析得出,解析格式为:仓库地址/命名空间/镜像名:标签名

    服务配置

    # K8s Helm Chart 项目

    服务组件的信息来源于服务的 values.yaml 文件内容,以下图为例:

    • 当前镜像版本:系统按照一定的规则对 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.project/deploy.image.name:deploy.image.tag 即可。
    点击查看
    key1: value1
    key2: value2
    ...
    deploy:
      image:
        repo: library
        project: public
        name: ubuntu
        tag: 20.04
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    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

    # K8s 托管项目

    服务组件的信息来源于被托管的服务实例,目前支持 Deployment/Statefulset/CronJob/InitContainer 类型的服务实例,以下图为例:

    • 服务组件:Deployment/StatefulSet/CronJob/InitContainer 实例中,container 的名称
    • 当前镜像版本:被托管服务实例资源的镜像版本,即:image 信息
    • 镜像名:从当前镜像版本中解析得出,解析格式为:仓库地址/命名空间/镜像名:标签名

    # 如何更新服务组件

    支持以下 3 种途径更新服务组件。

    1. 为服务组件配置构建后,运行工作流时可选择对应的服务组件对其进行更新,相关配置文档参考如下:
    • 构建配置
    • 工作流部署任务配置
    1. 在环境中直接修改服务组件镜像来对其进行更新,参考 服务实例操作。
    2. 通过修改服务配置文件中的镜像信息,并在环境中更新服务来实现服务组件的更新,参考 更新服务。

    ← 发布回滚K8s YAML 服务→

    资源
    教程
    论坛
    博客
    公司
    关于
    客户故事
    加入我们
    联系我们
    微信扫一扫
    hello@koderover.com

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

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