You need to enable JavaScript to run this app.
导航
CreateVirtualNode
最近更新时间:2024.09.29 18:50:57首次发布时间:2023.10.26 16:05:10

创建虚拟节点。

说明

邀测·申请试用】:虚拟节点相关 OpenAPI 功能目前处于 邀测 阶段。如果需要使用,请提交申请。

使用说明

此接口为异步接口,当此接口返回成功时,会返回虚拟节点的 ID 信息,此时虚拟节点将进入{Creating, [Progressing]}状态,直到创建执行成功,状态显示{Running, [Ok]}。请调用 ListVirtualNodes 接口获取该虚拟节点当前的状态,查看虚拟节点是否创建成功。

请求说明

  • 请求方式:POST
  • 请求地址:https://open.volcengineapi.com/?Action=CreateVirtualNode&Version=2022-05-12

请求参数

调用该 API 时的请求参数如下,除此之外还需传入公共请求参数。公共请求参数说明,请参见 公共参数

参数类型是否必选示例值描述
ActionStringCreateVirtualNode接口名称。当前 API 的名称为 CreateVirtualNode
VersionString2022-05-12接口版本。当前 API 的版本为 2022-05-12
ClientTokenStringBC028527-33B9-4990-A633-84E9F9xxxx用于保证请求幂等性的字符串。该字符串由调用方传入,需保证不同请求之间唯一。ClientToken 对大小写敏感,且最大值不超过 64 个 ASCII 字符。

Name

String

vci-vnode-cn-beijing-1

虚拟节点的名称。

  • 同一私有网络(VPC)下,虚拟节点名称必须唯一。
  • 支持大小写英文字母、数字、短划线(-),长度限制为 2~64 个字符

注意

  • 该名称仅是虚拟节点的显示名称,不等于 Kubernetes 中的node.name
  • 若不设置,系统以vci-vnode-<所在可用区ID>格式命名虚拟节点的名称。

Kubeconfig

String

YXBpVmVyc2lvbjogdjEKY2x1c3RlcnM6*******

虚拟节点要连接的目标 Kubernetes 集群的 Kubeconfig。

注意

需要对 Kubeconfig 进行 Base 64 编码后传入。Base 64 编码相关注意事项,请参见 FAQ

VirtualNodeConfigObject of VirtualNodeConfig-虚拟节点的节点配置信息。
KubernetesConfigObject of VirtualNodeKubernetesConfigRequest-虚拟节点的 Kubernetes 配置信息。

VirtualNodeConfig

参数类型是否必选示例值描述

VpcId

String

vpc-2d73mgm********

虚拟节点网络所在的私有网络(VPC)ID。
可以调用私有网络的 DescribeVpcs 接口,获取 VPC ID。

SubnetIds

Array of String

["subnet-2d73mhao7vj0g58ozf****"]

虚拟节点网络所属的子网 ID 列表。
可以调用私有网络的 DescribeSubnets 接口,获取子网 ID。

  • 只允许传入同一个 VPC 且相同可用区(AZ)下的多个子网。
  • 最多支持传入 5 个子网 ID。

SecurityGroupIds

Array of String

["sg-3re8ffwjclybk5zsk****"]

虚拟节点网络所在的安全组 ID 列表。
可以调用私有网络的 DescribeSecurityGroups 接口,获取安全组 ID。

  • 虚拟节点的 ENI 和 VCI Pod 默认会加入该安全组。
  • 最多支持传入 5 个安全组 ID。

VirtualNodeKubernetesConfigRequest

参数类型是否必选示例值描述
LabelsArray of Label-虚拟节点的 Kubernetes 标签(Labels)信息。
TaintsArray of Taint-虚拟节点的 Kubernetes 污点(Taints)信息。

Label

参数类型是否必选示例值描述

Key

String

label-key

