资源编排Instance Clone 实现详解

本文涉及的产品
云服务器 ECS,每月免费额度280元 3个月
云服务器ECS,u1 2核4GB 1个月
简介: 资源编排在Clone ECS实例的时候主要做了什么。

对于一台阿里云的ECS实例来说,主要由下面的几组属性组成:

  • 实例规格

    • 实例规格为对应着CPU和内存,是否为IO优化的实例,如果为IO优化实例则磁盘类型需要为cloud_efficiency高效云盘, cloud_ssd ssd云盘。
  • 网络配置

    • 经典网络,同时包含出网带宽的设置。
    • 专有网络,需要包括vpc配置和vswitch的配置信息,
  • 磁盘配置,分为系统盘和数据盘。每个磁盘对应下面的属性

    • 镜像信息,仅仅对系统盘有效,将需要从某个镜像创建,可以是系统镜像也可以是自定义镜像。目前阿里云的系统盘大小为40GB到500GB。可以按需指定。
    • 快照信息,仅仅对数据盘有效,如果一块盘从一个快照创建,则指定的磁盘size必须大于等于snapshot的size。
    • 磁盘种类,常见的包括cloud云盘, cloud_efficiency高效云盘, cloud_ssd ssd云盘
    • 磁盘描述信息
    • 磁盘名称
    • 挂载点
    • 对于数据盘,是否随实例删除
    • 磁盘大小
  • 安全组设置,一台虚拟机创建的时候必须至少属于一个安全组。在创建之后可以最多属于5个安全组。
  • 实例的基本信息包括名称、描述、Tag标签设置
  • UserData属性

    • 支持UserData的实例才有这个属性。

资源编排在克隆资源的时候,默认情况下会克隆上面的所有属性。有以下说明:

  • 资源编排默认使用的镜像是创建源镜像的镜像ID,不是给源资源创建了新的镜像并且使用镜像。
  • 资源编排默认创建的数据盘也是源实例生成的时候使用的数据盘(空白或者某个快照,例如快照是2016-06-06创建的,在2016-07-07Clone的时候,仍然是当时的快照)。
  • 在执行克隆的过程中,会先一个源Instance的第一个安全组来创建ECS实例,当机器创建出来并设置为Running状态的时候,如果源实例中含有多个安全组,将会把新生成的Instance加入到其它的安全中。

之所以不是全部的克隆主要的原因是创建快照的时间可能会非常长,导致整个堆栈创建失败。

为了方便扩展扩展在Clone的时候您也可以自己指定如下属性做定制。

  • SecurityGroupId 安全组,如果指定则仅仅使用者一个安全组。不会在clone源实例上已有的安全组。
  • ImageId 镜像Id,您可以通过在控制台创建自定义镜像来完成。这样Clone的时候可以使用心得Image
  • 实例的基本信息包括名称、描述、Tag标签设置。包括InstanceName、Description。
  • 实例所在的可用区 ZoneId
  • 使用自定义的数据盘信息类似创建Ecs实例。DiskMappings如下,创建一块100GB的类型为cloud的数据盘,使用快照s-1234567890
        "DiskMappings": [
            {"Size": 100, "Category": "cloud", "SnapshotId": "s-1234567890"}
        ]

下面是一套使用克隆的模板, clone的时候自定义了镜像id和使用了额外的两块数据盘,一块从快照创建,一块空白盘:

