更新时间:2024-12-02 GMT+08:00

创建集群V2

功能介绍

该接口用于创建拥有多种不同节点类型(ess,ess-cold,ess-client,ess-master)组合的集群。

调用方法

请参见如何调用API。

URI

POST /v2.0/{project_id}/clusters

表1 路径参数

参数

是否必选

参数类型

描述

project_id

是

String

项目ID。获取方法请参见获取项目ID和名称。

请求参数

表2 请求Body参数

参数

是否必选

参数类型

描述

cluster

是

CreateClusterBody object

集群对象。

表3 CreateClusterBody

参数

是否必选

参数类型

描述

name

是

String

集群名称。4~32个字符,只能包含数字、字母、中划线和下划线,且必须以字母开头。

backupStrategy

否

CreateClusterBackupStrategyBody object

开启自动创建快照策略。

当backupStrategy参数配置不为空时,才会开启自动创建快照策略。

roles

是

Array of CreateClusterRolesBody objects

集群信息。

nics

是

CreateClusterInstanceNicsBody object

子网信息。

enterprise_project_id

否

String

企业项目ID。创建集群时,给集群绑定企业项目ID。最大长度36个字符,带"-"连字符的UUID格式,或者是字符串"0"。"0"表示默认企业项目。

tags

否

Array of CreateClusterTagsBody objects

集群标签。

availability_zone

是

String

可用区。需要指定可用区的名称(可用分区名称)。

默认指定单AZ。指定多AZ时,各个可用分区名称需要使用英文逗号(,)分隔,以“华北-北京四”为例,选择三AZ时,availability_zone取值为cn-north-4a,cn-north-4b,cn-north-4c。如果使用单AZ,availability_zone默认取值为空。

说明:

说明

- 选择多AZ时,各个可用分区名称不能重复输入,并且要求节点个数大于等于AZ个数。

- 如果节点个数为AZ个数的倍数,节点将会均匀的分布到各个AZ。

- 如果节点个数不为AZ个数的倍数时,各个AZ分布的节点数量之差的绝对值小于等于1。

datastore

是

CreateClusterDatastoreBody object

引擎类型,支持elasticsearch。

authorityEnable

否

Boolean

是否开启认证,取值范围为true或false。默认关闭认证功能。

  • true:表示集群开启认证。
  • false:表示集群不开启认证。
说明:

此参数只有6.5.4及之后版本支持。

httpsEnable

否

Boolean

设置是否进行通信加密。取值范围为true或false。默认关闭通信加密功能。当httpsEnable设置为true时,authorityEnable字段需要设置为true。- true:表示集群进行通信加密。- false:表示集群不进行通信加密。>此参数只有6.5.4及之后版本支持。

adminPwd

否

String

安全模式下集群管理员admin的密码,只有在创建集群时authorityEnable设置为true时需要设置此参数。

  • 参数范围:8~32个字符。
  • 参数要求:密码至少包含大写字母,小写字母,数字、特殊字符四类中的三类,其中可输入的特殊字符为:~!@#$%&*()-_=|[{}];:,<.>/?

publicIPReq

否

CreateClusterPublicIpReq object

公网访问信息。只有在httpsEnable设置为true时该参数配置生效。

publicKibanaReq

否

CreateClusterPublicKibanaReq object

Kibana公网访问信息。只有在authorityEnable设置为true时该参数配置生效。

表4 CreateClusterBackupStrategyBody

参数

是否必选

参数类型

描述

period

是

String

每天创建快照的时刻,只支持整点,后面需加上时区,格式为“HH:mm z”,“HH:mm”表示整点时间,“z”表示时区。 比如“00:00 GMT+08:00”、“01:00 GMT+08:00”等。

说明:

默认值“00:00 GMT+08:00”,当frequency取值HOUR时,无需指定period值,默认从设置成功的下一整点创建。

frequency

否

String

自动创建快照的执行频次。