标签键,要求如下,更多规则,请参见 Kubernetes 标签规则
有效的标签键有两个段:<前缀>和<名称>,用斜杠(/)分隔。

  • <名称>是必须的,支持英文大小写字母、数字、短划线(-)、下划线(_)、英文句号( .),以字母或数字开头和结尾,长度不超过 63 个字符。
  • <前缀>是可选的。如果指定<前缀>,则必须是 DNS 子域:由英文句号(.)分隔的一系列 DNS 标签,长度不超过 253 个字符。
  • <前缀>和<名称>总长度不超过 82 个字符。

Value

String

label-value

标签值,要求如下,更多规则,请参见 Kubernetes 标签规则

  • 长度不超过 63 个字符(可以为空)。
  • 支持以英文大小写字母、数字开头和结尾。
  • 支持特殊字符:短划线(-)、下划线(_)、英文句号(.)。

Taint

参数类型是否必选示例值描述

Effect

String

NoSchedule

污点效果,取值:

  • NoSchedule:(默认值)不调度。
  • NoExecute:驱逐没有容忍污点的 Pod。
  • PreferNoSchedule:尽量避免调度。

Key

String

taint-key

污点键,要求如下,更多规则,请参见 Kubernetes 标签规则
有效的污点键有两个段:<前缀>和<名称>,用斜杠(/)分隔。

  • <名称>是必须的,支持英文大小写字母、数字、短划线(-)、下划线(_)、英文句号( .),以字母或数字开头和结尾,长度不超过 63 个字符。
  • <前缀>是可选的。如果指定<前缀>,则必须是 DNS 子域:由英文句号(.)分隔的一系列 DNS 标签,长度不超过 253 个字符。
  • <前缀>和<名称>总长度不超过 82 个字符。

Value

String

taint-value

污点值,要求如下,更多规则,请参见 Kubernetes 标签规则

  • 长度不超过 63 个字符(可以为空)。
  • 支持以英文大小写字母、数字开头和结尾。
  • 支持特殊字符:短划线(-)、下划线(_)、英文句号(.)。

请求示例

POST https://open.volcengineapi.com/?Action=CreateVirtualNode&Version=2022-05-12 HTTP/1.1
Content-Type:application/json
{
    "Name": "virtualnode-1",
    "VirtualNodeConfig": {
        "VpcId": "vpc-3reuafbrw1********",
        "SubnetIds": ["subnet-3rfcnoazj4cu85zsk2j******"],
        "SecurityGroupIDs": ["sg-3reuafhozdwjk5zsk2i******"]
    },
    "ClientToken": "BC028527-33B9-4990-A633-84E9F9******",
    "KubernetesConfig": {
        "Labels": [
            {"Key": "nodetype", "Value": "vci"}
        ],
        "Taints": [
            {
                "Key": "t1",
                "Value": "tv1",
                "Effect": "NoSchedule"
            }
        ]
    },
    "Kubeconfig": "YXBpVmVyc2lvbjogdjEKY2x1c3RlcnM6*******"
}

返回参数

本接口返回参数如下表所示,公共返回参数请参见 返回结果

参数类型示例值描述
idStringv73mhao7vj0g********虚拟节点 ID。

返回示例

HTTP/1.1 200 OK
Content-Type:application/json
{
    "ResponseMetadata": {
        "RequestId": "021635*******",
        "Action": "CreateVirtualNode",
        "Version": "2022-05-12",
        "Service": "vke",
        "Region": "cn-beijing"
    },
    "Result": {
        "id": "vck4gdidle********"
    }
}

错误码

本接口错误码如下表所示,公共错误码请参见 公共错误码

HTTP 状态码错误码错误信息说明
400VpcMismatch.{{parameter}}The specified {{resourceType}} {{resourceId}} is not in the same VPC.指定的 SubnetIds 不属于同一个私有网络。请重新配置参数后重试。
400OperationDenied.SubnetThe specified Subnet {{subnetId}} is not in the VCI zones.指定的子网对应的可用区不在用户vci开服可用区范围内。
409Conflict.NameThe specified name conflicts with existing {{resourceType}}.指定地域存在同名资源,请更新资源名称后重试。
400NotSupported.{{parameter}}The specified {{resourceType}} {{resourceContent}} is not supported.指定参数不支持,例如 SecurityGroupIds 等。请确认参数后重试