创建容器服务集群。
此接口为异步接口,当此接口返回成功时,会返回集群的 ID 信息,此时不代表集群最终能够成功创建,需要您调用 ListClusters 接口获取该集群当前的状态,查看集群是否创建成功。集群创建成功(状态为{Running, [Ok]}
)后,容器服务将开始按量计费,计费详情请参见 产品计费。
调用该 API 时的请求参数如下,除此之外还需传入公共请求参数。公共请求参数说明,请参见 公共参数。
参数 | 类型 | 是否必选 | 示例值 | 描述 |
---|---|---|---|---|
Action | String | 是 | CreateCluster | 接口名称。当前 API 的名称为 CreateCluster 。 |
Version | String | 是 | 2022-05-12 | 接口版本。当前 API 的版本为 2022-05-12 。 |
ClientToken | String | 否 | BC028527-33B9-4990-A633-84E9F9****** | 用于保证请求幂等性的字符串。该字符串由调用方传入,需保证不同请求之间唯一。ClientToken 对大小写敏感,且最大值不超过 64 个 ASCII 字符。 |
Name | String | 是 | TestCluster | 集群名称。
|
Description | String | 否 | A Kubernetes Cluster Managed by VKE | 集群描述。长度限制为 300 个字符以内。 |
DeleteProtectionEnabled | Boolean | 否 | false | 集群删除保护,取值:
|
ClusterConfig | Object of ClusterConfigRequest | 是 | - | 集群控制面及节点的网络配置。 |
PodsConfig | Object of PodsConfigRequest | 是 | - | 集群的容器(Pod)网络配置。 |
ServicesConfig | Object of ServicesConfigRequest | 是 | - | 集群的服务(Service)网络配置。 |
Tags | Array of Tag | 否 | - | 自定义的资源标签,用于从不同维度对具有相同特征的集群进行分类、搜索和聚合,能够灵活管理集群。
|
KubernetesVersion | String | 否 | 1.26 | 集群的 Kubernetes 版本,格式为 |
LoggingConfig | Object of ClusterLoggingConfigRequest | 否 | - | 集群的日志配置信息。 |
参数 | 类型 | 是否必选 | 示例值 | 描述 |
---|---|---|---|---|
SubnetIds | Array of String | 是 | ["subnet-5g39dwxvppo******"] | 集群控制面在私有网络(VPC)内通信的子网 ID。 注意
|
ApiServerPublicAccessEnabled | Boolean | 否 | false | 集群 API Server 公网访问配置,取值:
|
ApiServerPublicAccessConfig | Object of PublicAccessConfigRequest | 否 | - | 集群 API Server 公网访问配置信息。 |
ResourcePublicAccessDefaultEnabled | Boolean | 否 | false | 节点公网访问配置,取值:
说明 集群创建完成后暂不支持修改该参数,请合理配置。 |
参数 | 类型 | 是否必选 | 示例值 | 描述 |
---|---|---|---|---|
PublicAccessNetworkConfig | Object of EipConfigRequest | 否 | - | 公网访问网络配置。 说明 集群创建完成后暂不支持修改该参数,请合理配置。 |
参数 | 类型 | 是否必选 | 示例值 | 描述 |
---|---|---|---|---|
BillingType | Integer | 否 | 2 | 公网 IP 的计费类型,取值:
|
Bandwidth | Integer | 否 | 10 | 公网 IP 的带宽峰值,单位为 Mbps,取值:
|
Isp | String | 否 | BGP | 公网 IP 的线路类型,取值: |
参数 | 类型 | 是否必选 | 示例值 | 描述 |
---|---|---|---|---|
PodNetworkMode | String | 是 | Flannel | 容器(Pod)网络模型(CNI),取值:
说明 集群创建完成后暂不支持修改该参数,请合理配置。 |
FlannelConfig | Object of FlannelConfigRequest | 否 | - | Flannel 网络配置。 |
VpcCniConfig | Object of VpcCniConfigRequest | 否 | - | PC-CNI 网络配置。 |
参数 | 类型 | 是否必选 | 示例值 | 描述 |
---|---|---|---|---|
PodCidrs | Array of String | 是 | ["172.17../19"] | Flannel 容器网络模型对应的 Pod CIDR。 注意
|
MaxPodsPerNode | Integer | 否 | 64 | Flannel 模型容器网络的单节点 Pod 实例数量上限,取值:
|
参数 | 类型 | 是否必选 | 示例值 | 描述 |
---|---|---|---|---|
SubnetIds | Array of String | 是 | ["subnet-5g39dwxvp******","subnet-5g39dwxvp******"] | VPC-CNI 容器网络模型对应的 Pod 子网 ID 列表。 注意 创建集群时,请确保所有指定的 SubnetIds(包括但不限于本参数)属于同一个私有网络。 |
参数 | 类型 | 是否必选 | 示例值 | 描述 |
---|---|---|---|---|
ServiceCidrsv4 | Array of String | 是 | ["172.25.**.**/17"] | 集群内服务使用的 CIDR。 注意
|
参数 | 类型 | 是否必选 | 示例值 | 描述 |
---|---|---|---|---|
Key | String | 是 | key | 标签键。
|
Value | String | 否 | value | 标签值,可以为空。
|
参数 | 类型 | 是否必选 | 示例值 | 描述 |
---|---|---|---|---|
LogSetups | Array of LogSetupRequest | 否 | - | 集群的日志选项信息。
|
LogProjectId | String | 否 | b68324a0-2680-48c7******** | 集群的日志项目(Log Project)ID。 注意
|
参数 | 类型 | 是否必选 | 示例值 | 描述 |
---|---|---|---|---|
LogType | String | 是 | Audit | 当前开启的日志类型,取值:
|
LogTtl | Integer | 否 | 30 | 日志在日志服务中的保存时间,超过指定的日志存储时长后,此日志主题中的过期日志会被自动清除。
|
Enabled | Boolean | 否 | false | 是否开启该日志选项,取值:
注意
|
POST https://open.volcengineapi.com/?Action=CreateCluster&Version=2022-05-12 HTTP/1.1 Content-Type:application/json { "Name": "flannel-test", "Description": "", "DeleteProtectionEnabled": false, "ClusterConfig": { "SubnetIds": ["subnet-3rf6vwbgkg9og5zsk2if****"] }, "PodsConfig": { "PodNetworkMode": "Flannel", "FlannelConfig": { "MaxPodsPerNode": 32, "PodCidrs": ["172.17.**.**/19"] } }, "ServicesConfig": { "ServiceCidrsv4": ["172.25.**.**/17"] }, "Tags": [ { "Key": "key", "Value": "value" } ], "KubernetesVersion": "1.20", "LoggingConfig": { "LogSetups": [ { "LogType": "Audit", "LogTtl": 30, "Enabled": true } ] } }
POST https://open.volcengineapi.com/?Action=CreateCluster&Version=2022-05-12 Content-Type: application/json { "Name": "vpc-cni-test", "Description": "xxxx", "DeleteProtectionEnabled": false, "ClusterConfig": { "SubnetIds": ["subnet-3rf6vwbgkg9og5zsk2if****"], "ApiServerPublicAccessEnabled": true, "ResourcePublicAccessDefaultEnabled": true }, "PodsConfig": { "PodNetworkMode": "VpcCniShared", "VpcCniConfig": { "SubnetIds": ["subnet-2d6tcun83e96o58ozfddc****"] } }, "ServicesConfig": { "ServiceCidrsv4": ["172.17.**.**/21"] }, "Tags": [ { "Key": "key", "Value": "value" } ], "KubernetesVersion": "1.20", "LoggingConfig": { "LogSetups": [ { "LogType": "Audit", "LogTtl": 30, "Enabled": true } ] } }
本接口返回参数如下表所示,公共返回参数请参见 返回结果。
参数 | 类型 | 示例值 | 描述 |
---|---|---|---|
Id | String | cc5silumrs******** | 集群 ID。 |
HTTP/1.1 200 OK Content-Type:application/json { "ResponseMetadata": { "RequestId": "0216353********", "Action": "CreateCluster", "Version": "2022-05-12", "Service": "vke", "Region": "cn-beijing" }, "Result": { "Id": "nc5t5ep********" } }
本接口错误码如下表所示,公共错误码请参见 公共错误码。
HTTP 状态码 | 错误码 | 错误信息 | 说明 |
---|---|---|---|
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. | 指定的 SubnetIds 不属于同一个私有网络。请重新配置参数后重试。 |
400 | OutOfRange.{{cidrParameter}} | The range of specified CIDR is too small. | CIDR IP 地址段过小,影响 Pod 数量。请合理规划 CIDR 后重试。 |
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 地址范围错误。请确认参数后重试。 |
400 | OperationDenied.VpcStatus | The status of the specified VPC {{vpcId}} is not valid. | 指定私有网络(VPC)的当前状态不支持此操作。请确认该接口依赖的私有网络状态后重试。VPC 状态,可以调用 DescribeVpcs 获取。 |
409 | Conflict.Name | The specified name conflicts with existing {{resourceType}}. | 指定地域存在同名资源,请更新资源名称后重试。 |
400 | QuotaExceeded.{{ResourceType}} | The quota of {{ResourceType}} has reached the limit. | 指定资源的配额达到上限,如 EIP、LogProject、LogTopic 等。请提升相关资源配额,或删除无用资源,预留出配额后重试。 |
400 | NotSupported.{{parameter}} | The specified {{resourceType}} {{resourceContent}} is not supported. | 指定的参数不支持,如 KubernetesVersion、SubnetId 等。请确认参数值后重试。 |
400 | Insufficient.SubnetIp | The IP of subnet {{subnetId}} is insufficient. | 指定的子网可用 IP 数量不足。请指定符合要求的子网后重试。 |
400 | LimitExceeded.ClusterSubnetZones | You have reached the limit of the number of cluster subnet zones that you can add. | 集群子网可用区个数超过限制。请确保子网可用区不超过 3 个。 |
400 | LimitExceeded.ClusterSubnetsOfZone | You have reached the limit of the number of cluster subnets in zone {{zone}} that you can add. | 单个可用区下已指定的子网个数超过限制。请确保每个可用区下已指定的子网数不超过 2 个。 |