
# 创建集群 - CreateCluster
#### 功能介绍
创建集群接口用于创建一个新的集群实例。
#### URI
POST /v1/clusters
#### 请求参数
表1请求Body参数 
| 参数                        | 是否必选 | 参数类型                                                                            | 描述                                                                                                                                                                    |
|:---|:---|:---|:---|
| name                      | 否    | String                                                                          | **参数解释** 集群名称。 **取值范围** 以小写字母开头，由字母、数字、中划线(-)组成，长度范围4-128位，且不能以中划线(-)结尾。 |
| description               | 否    | String                                                                          | **参数解释** 集群描述。 **取值范围** 不涉及。                                             |
| charge_mode               | 否    | Integer                                                                         | **参数解释** 付费模式。 **取值范围** 0：按需付费。                                          |
| k8s_cluster_specification | 是    | [K8sClusterSpecification] object | **参数解释** 业务k8s集群部署配置。 **取值范围** 不涉及。                                      |
| memory_specification      | 否    | [MemorySpecification] object         | **参数解释** EMS集群内存配置。 **取值范围** 不涉及。                                        |
   
 表2K8sClusterSpecification 
| 参数               | 是否必选 | 参数类型                                              | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
|:---|:---|:---|:---|
| k8s_cluster_id   | 是    | String                                            | **参数解释** CCE集群ID。 **约束限制** 必须为UUID格式。 **取值范围** 不涉及。 **默认取值** 不涉及。                                                                                                                                                                                                                                                                                                                                                                    |
| namespace        | 否    | String                                            | **参数解释** CCE集群中部署ems服务的命名空间。 **约束限制** 不涉及。 **取值范围** 不涉及。 **默认取值** 不涉及。                                                                                                                                                                                                                                                                                                                                                               |
| label            | 否    | [K8sLabel] object | **参数解释** 指定CCE集群中的安装范围，当前支持指定标签。Map对象，key为标签名，value为标签值。 **约束限制** 不涉及。 **取值范围** 不涉及。 **默认取值** 不涉及。                                                                                                                                                                                                                                                                                                                                   |
| node_count       | 是    | Integer                                           | **参数解释** CCE集群节点数。 **约束限制** 不涉及。 **取值范围** 3-512。 **默认取值** 不涉及。                                                                                                                                                                                                                                                                                                                                                                       |
| flavor           | 否    | String                                            | **参数解释** 集群实例规格。 **约束限制** 不涉及。 **取值范围** 由一个或多个字母开始，后面跟随一个或多个由点分隔的字母段的字符串组成。且长度为1-64个字符。 **默认取值** 不涉及。                                                                                                                                                                                                                                                                                                                                |
| version          | 否    | String                                            | **参数解释** 集群版本，发放的集群版本。 **约束限制** 不涉及。 **取值范围** 不涉及。 **默认取值空**                                                                                                                                                                                                                                                                                                                                                                                                        |
| lts_enable       | 否    | Boolean                                           | **参数解释** 是否安装云原生日志采集插件用LTS采集日志，安装前请提前创建LTS的转储委托。 **约束限制** 不涉及。 **取值范围** - true: 开启日志采集。   - false: 关闭日志采集。    **默认取值** true。                                                                           |
| lts_connect_type | 否    | Integer                                           | **参数解释** 日志接入方式。 **约束限制** 不涉及。 **取值范围** - 0: logagent。   - 1: icagent。    **默认取值** 0。                                                                                                                  |
| monitor_enable   | 否    | Boolean                                           | **参数解释** 是否安装云原生监控插件。 **约束限制** 不涉及。 **取值范围** - true: 已安装云原生监控插件。   - false: 未安装云原生监控插件。    **默认取值** true。                                                                                              |
| node_type        | 否    | Integer                                           | **参数解释** 节点类型。 **约束限制** 不涉及。 **取值范围** - 0: 自动检测。   - 1: A3节点。   - 2: 其他。    **默认取值** 0。 |
   
 表3K8sLabel 
| 参数    | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                     |
|:---|:---|:---|:---|
| key   | 是    | String | **参数解释** 标签的键。 **约束限制** 不涉及。 **取值范围** 以字母或者数字开头和结尾，由字母、数字、连接符(-)、下划线(_)、点号(.)组成，且长度范围不超过63个字符。 **默认取值** ems。  |
| value | 是    | String | **参数解释** 标签的值。 **约束限制** 不涉及。 **取值范围** 以字母或者数字开头和结尾，由字母、数字、连接符(-)、下划线(_)、点号(.)组成，且长度范围不超过63个字符。 **默认取值** true。 |
   
 表4MemorySpecification 
| 参数               | 是否必选 | 参数类型    | 描述                                                                                                                                                                                                                                                                                                             |
|:---|:---|:---|:---|
| huge_page_num    | 否    | Integer | **参数解释** 大页数。 **约束限制** 不涉及。 **取值范围** 131072-2147483647。 **默认取值** 默认256GB，对应数量是131072。 |
| huge_page_flavor | 否    | Integer | **参数解释** 大页规格（即大页大小，单位MB）。 **约束限制** 不涉及。 **取值范围** 不涉及。 **默认取值** 默认2MB。                |
   
#### 响应参数
**状态码：202**
表5响应Body参数 
| 参数         | 参数类型   | 描述                                                                                                                                           |
|:---|:---|:---|
| job_id     | String | **参数解释** 任务ID，可以通过任务查询接口查询任务执行详情。 **取值范围** 不涉及。 |
| cluster_id | String | **参数解释** 本次创建的集群ID。 **取值范围** 不涉及。               |
   
**状态码：400**
表6响应Body参数 
| 参数         | 参数类型   | 描述                                                                                                                                    |
|:---|:---|:---|
| error_code | String | **参数解释** 错误码，用于标识具体的错误类型。 **取值范围** 不涉及。  |
| error_msg  | String | **参数解释** 错误描述，用于说明具体的错误信息。 **取值范围** 不涉及。 |
   
#### 请求示例
创建一个名称为"ems-test"的集群。集群使用的cce集群ID为"2036b058-03c0-11f0-b46a-0255ac1001b2"，标签为ems=true，开启lts日志，关闭monitor插件安装。
```
POST https://{endpoint}/v1/clusters
{
  "charge_mode" : 0,
  "name" : "ems-test",
  "k8s_cluster_specification" : {
    "k8s_cluster_id" : "2036b058-03c0-11f0-b46a-0255ac1001b2",
    "label" : {
      "key" : "ems",
      "value" : "true"
    },
    "version" : "v2.0",
    "node_count" : 3,
    "lts_enable" : true,
    "lts_connect_type" : 1,
    "monitor_enable" : false
  },
  "memory_specification" : {
    "huge_page_flavor" : 2,
    "huge_page_num" : 6144
  }
}
```
#### 响应示例
**状态码：202**
**参数解释**
创建集群成功返回响应体。
**取值范围**
不涉及。
```
{
  "job_id" : "451496c1-41cb-44bc-a0c2-facbfd2ec311",
  "cluster_id" : "055c00f6-6c71-11f0-916e-0255ac1001b5"
}
```
**状态码：400**
**参数解释**
错误响应体。
**取值范围**
不涉及。
```
{
  "error_code" : "EMS.00004000",
  "error_msg" : "invalid parameter"
}
```
#### 状态码
| 状态码 | 描述                                                                                                                               |
|:---|:---|
| 202 | **参数解释** 创建集群成功返回响应体。 **取值范围** 不涉及。 |
| 400 | **参数解释** 错误响应体。 **取值范围** 不涉及。       |
   
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-ems/ems_04_0031.html)。
