Zadig v1.18.0 文档
  • 快速入门

    • 什么是 Zadig
    • 核心概念
    • 快速安装
    • 第一个项目
    • 接入准备
  • 安装与配置

    • 安装简介
    • All in One 模式
    • 使用 Sealos 一键安装
    • 基于 Helm 命令安装
    • 基于现有 Kubernetes 安装
    • 本地安装
    • 兼容性列表
  • 最佳实践
  • 项目

    • 项目

      • 项目介绍
      • K8s YAML 项目
      • K8s Helm Chart 项目
      • K8s 托管项目
      • 主机项目
      • 权限管理
    • 工作流

      • 简介
      • 产品工作流
      • 自定义工作流
      • 工作流任务
      • 工作流审批
      • 工作流通知
      • 工作流触发器
    • 环境

      • K8s YAML 环境
      • K8s Helm Chart 环境
      • K8s 托管环境
      • 主机环境
      • 服务详情
    • 服务

      • 简介
      • K8s YAML 测试服务
      • K8s Helm Chart 服务
      • K8s 托管服务
      • 服务组件
      • 服务变量
      • 主机服务
    • 构建
    • 测试
    • 代码扫描
  • 模板库

    • K8s YAML 模板
    • Helm Chart 模板
    • Dockerfile 模板
    • 构建模板
  • 工作流

    • 工作流的触发
    • 工作流的构建缓存
    • 工作流任务的并发运行
    • 工作流的镜像版本回退
    • 工作流的变量传递
  • 环境

    • 环境的负载均衡
    • 配置多套环境
    • 自测联调环境
  • 测试中心

    • 测试中心
    • 测试工具实践
    • Apipost 测试平台接入
    • Apifox 测试平台接入
  • 交付中心

    • 交付物追踪
  • 数据视图

    • 数据概览
    • 效能洞察
  • 仪表盘

    • 仪表盘
  • 集成管理

    • 账号系统

      • LDAP
      • OAuth 2.0
      • GitHub
    • 项目管理
    • 代码源

      • 简介
      • GitLab 集成
      • GitHub 集成
      • Gerrit 集成
      • Gitee 公有云集成
      • 其他代码源集成
    • CI/CD 工具
    • 代码扫描
    • 镜像仓库
    • 对象存储
    • Helm 仓库
    • Kubernetes 集群
    • 主机管理
    • 其他系统
    • 软件包管理
    • 自定义镜像管理
  • 系统设置

    • 系统配置
    • 用户管理
    • 公告管理
    • 操作日志
    • 通知设置
  • 账号设置

    • 偏好设置
  • 开发者中心

    • OpenAPI 开发文档

      • API 调用方式
      • 交付中心
      • 工作流
      • 效能洞察
    • 外部系统接入开发文档

      • 自定义账号系统
      • 自定义工作流任务
    • VS Code Toolkit 插件

      • 使用指南
  • 常见问题

    • 产品使用 FAQ
    • 部署运维 FAQ
    • 集群故障 FAQ
    • 认证鉴权 FAQ
    • 诊断手册
  • 版本发布历史

    • Zadig Roadmap
    • v1.18.0 Release Notes
    • v1.17.0 Release Notes
    • v1.16.0 Release Notes
    • v1.15.0 Release Notes
    • v1.14.0 Release Notes
    • v1.13.0 Release Notes
    • v1.12.0 Release Notes
    • v1.11.0 Release Notes
    • v1.10.0 Release Notes
    • v1.9.0 Release Notes
    • v1.8.0 Release Notes
    • v1.7.1 Release Notes
    • v1.7.0 Release Notes
    • v1.6.0 Release Notes
    • v1.5.0 Release Notes
    • v1.4.0 Release Notes
    • v1.3.1 Release Notes
    • v1.3.0 Release Notes
    • v1.2.0 Release Notes
    • v1.1.0 Release Notes
    • v1.0.0 Release Notes
    • v1.0.0-rc.1 Release Notes
  • 术语表

    • 术语表

什么是服务组件

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

  • aslan:负责 Zadig 中项目、环境、服务、构建、系统管理等核心功能
  • warpdrive:工作流引擎,负责自定义工作流运行相关功能
  • zadig-portal:Zadig 的 Web 端
  • dex:负责 Zadig 中第三方账号和认证鉴权相关业务
  • ......

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

服务配置

服务组件的来源

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

K8s YAML 项目

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

  • 服务组件:Deployment/StatefulSet 资源中,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. 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. 使用 key 的绝对路径来解析组件的镜像信息,下例中,自定义规则中填入 deploy.image.repo/deploy.image.name:deploy.image.tag 即可。
详情
key1: value1
key2: value2
...
deploy:
  image:
    repo: library
    name: ubuntu
    tag: 20.04
  1. 使用 key 的相对路径来解析服务组件的镜像信息,下例中,自定义规则中填入 repo/name:tag 即可。
详情
key1: value1
key2: value2
...
deploy:
  image:
    repo: library
    name: ubuntu
    tag: 20.04
  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. 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. 自定义规则中的 仓库地址/命名空间 和 镜像名 填写一项即可,标签名 非必填。下例中,在自定义规则的仓库地址/命名空间或镜像名中填入 deploy.image.name 即可
详情
deploy:
  image:
    name: library/ubuntu:12.04

K8s 托管项目

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

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

如何更新服务组件

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

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