本文主要介绍如何使用 Zadig 环境托管能力,让开发过程更顺畅。
我们都知道,服务的容器化消除了线上线下的环境差异,保证了应用生命周期的环境一致性标准化,为软件交付提供了诸多好处。但上了容器以后研发过程中使用测试环境却存在诸多不便。环境的不透明,导致联调测试过程诊断问题困难;而原生 kubectl 方式操作繁琐,调试服务不方便等等。
Zadig 可以通过托管项目解决以上问题,并且对现有集群无任何的侵入性,平滑实现云原生 DevOps 开发模式。不同业务线可以清晰的管理所属的服务,开发者也可以方便的对服务进行查看、管理和更新,比如服务查看、Pod Debug、实时日志等。原理如下:
下面以 host-microservice-demo 项目为例来演示。该项目的基本情况简述如下:
如果你完全依照本教程进行托管的实践:
cd {microservice-demo 所在的目录}/k8s-yaml/backend && kubectl -n microservice apply -f .
cd {microservice-demo 所在的目录}/k8s-yaml/frontend && kubectl -n microservice apply -f .
系统管理员进入 Zadig 系统,点击新建项目
-> 填写项目名称 host-microservice-demo
-> 选择 K8s 托管项目
-> 点击立即创建。
创建项目后,进入产品交付向导的第一步,配置环境托管环节。
说明如下:
环境名称
:填写环境名称,方便阅读有意义即可,此例中为 dev
镜像仓库
:选择镜像仓库K8s 集群
:待托管管理的服务所在的 K8s 集群K8s 命名空间
:待托管管理的服务所在的命名空间,此例中为 microservice-demo-env-dev
选择服务
:勾选要托管的服务(frontend + backend)并通过穿梭框点击下一步
,进入配置服务构建步骤。
frontend
服务,点击添加构建
:#!/bin/bash
set -e
cd zadig/examples/microservice-demo/frontend
docker build -t $IMAGE -f Dockerfile .
docker push $IMAGE
#!/bin/bash
set -e
cd zadig/examples/microservice-demo/backend
make build-backend
docker build -t $IMAGE -f Dockerfile .
docker push $IMAGE
下一步
,系统会自动创建 1 条工作流用于对托管服务做持续变更,点击完成
结束对 dev 环境的托管配置。创建托管环境成功后,进入项目的环境页面,就可以看到 dev 环境下的所有服务基本信息,如下图所示:
点击具体的服务进入详情页,可以对被托管服务进行更新,包括重复服务实例、切换服务镜像、调整服务副本数量;还可以查看/搜索服务实时日志、登入服务容器中进行调试等等。
执行
,选择环境和服务后启动任务:Git 触发器
配置并保存对工作流的修改:Details
链接可快速跳转到触发的工作流