SMC支持将Linux源服务器迁移为容器镜像,然后通过容器镜像部署容器应用,实现低成本容器化应用迁移。容器的优势在于提高了资源利用率,降低了计算成本,自动化管理调度及低风险的快速部署。本文介绍Linux源服务器迁移至容器镜像的操作步骤。

前提条件

已开通容器镜像服务并创建镜像仓库。具体操作,请参见构建仓库与镜像

背景信息

重要 Windows操作系统的源服务器不支持迁移为容器镜像。
  • Docker容器镜像服务的基础知识,具体请参见基本概念
  • 迁移任务运行期间会创建中转实例辅助迁移。中转实例会产生少量的费用,关于计费的详细信息,请参见按量付费
  • 当迁移任务为已完成(Finished)状态、已过期(Expired)状态或迁移任务被删除时,中转实例会自动清理释放。

步骤一:准备工作

  1. 创建SMC中转实例所需的RAM角色。
    关键参数说明如下。具体操作,请参见创建可信实体为阿里云服务的RAM角色
    • 可信实体类型选择阿里云服务
    • 角色类型选择普通服务角色
    • 受信服务选择云服务器
  2. 创建满足容器镜像迁移的自定义策略。
    自定义策略如下所示,并且已为RAM角色授权该策略。具体操作,请参见创建自定义权限策略为RAM角色授权
    {
        "Statement": [
            {
                "Effect": "Allow",
                "Action": [
                    "cr:GetAuthorizationToken",
                    "cr:PushRepository",
                    "cr:PullRepository",
                    "cr:CreateRepository"
                ],
                "Resource": "*"
            }
        ],
        "Version": "1"
    }

步骤二:将源服务器迁移至容器镜像

  1. 导入迁移源。
    将Linux源服务器信息导入SMC控制台。您可以通过以下方式导入迁移源:
  2. 创建并启动迁移任务。
    1. 登录SMC控制台
    2. 在左侧导航栏,单击迁移源
    3. 在待迁移的源服务器的操作列,单击创建迁移任务
    4. 创建迁移任务页面,设置容器镜像相关配置项。
      site容器镜像相关配置项说明如下。 其他配置项的设置说明,具体请参见步骤二:创建并启动迁移任务
      • 目标镜像类型:选择容器镜像
      • 容器镜像命名空间:选择存放迁移生成的容器镜像仓库的命名空间。如未创建命名空间,具体操作,请参见管理命名空间与配额
      • 容器镜像仓库名称:选择存放迁移生成的容器镜像的仓库名称。如未创建镜像仓库,具体操作,请参见构建仓库与镜像
      • 容器镜像版本:表示存放迁移生成的容器镜像的版本信息。
      • 容器镜像RAM角色:选择绑定中转实例的实例角色。如未创建RAM角色,具体操作,请参见创建可信实体为阿里云服务的RAM角色
    迁移任务创建后立即开始执行。执行结果如下:
    • 当迁移任务状态为已完成时,表示任务完成并得到最终的容器镜像。ada56
    • 当迁移任务状态为出错时,表示任务失败。您需要查看日志修复问题后,再次重启迁移任务。常见错误及修复方案,请参见SMC FAQ

步骤三:验证容器镜像

迁移成功获取到最终容器镜像后,您可以通过容器镜像部署容器应用。本操作以部署了Nginx环境的容器镜像为例,验证容器镜像。

  1. 创建容器服务集群。具体操作,请参见创建集群
  2. 部署容器应用。
    1. 登录SMC控制台
    2. 在左侧导航栏,单击迁移任务
    3. 在目标迁移任务的操作列,单击部署应用adad56
    4. 创建应用页面,根据界面提示创建应用。
      本示例以创建无状态工作负载为例,关键参数配置说明如下,更多参数信息,请参见创建无状态工作负载Deployment
      1. 应用基本信息页面,配置如下信息。 配置后,单击下一步adadada
        • 应用名称:输入应用的名称,例如:nginx。
        • 副本数量:输入副本数量,例如:1。
        • 类型:选择无状态(Deployment)
      2. 容器配置页面,配置参数信息。配置参数后,单击下一步
        • 镜像名称:单击选择镜像,选择迁移生成的容器镜像(容器镜像仓库和容器服务集群在同一地域时,可以使用容器镜像的VPC地址拉取镜像 )。
        • 镜像Tag:单击选择镜像Tag,选择迁移生成的容器镜像Tag。
        • 设置镜像密钥:如果您的容器镜像为私有镜像,则需要设置镜像密钥。也可以配置免密拉取,详情请参见使用免密组件拉取容器镜像
        • 端口:新增80端口。post
        • 启动执行:设置命令/sbin/initcmd
      3. 高级配置页面,创建服务用于访问应用。 配置参数后,单击创建
        本文配置信息如下图所示。server
      4. 创建完成后,单击查看应用详情,查看应用运行情况。
      5. 在左侧导航栏,选择网络 > 服务
      6. 服务页面,查看目标服务的外部端点地址。sdada
  3. 通过本地浏览器访问外部端点地址,您可访问Nginx欢迎页。
    nginx