{
  "ROSTemplateFormatVersion" : "2015-09-01",
  "Resources" : {
    "WebServer": {
      "Type": "ALIYUN::ECS::InstanceGroupClone",
      "Properties": {
        "SourceInstanceId": "i-your_instance",
        "Password": "YourPassword1234",
        "MinAmount": 1,
        "MaxAmount": 1,
        "ImageId": "centos7u2_64_40G_cloudinit_20160520.raw",
        "DiskMappings": [
            {"Size": 100, "Category": "cloud", "SnapshotId": "s-123456789"},
            {"Size": 100, "Category": "cloud", "Description": "Another 100 GB Disk"}
        ]
      }
    }
  },
  "Outputs": {
    "InstanceId": {
         "Value" : {"Fn::GetAtt": ["WebServer","InstanceIds"]}
    },
    "PublicIp": {
         "Value" : {"Fn::GetAtt": ["WebServer","PublicIps"]}
    }
  }
}
相关实践学习
Docker镜像管理快速入门
本教程将介绍如何使用Docker构建镜像,并通过阿里云镜像服务分发到ECS服务器,运行该镜像。
阿里云资源编排ROS使用教程
资源编排(Resource Orchestration)是一种简单易用的云计算资源管理和自动化运维服务。用户通过模板描述多个云计算资源的依赖关系、配置等,并自动完成所有资源的创建和配置,以达到自动化部署、运维等目的。编排模板同时也是一种标准化的资源和应用交付方式,并且可以随时编辑修改,使基础设施即代码(Infrastructure as Code)成为可能。 产品详情:https://www.aliyun.com/product/ros/
目录
相关文章
|
算法 机器人 定位技术
ROS中阶笔记(八):机器人SLAM与自主导航—机器人自主导航
ROS中阶笔记(八):机器人SLAM与自主导航—机器人自主导航
863 0
ROS中阶笔记(八):机器人SLAM与自主导航—机器人自主导航
|
1月前
|
网络协议 机器人 中间件
单片机和FreeRTOS上跑机器人ROS的应用
单片机和FreeRTOS上跑机器人ROS的应用
57 0
|
3月前
|
传感器 机器人 C++
ROS 2机器人编程实战:基于现代C++和Python 3实现简单机器人项目
ROS 2机器人编程实战:基于现代C++和Python 3实现简单机器人项目
186 0
|
5月前
|
传感器 机器人 C++
机器人操作系统ROS 编程开发--详细总结
最近工作涉及到自动驾驶的,需要学习ROS,学习中总结了一些知识点,分享给大家。 机器人操作系统ROS,是一种分布式处理框架(又名Nodes),ROS常用C++和python编程语言开发;(这里项目开发采用C++ 11版本)。ROS的点对点设计以及服务和节点管理器等机制,可以分散由计算机视觉和语音识别等功能带来的实时计算压力,能够适应多机器人遇到的挑战。ROS免费并且开源。
307 0
|
8月前
|
传感器 Ubuntu 机器人
【5. ROS机器人的运动控制】
【5. ROS机器人的运动控制】
320 0
【5. ROS机器人的运动控制】
|
8月前
|
机器学习/深度学习 传感器 Ubuntu
ubuntu16.04下ROS操作系统学习笔记(八)机器人SLAM与 Gmapping-Hector_slam-Cartographer--ORB_SLAM(下)
ubuntu16.04下ROS操作系统学习笔记(八)机器人SLAM与 Gmapping-Hector_slam-Cartographer--ORB_SLAM(下)
120 0
|
8月前
|
存储 传感器 编解码
ubuntu16.04下ROS操作系统学习笔记(八)机器人SLAM与 Gmapping-Hector_slam-Cartographer--ORB_SLAM(上)
ubuntu16.04下ROS操作系统学习笔记(八)机器人SLAM与 Gmapping-Hector_slam-Cartographer--ORB_SLAM
102 0
|
8月前
|
机器学习/深度学习 传感器 XML
ubuntu16.04下ROS操作系统学习笔记(四 )机器人系组成、URDF机器人建模、xacro模型优化
ubuntu16.04下ROS操作系统学习笔记(四 )机器人系组成、URDF机器人建模、xacro模型优化
157 0
|
9月前
|
传感器 XML 数据可视化
[ros robot] --- 机器人系统仿真
[ros robot] --- 机器人系统仿真
302 0
|
传感器 JSON Ubuntu
ROS2 机器人操作系统入门和安装以及如何使用 .NET 进行开发
本文是 ROS2 入门的第一课,简单介绍了 ROS 系统,并演示了 ROS2 系统在 Ubuntu 22.04 中的安装(使用 gitee 和清华源)以及其中错误的解决。最后对其优势进行总结,为什么选择 ROS。最后介绍简单 Demo 和如何使用 .NET 接入的其中一种方式。
606 0
ROS2 机器人操作系统入门和安装以及如何使用 .NET 进行开发

推荐镜像

更多