K8s Helm Chart 环境

本文主要介绍 K8s Helm Chart 项目中的环境相关操作。

创建环境

在项目中,点击创建环境按钮进入创建环境页面。

新建 Helm Chart 环境

新建 Helm Chart 环境

基本信息

  • 环境名称:要创建的环境的名称,比如:devpre-release
  • 创建方式:包括新建复制
    • 新建:基于服务的 Chart 配置,创建全新的环境。
    • 复制:基于在 Zadig 中已有的环境复制一份新的环境出来。
  • 选择环境:当创建方式是复制时需要配置该项,用于选择要复制的环境。
  • 资源选择
    • K8s 集群:选择创建环境时所使用的集群资源,其中本地集群指 Zadig 系统所在的集群。关于集群的集成可参考集群管理
    • K8s 命名空间:不同的环境会使用独立的 Kubernetes 命名空间实现隔离。Zadig 系统创建命名空间的默认规则为 项目名-env-环境名,用户也可以自定义或者选择已有命名空间。
    • 镜像仓库:指定环境创建后所使用的镜像仓库,使用工作流构建部署服务,以及修改服务镜像,均会使用此处指定的镜像仓库。关于镜像仓库的集成可参考镜像仓库管理

环境配置

在创建环境时为环境创建配置,说明如下:

  • 可创建多个 Ingress、ConfigMap、Secret、PVC 类型的配置
  • 支持直接粘贴 Ingress、ConfigMap、Secret、PVC 类型的 K8s YAML 文件内容
  • 支持从代码库导入 Ingress、ConfigMap、Secret、PVC 类型的 K8s YAML 文件
  • 环境创建成功后,此处新建的配置即会在环境/集群中生效

新建 Helm Chart 环境配置

全局服务变量

点击展开全局服务变量,可修改 values 文件内容设置环境级别的变量值,系统支持 2 种方式设置全局服务变量:

  • 手动输入 YAML 格式文件的内容,内容详情即为要设置的变量信息。
  • 从指定 GitHub/GitLab 代码库同步 values。在导入时打开自动同步开关,Zadig 会定时从指定的代码库获取最新的 values 文件并将其自动更新到环境中。

后续代码库中 values 内容有变化时,会自动同步修改当前环境的全局服务变量内容。

从代码库导入 values

服务变量

可选择修改指定服务的 values 文件内容配置服务级别的变量值,系统支持 3 种方式修改服务变量:

  • 手动输入 values 文件内容。
  • 从指定 GitHub/GitLab 代码库同步 values 文件。在导入时打开自动同步开关,Zadig 会定时从指定的代码库获取最新的 values 文件并将其自动更新到环境中。

从代码库导入 values

  • 手动输入 key/value 键值对,覆盖在创建 Helm Chart 服务时导入的 values 文件内容。

扩展知识

  1. 服务变量的设置只对单一服务生效。
  2. 全局服务变量的设置对当前环境的所有服务都生效。
  3. 如果既设置了全局服务变量,又设置了服务变量时,服务变量的优先级高于全局服务变量。

开始创建

输入环境名称,按需设置服务变量等信息后,点击立即创建按钮即可开始创建环境。

提示

服务数量以及启动服务所需的资源会影响环境的创建时间,请耐心等待。

查看环境

环境创建完成后,点击不同的环境 Tab 即可切换到该环境的详情页面。

查看 Helm Chart 环境

基本信息

基本信息包括 K8s 集群,K8s 命名空间,更新时间,环境状态,镜像仓库,服务列表及 Chart 视图

环境状态有以下几种情况:

  • 创建中:正在创建。
  • 更新中:正在更新。
  • 删除中:正在删除。
  • 正在运行:环境中所有服务都是正常的 Running 状态。
  • 运行不稳定:环境中一部分服务处于 Unstable 状态,可能的情况有两种:
    • 容器服务出现了问题。
    • 容器服务正在进行更新操作,例如更新镜像,会出现短时间的服务 Unstable,当更新过程完成之后,服务状态会恢复为 Running。
  • 环境可更新:当已创建的环境对应的环境模板有更新之后,环境处于可更新状态,有读写权限的用户可以看到更新环境按钮,点击按钮可对环境进行模板和配置的更新。