说明:

默认值DAY,取值HOUR时,表示每小时整点执行一次;取值DAY时,表示每天执行一次;取值SUN、MON、TUE、WED、THU、FRI、SAT时,表示在每周对应时间执行一次。比如SUN表示每周日执行一次。保留快照个数与自动创建快照策略中设置的执行频次和索引有关。当执行频次间隔时间短或索引数据量大,保留自动快照可能会达不到设置的个数,请谨慎选择!

prefix

是

String

自动创建的快照的前缀,需要用户自己手动输入。只能包含1~32位小写字母、数字、中划线或者下划线,并且以小写字母开头。

keepday

是

Integer

自定义设置快照保留的个数,范围是1~90。系统在半点时刻会自动删除超过保留个数的快照。过期删除策略只针对与当前自动创建快照策略相同执行频次的自动快照。

bucket

否

String

备份使用的OBS桶名称。

basePath

否

String

快照在OBS桶中的存放路径。

agency

否

String

委托名称,委托给CSS,允许CSS调用您的其他云服务。

说明:

如果bucket、basePath和agency三个参数同时为空,则系统会自动创建OBS桶和IAM代理(若创建失败,则需要手工配置正确的参数)。

表5 CreateClusterRolesBody

参数

是否必选

参数类型

描述

flavorRef

是

String

实例规格名称。可以使用获取实例规格列表的name属性确认当前拥有的规格信息。

volume

是

CreateClusterInstanceVolumeBody object

volume信息。

type

是

String

  • ess-master对应Master节点。
  • ess-client对应Clinet节点。
  • ess-cold对应冷数据节点。
  • ess对应数据节点。

instanceNum

是

Integer

实例个数。

  • ess节点,选择范围:1~32个节点数量。
    • 若同时选择ess和ess-master时,可以选择1~200个节点数量。
    • 若同时选择ess和ess-client时,可以选择1~32个节点数量。
    • 若同时选择ess和ess-cold时,可以选择1~32个节点数量。
  • ess-master节点,选择范围:3~10内的奇数个节点数量。
  • ess-client节点,选择范围:1~32个节点数量。
  • ess-cold节点,选择范围:1~32个节点数量。
表6 CreateClusterInstanceVolumeBody

参数

是否必选

参数类型

描述

volume_type

是

String

卷类型。

  • COMMON:普通I/O。
  • HIGH:高I/O。
  • ULTRAHIGH:超高I/O。
  • ESSD:极速SSD。

size

是

Integer

卷大小,必须为大于0且为4和10的公倍数,磁盘规格大小可以通过获取实例规格列表中diskrange属性获得。 单位:GB。

说明:

ess-master节点和ess-client节点默认大小为40G,且不可更改。

表7 CreateClusterInstanceNicsBody

参数

是否必选

参数类型

描述

vpcId

是

String

指定虚拟私有云ID,用于集群网络配置。

netId

是

String

子网ID(网络ID)。

securityGroupId

是

String

安全组ID。

表8 CreateClusterTagsBody

参数

是否必选

参数类型

描述

key

是

String

集群标签的key值。可输入的字符串长度为1~36个字符。只能包含数字、字母、中划线"-"和下划线"_"。

value

是

String

集群标签的value值。可输入的字符串长度为0~43个字符。只能包含数字、字母、中划线"-"和下划线"_"。

表9 CreateClusterDatastoreBody

参数

是否必选

参数类型

描述

version

是

String

CSS集群引擎版本号。详细请参考CSS支持的集群版本。

type

是

String

引擎类型,支持elasticsearch。

表10 CreateClusterPublicIpReq

参数

是否必选

参数类型

描述

eip

是

CreateClusterPublicEip object

公网带宽信息。

elbWhiteListReq

是

CreateClusterElbWhiteList object

弹性IP白名单。

publicBindType

是

String

