Skip to content

服务拷贝

“服务拷贝”功能,目的旨在提高您的多环境部署效率,除第1套环境外,后续环境的部署时间能节省95%

devops-服务拷贝-flow

注意

1.你必须同时具备源端项目、目标端项目的操作权限;

2.出于保护目标端的目的,如果目标端已经具备了同名的服务,则该服务是无法被拷贝的,同名的7层网关、流水线同理;

3.如果你要拷贝的服务挂载了持久卷PVC,会拷贝该持久卷声明,但不会同步卷里存储的数据;

4.每一次部署新服务后,都可以使用服务拷贝功能,提高部署效率。

1.选择目标端

假设我们有一个已经部署好的测试项目,想要将其完整的拷贝到一个空的生产项目中。我们首先点击容器服务/服务拷贝/创建拷贝任务,然后选择目标端的项目。

devops-服务拷贝-step1devops-服务拷贝-step1-2

2.指定要拷贝的资源

只有被选择的资源,才会被拷贝。支持拷贝的资源类型包括:服务、镜像、七层网关、外部服务(不常用)、流水线,需要切换tab页,一一勾选。

请关注每一个页签下页面上的提示哦~

选择服务

devops-服务拷贝-step2

INFO

暂不支持Operator商店、公共商店部署的中间件,请不要选这些服务。

选择镜像仓库

devops-服务拷贝-step3

目标仓库含义:

  • 将拷贝到目标端的服务所引用的镜像来源,从“源端仓库”替换为“目标仓库”。

对于目标仓库的选择有以下建议:

  • 开发和测试环境可以使用同一套镜像仓库,则目标仓库=源端仓库,也可以不使用同一套;
  • 测试环境和生产环境由于跨集群,不能使用同一套镜像仓库:
    • 如果源端仓库是私有仓库,则目标仓库=目标端项目的私有仓库;
    • 如果源端仓库是公有仓库,则目标仓库=源端仓库

是否同步镜像含义:是否要把当前服务正在引用的镜像拷贝到目标仓库

对于是否同步镜像有以下建议:

  • 一般不用勾选,除非你暂且不想在目标端使用新的镜像

选择七层网关

devops-服务拷贝-step4

选择外部服务

image-20240321180800982

选择流水线

devops-服务拷贝-step6

目标端镜像仓库含义:

  • 目标端流水线生成的镜像推送到哪个仓库中。

然后,点击下一步,检查任务后再点击提交

3.等待任务完成后检查

任务成功

一般很快(1min),任务状态就会变更为“成功”,如果要同步镜像的话会久一点。

devops-服务拷贝-step7

切换到目标端项目,可以看到确实都被拷贝过来了,接下来略微调整后就可以启动服务了~

注意

此时,到目标端编辑服务,如果报错“请求资源未找到”是正常的,因为你刚才没有选择“同步镜像”,所以镜像不存在,你需要执行流水线,生成镜像,再编辑服务,选择存在的镜像版本。

任务失败

如果任务“失败”,可以查看哪个资源失败和失败报错信息。

  • 举个例子:因为目标端项目磁盘配额不足,导致PVC创建失败,进而导致挂载了该PVC的服务拷贝失败。
  • 排除了引发失败的原因后,可以再创建一个任务,只同步刚刚失败的对象。
devops-服务拷贝-step8