基本操作

环境操作包括:

  • 更新全局变量:修改服务的 values 内容,对当前环境下的所有服务都生效
  • 管理服务:包括添加服务更新服务删除服务
  • 环境配置:为环境配置 Ingress、ConfigMap、Secret、PVC 资源,细节描述请阅读环境配置管理
  • 删除环境:删除当前创建的环境,环境删除后不可恢复

更新环境变量

点击更新环境变量,可修改全局服务变量以及每一个服务的服务变量:

  • 可手动输入 values 内容或从代码库导入 values 文件来修改全局服务变量,修改后对当前环境下的所有服务都生效
  • 对单一某个服务变量的修改以及其和全局服务变量的关系可阅读:服务变量
  • 选择服务修改其 values 内容后,可点击预览查看修改后的效果

更新 Helm Chart 环境变量

添加服务

点击管理服务 -> 添加服务 -> 选择要添加的服务,可按需修改其 values 内容 -> 点击确定即可将新的服务添加到当前环境中。

添加 Helm Chart 服务

更新服务

点击管理服务 -> 更新服务 -> 选择要更新的服务,可按需修改其 values 内容 -> 点击确定即可对环境中的服务进行更新。

当服务配置有变化时(比如在服务管理中重新同步了从代码库导入的服务)才可以对该服务进行更新
若更新服务时不修改其 values 内容,则会使用服务配置中的 values 来修改该服务

更新 Helm Chart 服务

删除服务

点击管理服务 -> 删除服务 -> 选择要删除的服务 -> 点击确定即可将该服务从当前环境中删除。

删除 Helm Chart 服务

环境配置管理

可对环境中的 Ingress、ConfigMap、Secret、PVC 配置进行操作,以 Secret 配置为例说明如下。

查看 Secret 配置

点击基本操作中的环境配置 -> Secret,可查看当前环境中的 Secret 配置列表。

查看环境配置 查看环境 Secret 配置

基本操作

  • 添加配置:点击添加按钮,添加新的 Secret 配置。可手动输入 K8s YAML 文件内容,也可以选择从代码库导入 K8s YAML 文件。

添加 Secret 配置

  • 查看配置详情:点击查看按钮可查看 Secret 配置的具体内容。

查看 Secret 配置

  • 编辑配置:点击编辑按钮修改 Secret 配置,支持直接修改或者从代码库导入 K8s YAML 文件来修改。

编辑 Secret 配置

  • 版本比较与回滚:点击历史版本按钮,选择两个版本后可对比版本之间的差异,点击回滚按钮可快速回滚当前环境中的 Secret 配置。

diff Secret 版本

  • 删除配置:点击删除按钮可删除环境中的 Secret 配置。需要注意删除配置后可能会造成环境中的服务无法正常运行,请确认无不良影响后再操作。

删除 Secret 配置

服务详情

在服务列表中点击具体的服务可查看该服务的更多信息,可以对服务进行服务重启、服务伸缩、配置管理、更新镜像等操作。具体请阅读服务详情

Chart 视图

在服务列表左侧的 Chart 视图中可查看服务实例的 values 文件内容,点击左侧的更新按钮可对环境中的服务进行更新。

chart release 视图

若更新失败,服务会变为红色,可查看具体的失败原因。

chart release 视图

自测模式

参考自测模式

删除环境

点击基本操作中的删除环境按钮并输入环境名即可删除环境。

  • 如果环境是基于新的 Namespace 创建的,则删除环境操作会删除对应的 Namespace 及其中的资源。
  • 如果环境是基于已有 Namespace 创建的,则删除环境操作会清理环境中的服务资源,但不会删除 Namespace。

删除 Helm Chart 环境