是否自动绑定弹性公网IP。当前仅支持auto_assign为自动分配参数。

eipId

否

String

弹性公网IP的ID。

表11 CreateClusterPublicEip

参数

是否必选

参数类型

描述

bandWidth

是

CreateClusterPublicEipSize object

设置公网带宽大小。

表12 CreateClusterPublicEipSize

参数

是否必选

参数类型

描述

size

是

Integer

带宽大小。

表13 CreateClusterElbWhiteList

参数

是否必选

参数类型

描述

enableWhiteList

是

Boolean

是否开启公网访问控制。

whiteList

否

String

公网访问控制白名单。需要添加白名单的网段或ip,以逗号隔开,不可重复。

表14 CreateClusterPublicKibanaReq

参数

是否必选

参数类型

描述

eipSize

是

Integer

带宽大小。

elbWhiteList

是

CreateClusterPublicKibanaElbWhiteList object

kibana白名单信息。

表15 CreateClusterPublicKibanaElbWhiteList

参数

是否必选

参数类型

描述

whiteList

是

String

白名单。需要添加白名单的网段或ip,以逗号隔开,不可重复。

enableWhiteList

是

Boolean

是否开启kibana访问控制。

响应参数

状态码: 200

表16 响应Body参数

参数

参数类型

描述

cluster

CreateClusterResp object

集群对象。若创建的是按需集群,则只返回cluster参数。

表17 CreateClusterResp

参数

参数类型

描述

id

String

集群ID。

name

String

集群名称。

请求示例

  • 创建按需集群请求示例。
    {
      "cluster" : {
        "name" : "css-cluster",
        "backupStrategy" : {
          "period" : "16:00 GMT+08:00",
          "prefix" : "snapshot",
          "keepday" : 7,
          "frequency" : "DAY",
          "bucket" : "OBS-obsName",
          "basePath" : "css_repository/obs-path",
          "agency" : "css_obs_agency"
        },
        "roles" : [ {
          "flavorRef" : "ess.spec-4u8g",
          "volume" : {
            "volume_type" : "COMMON",
            "size" : 100
          },
          "type" : "ess",
          "instanceNum" : 1
        } ],
        "nics" : {
          "vpcId" : "{VPC ID}",
          "netId" : "{NET ID}",
          "securityGroupId" : "{Security group ID}"
        },
        "enterprise_project_id" : 0,
        "tags" : [ {
          "key" : "k1",
          "value" : "v1"
        }, {
          "key" : "k2",
          "value" : "v2"
        } ],
        "availability_zone" : "{Az code}",
        "datastore" : {
          "version" : "{cluster-version}",
          "type" : "elasticsearch"
        },
        "authorityEnable" : true,
        "httpsEnable" : true,
        "adminPwd" : "{password}",
        "publicIPReq" : {
          "eip" : {
            "bandWidth" : {
              "size" : 5
            }
          },
          "elbWhiteListReq" : {
            "enableWhiteList" : true,
            "whiteList" : "127.0.0.1"
          },
          "publicBindType" : "auto_assign",
          "eipId" : null
        },
        "publicKibanaReq" : {
          "eipSize" : 5,
          "elbWhiteList" : {
            "whiteList" : "127.0.0.1",
            "enableWhiteList" : true
          }
        }
      }
    }

响应示例

状态码: 200

请求已成功

  • 创建按需期集群响应示例。
    {
      "cluster" : {
        "id" : "ef683016-871e-48bc-bf93-74a29d60d214",
        "name" : "ES-Test"
      }
    }

状态码

状态码

描述

200

请求已成功

400

非法请求。

建议直接修改该请求,不要重试该请求。

409

服务器在完成请求时发生冲突。

返回该状态码,表明客户端尝试创建的资源已经存在,或者由于冲突请求的更新操作不能被完成。

412

未满足前提条件,服务器未满足请求者在请求中设置的其中一个前提条件。

错误码

请参见错误码。