You need to enable JavaScript to run this app.
导航

创建边缘集群

最近更新时间2023.10.11 17:27:07

首次发布时间2023.08.24 19:59:29

本接口用于创建边缘集群。

使用说明

此接口为异步接口,当此接口返回成功时,会返回集群的 ID 信息,此时不代表集群最终能够成功创建,需要您调用获取集群列表及详情接口以获取该集群当前的状态,查看集群是否创建成功。集群创建成功后,状态为{Running, [Ok]}。有关状态说明,请参见资源状态说明

请求方法

POST

请求参数

下表列出了接口特定的请求参数以及公共请求参数 Action 和 Version。 其他公共参数,请参见公共参数

参数名称

类型

是否必选

示例值

说明

Action

String

CreateCluster

公共参数,本接口取值为CreateCluster

Version

String

2022-05-12

公共参数,本接口取值为2022-05-12

ClientToken

String

BC028527-33B9-4990-A633-84E9F9******

用于保证请求幂等性的字符串。该字符串由调用方传入,需保证不同请求之间唯一。ClientToken 对大小写敏感,且最大值不超过 64 个 ASCII 字符。

Name

String

TestCluster

集群名称。

  • 同一个地域下,名称必须唯一。
  • 支持大小写英文字母、汉字、数字、短划线(-)且数字不能在首位,短划线(-)不能在首位或末位,长度限制为 2~64 个字符。

Description

String

A Kubernetes Cluster Managed by veecp

集群描述。长度限制为 300 个字符以内。

Profile

String

Edge

  • 边缘集群: Edge
  • 非边缘集群:Cloud

当使用边缘托管时,请将该项设为 Edge

DeleteProtectionEnabled

Boolean

false

集群删除保护,取值:

  • false:(默认值)关闭删除保护。
  • true:开启删除保护,不允许直接删除集群。

创建集群后,可以在调用删除边缘集群时,配置 Force 参数,选择强制删除集群。

ClusterConfig

ClusterConfigRequest

集群控制面及节点的网络配置。

PodsConfig

PodsConfigRequest

集群的容器(Pod)网络配置。

ServicesConfig

ServicesConfigRequest

集群的服务(Service)网络配置。

Tags

[]Tag

集群绑定标签信息

  • Tags 中各个 Key不可重复;
  • 资源已有相同 TagKey 的情况下,重复绑定标签不会报错,会更新为最新的 TagValue;
  • Tags 中的 key、value 不允许在最前或最后输入空格,后端会直接去除空格;
  • 单个资源最多支持绑定 50 个标签。

KubernetesVersion

String

1.20

创建集群时指定Kubernetes版本,格式为x.xx,默认值为支持的Kubernetes 版本列表中的最新版本(目前为 1.20)。

LoggingConfig

ClusterLoggingConfigRequest

集群的日志配置信息。

请求示例

  • 创建 Flannel 网络模型集群
POST /?Action=CreateCluster&Version=2022-05-12 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
            }
        ]
    }
}
  • 创建 VPC-CNI 网络模型集群
POST /?Action=CreateCluster&Version=2022-05-12 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": "2022-05-12",
        "Service": "veecp_openapi",
        "Region": "cn-beijing"
    },
    "Result": {
        "Id": "nc5t5epmrsf****"
    }
}

错误码

本接口错误码如下表所示,其他错误码请参见错误码

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.

指定的子网不属于同一个私有网络。请重新配置参数后重试。

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 获取。