开发者社区 问答 正文

Swarm API参考  集群API列表  添加已有实例

添加已有实例到集群。

        说明
添加过程中会替换系统盘,需要提前做好数据备份。



请求信息


请求行 RequestLinePOST /clusters/{cluster_id}/attach HTTP/1.1
请求行参数 URI Param

[tr=rgb(51, 205, 229)][td]名称 类型是否必须描述cluster_idstring是集群 ID
特有请求头 RequestHead
无,请参考 公共请求头部
请求体 RequestBody
{
    "password": "ECS实例root登录密码",
    "instances": "要添加的实例数组",
    "ecs_image_id": "操作系统镜像",
    "release_eip_flag": "是否需要在集群配置完成后释放EIP"
}

请求体解析
[tr=rgb(51, 205, 229)][td]名称 类型是否必须描述passwordString是ECS 实例密码。instancesArray是已有实例的数组ecs_image_idString是ECS 使用的系统镜像 ID。release_eip_flagbool可选配置完集群后是否释放 EIP,默认为 false。
ecs_image_id 列表。
请参考文档 查看镜像列表 获取 ecs_image_id 列表。如果您需要自定义集群的 ECS 镜像的 ID,需要保证 ECS 镜像满足以下条件:
  • 操作系统:Ubuntu、Centos。
  • Linux Kernel version ≥ 3.18,用于支持 overlayfs 以及 overlay network。
  • 镜像中删除 /etc/docker/key.json 文件。


返回信息


返回行 ResponseLine
HTTP/1.1 202 OK
{
    "list": [
        {
            "code": "200",
            "instanceId": "i-xxx",
            "message": "successful"
        },
        {
            "code": "200",
            "instanceId": "i-yyy",
            "message": "successful"
        }
    ],
    "task_id": "T-5a544aff80282e39ea000039"
}

特有返回头 ResponseHead
无,请参考 公共返回头部
返回体 ResponseBody


{
    "list": [
        {
            "code": "200",
            "instanceId": "i-2zee3oiwcyoz7kwdo8bt",
            "message": "successful"
        },
        {
            "code": "200",
            "instanceId": "i-2ze0lgm3y6iylcbtcypf",
            "message": "successful"
        }
    ],
    "task_id": "T-5a544aff80282e39ea000039"
}


示例


请求示例POST /clusters/Cccfd68c474454665ace07efce924f75f /attach HTTP/ 1.1<公共请求头>
返回示例
HTTP/1.1 202 Accepted
<公共响应头>
{
    "list": [
        {
            "code": "200",
            "instanceId": "i-2zee3oiwcyoz7kwdo8bt",
            "message": "successful"
        },
        {
            "code": "200",
            "instanceId": "i-2ze0lgm3y6iylcbtcypf",
            "message": "successful"
        }
    ],
    "task_id": "T-5a544aff80282e39ea000039"
}




展开
收起
青蛙跳 2018-08-31 23:25:08 1384 分享 版权
阿里云 AI 助理回答

如何将已有ECS实例添加到ACK集群

概述: 当您需要将已有的ECS实例作为Worker节点加入到阿里云容器服务ACK(Kubernetes)集群中时,可以通过调用API来实现这一操作。此过程涉及准备ECS实例信息、执行API调用以及验证添加结果。特别注意,在添加过程中系统盘会被重置,因此务必提前备份数据。

详细步骤

步骤1:准备必要信息

  • ECS实例密码:确保您拥有要添加的ECS实例的root登录密码。
  • 实例ID列表:收集所有要添加到集群的ECS实例ID。
  • 镜像ID(可选):如果需要自定义ECS使用的操作系统镜像,请确认其满足官方要求,如Ubuntu或CentOS,且Linux内核版本≥3.18。
  • 释放EIP配置(可选):决定是否在集群配置完成后自动释放ECS实例的EIP资源。

步骤2:构造请求体

根据提供的信息,构造一个JSON格式的请求体,示例如下:

{
    "password": "您的ECS实例root登录密码",
    "instances": ["i-xxxxxx", "i-yyyyyy"], // 要添加的实例ID列表
    "ecs_image_id": "自定义镜像ID(如有)",
    "release_eip_flag": false // 或true,根据需求设定
}

步骤3:调用API

使用curl命令或者通过编程方式(如Python的requests库),向ACK集群发送POST请求以添加ECS实例。请替换{cluster_id}为您的实际集群ID,并将上述构造的JSON内容保存为文件(如attach.json),然后执行如下命令:

curl -X POST "https://cs.aliyuncs.com/clusters/{cluster_id}/attach" \
     -H "Content-Type: application/json" \
     --data-binary "@/path/to/attach.json" \
     -u "YourAccessKeyId:YourAccessKeySecret"

注意:请使用自己的阿里云Access Key ID和Access Key Secret替换相应部分。

步骤4:验证结果

  • 成功响应会返回每个实例的处理状态及任务ID,如:
{
    "list": [
        {
            "code": "200",
            "instanceId": "i-2zee3oiwcyoz7kwdo8bt",
            "message": "successful"
        },
        ...
    ],
    "task_id": "T-5a544aff80282e39ea000039"
}
  • 使用返回的task_id可以进一步查询任务执行情况,确保所有实例都成功添加至集群。

注意事项

  • 数据备份:由于添加过程可能重置系统盘,务必提前对ECS实例的数据进行完整备份。
  • 镜像兼容性:自定义镜像需满足特定条件,确保与ACK集群兼容。
  • 权限设置:执行API调用的账号需具备相应的RAM权限,具体权限点为cs:AttachInstances

示例

假设已经准备好所有信息并构造了请求体,通过上述命令调用API后,您将收到类似上述的成功响应,表明ECS实例已被成功添加至指定的ACK集群中。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答