本接口用于创建边缘集群。
此接口为异步接口,当此接口返回成功时,会返回集群的 ID 信息,此时不代表集群最终能够成功创建,需要您调用获取集群列表及详情接口以获取该集群当前的状态,查看集群是否创建成功。集群创建成功后,状态为{Running, [Ok]}
。有关状态说明,请参见资源状态说明。
下表列出了接口特定的请求参数以及公共请求参数 Action 和 Version。 其他公共参数,请参见公共参数。
参数 | 类型 | 是否必选 | 示例值 | 描述 |
---|---|---|---|---|
Action | String | 是 | CreateCluster | 公共参数,本接口取值为 |
Version | String | 是 | 2021-03-03 | 公共参数,本接口取值为 |
ClientToken | String | 否 | BC028527-33B9-4990-A633-84E9F9****** | 用于保证请求幂等性的字符串。该字符串由调用方传入,需保证不同请求之间唯一。ClientToken 对大小写敏感,且最大值不超过 64 个 ASCII 字符。 |
Name | String | 是 | TestCluster | 集群名称。
|
Description | String | 否 | A Kubernetes Cluster Managed by veecp | 集群描述。长度限制为 300 个字符以内。 |
Profile | String | 否 | Edge |
当使用边缘托管时,请将该项设为 |
DeleteProtectionEnabled | Boolean | 否 | false | 集群删除保护,取值:
创建集群后,可以在调用删除边缘集群时,配置 Force 参数,选择强制删除集群。 |
ClusterConfig | 是 | 详见请求示例 | 集群控制面及节点的网络配置。 | |
PodsConfig | 是 | 详见请求示例 | 集群的容器(Pod)网络配置。 | |
ServicesConfig | 是 | 详见请求示例 | 集群的服务(Service)网络配置。 | |
Tags | []Tag | 否 | 详见请求示例 | 集群绑定标签信息
|
KubernetesVersion | String | 否 | 1.20 | 创建集群时指定Kubernetes版本,格式为 |
LoggingConfig | 否 | 详见请求示例 | 集群的日志配置信息。 |
POST /?Action=CreateCluster&Version=2021-03-03 HTTP/1.1 Content-Type:application/json { "Name": "flannel-test", "Description": "", "Profile": "Edge", "DeleteProtectionEnabled": false, "ClusterConfig": { "SubnetIds": ["subnet-3rf6vwbgkg9og5zsk2if****"], "ApiServerPublicAccessEnabled": true, "ApiServerPublicAccessConfig": { "PublicAccessNetworkConfig": { "Bandwidth": 10, "BillingType": 3 } }, "PodsConfig": { "PodNetworkMode": "Flannel", "FlannelConfig": { "MaxPodsPerNode": 32, "PodCidrs": ["172.17.31.0/19"] } }, "ServicesConfig": { "ServiceCidrsv4": ["172.25.0.0/17"] }, "Tags":[ { "Key":"key", "Value":"value" } ], "KubernetesVersion": "1.20", "LoggingConfig": { "LogSetups": [ { "LogType": "Audit", "LogTtl": 30, "Enabled": true } ] } }
POST /?Action=CreateCluster&Version=2021-03-03 HTTP/1.1 Content-Type:application/json { "Name": "vpc-cni-test", # 创建 VpcCni 集群 "Description": "xxxx", "DeleteProtectionEnabled": false, "ClusterConfig": { "SubnetIds": ["subnet-3rf6vwbgkg9og5zsk2if****"], "ApiServerPublicAccessEnabled": true, "ResourcePublicAccessDefaultEnabled": true }, "PodsConfig": { "PodNetworkMode": "VpcCniShared", "VpcCniConfig": { "SubnetIds": ["subnet-2d6tcun83e96o58ozfddc****"] } }, "ServicesConfig": { "ServiceCidrsv4": ["172.17.*.*/21"] }, "KubernetesVersion": "1.20" }
参数 | 类型 | 示例值 | 描述 |
---|---|---|---|
Id | String | cc5silumrsfeq**** | 集群 ID。 |
HTTP/1.1 200 OK Content-Type:application/json { "ResponseMetadata": { "RequestId": "021635330810134****", "Action": "CreateCluster", "Version": "2021-03-03", "Service": "veecp_openapi", "Region": "cn-beijing" }, "Result": { "Id": "nc5t5epmrsf****" } }
本接口错误码如下表所示,其他错误码请参见错误码。
状态码 | 错误码 | 错误信息 | 说明 |
---|---|---|---|
400 | Insufficient.Balance | Your account has run out of balance. | 账户欠费。请充值账户后重试。 |
400 | QuotaExceeded.Cluster | The number of clusters has reached the limit. | 当前地域所要创建的集群数量达到配额限制。产品限制说明,请参见配额限制。您可以选择其他地域创建集群,也可以提交工单申请提高配额。 |
400 | VpcMismatch.{{parameter}} | The specified {{resourceType}} {{resourceId}} is not in the same VPC. | 指定的子网不属于同一个私有网络。请重新配置参数后重试。 |
400 | OutOfRange.{{cidrParameter}} | The range of specified CIDR is too small. | CIDR IP 地址段过小,影响 Pod 数量。请合理规划 CIDR 后重试。 |
400 | OperationDenied.VpcStatus | The status of the specified VPC {{vpcId}} is not valid. | 指定私有网络的当前状态不支持此操作。请确认该接口依赖的私有网络状态后重试。 |
400 | InvalidRange.{{parameter}} | The range of specified CIDR addresses is in conflict with that of CIDR/Subnet in the cluster or in conflict with that of CIDR/Subnet of another cluster or NOT in the valid CIDR ranges. | CIDR 地址范围错误。请确认参数后重试。 |
409 | Conflict.Name | The specified name conflicts with existing {{resourceType}}. | 指定地域存在同名实例,请更新集群名称后重试。 |
400 | QuotaExceeded.{{ResourceType}} | The quota of {{ResourceType}} has reached the limit. | 指定资源的配额达到上限,如安全组、ENI、EIP、CLB、Tag、LogProject、LogTopic等。 |
400 | NotSupported.{{parameter}} | The specified {{resourceType}} {{resourceContent}} is not supported. | 指定的参数不支持,如 KubernetesVersion、SubnetId 等。请确认参数值后重试。 |
400 | OperationDenied.VpcStatus | The status of the specified VPC {{vpcId}} is not valid. | 当前 VPC 状态下不允许操作。VPC 状态,可以调用 DescribeVpcs 获取。 |