如何利用Azure DevOps Server的Release Pipeline部署Quay镜像至OpenShift
用Azure DevOps Server Release Pipeline把Quay镜像部署到OpenShift的实现方案
前置准备
- 给Azure DevOps Server配置两个关键服务连接:
- OpenShift服务连接:进入项目设置→服务连接,新增OpenShift类型连接,填入集群API地址、认证token,测试确保连接正常。
- Quay Docker Registry服务连接:同样在服务连接中新增Docker Registry类型,选择Quay.io,填入用户名、机器人token/密码,指定Quay仓库地址。
- 确认Build Pipeline已将构建完成的镜像推送至Quay的开发/测试仓库,且镜像tag带有可追踪标识(比如构建ID、版本号)。
步骤1:搭建Release Pipeline基础框架
- 新建Release Pipeline,选择「Empty job」模板。
- 添加一个部署阶段(例如命名为「生产环境部署」),填写阶段对应的目标环境信息。
步骤2:拉取Quay镜像并重标记
在部署阶段中依次添加以下任务:
1. 登录Quay仓库
使用「Docker」任务,动作选择「Login」,选中之前配置好的Quay服务连接,确保能访问源镜像仓库和目标生产仓库。
2. 拉取源镜像
添加「Bash」任务(Windows环境可改用PowerShell),执行拉取命令:
docker pull quay.io/[你的源仓库名]/[镜像名]:[源tag]
其中[源tag]可直接引用Build Pipeline的输出变量,比如$(Build.BuildId)或自定义的版本变量。
3. 重标记镜像
继续用Bash任务执行重标记命令,将源镜像映射为生产仓库的指定tag:
docker tag quay.io/[你的源仓库名]/[镜像名]:[源tag] quay.io/[你的生产仓库名]/[镜像名]:[生产tag]
生产tag可使用固定版本号、Git commit哈希,或手动输入的版本变量。
4. 推送重标记后的镜像至Quay生产仓库
再次使用「Docker」任务,动作选择「Push」,指定重标记后的镜像地址quay.io/[你的生产仓库名]/[镜像名]:[生产tag]。
步骤3:部署镜像到OpenShift
1. 登录OpenShift集群
使用「OpenShift CLI」任务,选中之前配置的OpenShift服务连接,该任务会自动完成集群认证,无需手动输入登录命令。
2. 部署镜像到OpenShift
两种方式任选其一:
方式A:更新已有部署
添加Bash任务执行命令:
oc set image deployment/[你的部署名] [容器名]=quay.io/[你的生产仓库名]/[镜像名]:[生产tag] -n [目标命名空间]
适合已有部署资源的场景,直接替换镜像版本即可。
方式B:通过Manifest部署新资源
若需创建新的部署资源,添加「Kubernetes Manifest」任务,选中OpenShift服务连接,指定仓库中的yaml文件路径(可通过变量替换镜像tag),动作选择「deploy」。
步骤4:配置优化
- 在Release Pipeline的「变量」面板中定义可复用变量,比如
QuaySourceRepo、QuayProdRepo、ImageName、ProdTag,后续维护更便捷。 - 设置触发规则:可配置为Build Pipeline成功后自动触发Release,也可保留手动触发模式。
部署验证
部署完成后,可通过OpenShift控制台查看,或执行命令oc get pods -n [目标命名空间]检查Pod状态,确认镜像版本为指定的生产tag。
内容的提问来源于stack exchange,提问作者Priyanka Sharma
相关产品推荐
相关产品推荐

