谷歌云(GCP)凭借强大的功能和广泛的服务,为企业构建了值得信赖的云平台。其在云计算领域的持续创新以及显著优势,使它成为众多企业的不二之选。谷歌云推出的云原生产品,诸如 Google Kubernetes Engine(GKE)、Google Cloud Storage(GCS)、Google Artifact Registry(GAR)、Google Compute Engine(GCE)等,能够完美适配各种上云业务场景的需求。
Zadig 作为一款专业化的云原生 DevOps 平台,不仅全力支持多云架构交付,而且与谷歌云基础设施的兼容性和适配性堪称卓越。在本文中,我们将全方位展示如何在谷歌云上进行 Zadig 的安装与使用,借由 Zadig 与谷歌云全系列产品的无缝融合,达成微服务的持续交付。这将助力企业以更高效、便捷的模式,迅速完成云原生转型,有效降低运营成本,显著提高业务敏捷性,大力加速创新进程。
# 安装 Zadig
以下操作以 v3.1.0 版本为例,使用脚本的方式在 GKE 集群上快速安装 Zadig。
GKE 集群版本:v1.21~v1.30
第一步:下载安装脚本:
curl -LO https://github.com/koderover/zadig/releases/download/v3.1.0/install_quickstart.sh
chmod +x ./install_quickstart.sh
第二步:配置环境变量并执行安装脚本:
# 如果安装 Zadig 后要集成外部系统,请确保安装的 Zadig 系统有公网 IP, 以保证其可访问。
export IP=<本机 IP 地址>
export PORT=< 30000 - 32767 任一端口>
./install_quickstart.sh
第三步:访问系统
通过 IP:PORT 访问系统,首次登录系统需注册系统管理员。
更丰富的安装参数和方式可参考文档:安装 Zadig | Zadig 文档 (opens new window)
# 使用 Zadig
# 准备工作
# 集成谷歌云资源
集群
系统管理员访问 资产管理
->资源配置
-> 集群管理
->添加
,提供商选择 谷歌云 GKE
,填写基本配置信息并设置为默认使用后保存。
对象存储
要通过 S3 协议使用访问密钥(Access Key,AK)和密钥(Secret Key,SK)访问 Google Cloud Storage (GCS),需要使用 Google Cloud Storage 的互操作性功能。以下是详细步骤:
- 启用互操作性访问
首先,需要启用 GCS 的互操作性访问,并生成 S3 兼容的访问密钥和密钥。
启用互操作性访问:
- 打开 Google Cloud Console。
- 转到 Cloud Storage 部分。
- 点击 Settings。
- 在 Interoperability 选项卡中,点击 Enable。
2.生成访问密钥和密钥:
- 在 Interoperability 选项卡中,点击 Create a key。
- 记录下生成的 Access Key 和 Secret Key。
系统管理员访问资产管理
->资源配置
-> 对象存储
-> 添加
,提供商选择 谷歌云 Cloud Storage
,填写基本配置信息并设置为默认使用后保存。
镜像仓库
系统管理员访问 资产管理
->资源配置
-> 镜像仓库
-> 添加
,提供商选择 谷歌云 AR
,填写基本配置信息后保存即可。关于服务账号密钥相关请参考官方文档:服务账号密钥 (opens new window)
Helm Chart 仓库
系统管理员访问 资产管理
->资源配置
-> Chart 仓库
-> 添加
,填写由 Artifact Registry 提供的 Chart 仓库配置后保存即可。Helm 认证相关设置请参考官方文档:为 Helm 设置身份验证 (opens new window)
# 准备项目
本文使用 voting-app
案例进行演示,案例源码位于 koderover/zadig (opens new window) 代码库中,目录结构说明如下:
本例中集成的 Helm Chart 仓库已有
voting-app
服务的 chart 配置,如果读者完全按照本实践操作,请将 chart 目录的内容上传到自己的 Helm Chart 仓库中。
zadig/examples/voting-app
├── chart # Helm Chart 配置
├── result # result 服务源码
├── vote # vote 服务源码
└── worker # worker 服务源码
# 集成代码源
系统管理员访问 系统设置
-> 系统集成
-> 代码源
-> 添加
,集成代码源(即:voting-app
所在的代码源)。
系统管理员可 fork koderover/zadig 代码库,也可以下载后上传到自己的代码仓库中。
# 如何使用
下面以 voting-app-helm-demo
项目为例来演示,包括搭建项目、管理服务配置、持续构建部署服务、版本管理的完整场景。
# 创建项目
系统管理员登录系统后点击 新建项目
,创建 K8s Helm Chart 类型的项目 voting-app-helm-demo
,点击 下一步
。
# 导入服务
从 Artifact Registry 提供的 Helm Chart 仓库中导入服务的 Chart 配置到 Zadig 中。
点击 从 Chart 仓库同步
,选择 Chart 仓库以及 Chart 后新建即可导入服务配置,系统会自动解析 values 文件中的服务和服务组件,导入成功后点击 下一步
。
# 构建配置
为服务组件配置构建,后续可使用工作流对该服务进行变更。以 examplevotingapp_result
为例,点击 添加构建
并填写构建配置后点击 下一步
。本例中构建配置说明如下:
构建名称
:voting-app-result代码信息
:准备工作中集成的代码信息通用构建脚本
:内容如下:
#!/bin/bash
set -ex
cd $WORKSPACE/zadig/examples/voting-app/result
docker build -t $IMAGE -f Dockerfile .
docker push $IMAGE
添加步骤
:增加文件存储,将zadig/examples/voting-app/result
目录下的内容归档到 Cloud Storage 对象存储中
# 创建环境
选择 本地集群
和 GAR 镜像仓库后点击 创建环境
,系统会自动在 GKE 集群创建 dev
和 qa
两套环境,待环境创建完毕后点击 下一步
。
# 运行工作流
系统自动创建 3 条工作流,运行 voting-app-helm-demo-workflow-dev
工作流来更新 dev
环境的 result
服务。
构建日志的内容会存储在 Google Cloud Storage 对象存储中,在工作流运行时可点击查看实时构建日志,当构建失败时可辅助排查问题。
工作流执行完毕后,会将新的镜像推送到 GAR 镜像仓库中,并使用该镜像更新 dev
环境的 result
服务,实现微服务的持续部署。
登录 Cloud Storage 控制台查看,构建中配置的归档文件被成功上传。
在实际使用中,还可以充分利用工作流的触发器能力:只需在工作流中配置开启 Git 触发器便可实现代码变更后自动构建部署服务的全部流程,缩短代码到交付的时间周期,具体使用可参考 代码变更自动触发工作流 | Zadig 文档 (opens new window)
# 创建版本
在 Zadig 平台上持续部署验证迭代出稳定的服务版本后,可创建完整的 Helm Chart 版本(比如:用于和内部发布系统对接)。
访问项目的 版本管理
-> 创建版本
,填写版本基本信息:
选择环境和服务后点击 添加
,点击 下一步
:
选择 AR 镜像仓库和 Chart 仓库,填写版本号后点击 完成
即可基于指定环境创建服务版本。
创建完毕后,可查看版本详情、将完整的 Helm Chart 包下载到本地,企业内部系统也可以从对应的 Chart 仓库中获取该版本。
# 扩展阅读
Zadig 支持多云架构交付,更多云厂商的支持可参考以下内容。