You need to enable JavaScript to run this app.
导航
CreateVirtualNode
最近更新时间:2024.06.21 16:12:58首次发布时间: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公共参数,本接口值:CreateVirtualNode。
VersionString2022-05-12公共参数,本接口值:2022-05-12。
ClientTokenStringBC028527-33B9-4990-A633-84E9F9******用于保证请求幂等性的字符串。该字符串由调用方传入,需保证不同请求之间唯一。ClientToken 对大小写敏感,且最大值不超过 64 个 ASCII 字符。

Name

String

vci-vnode-cn-beijing-b

虚拟节点的名称。

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

注意

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

Kubeconfig

String

YXBpVmVyc******

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

注意

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

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

VirtualNodeConfigRequest

名称类型是否必选示例值描述

VpcId

String

vpc-3reuafbrw1qm85zsk2i******

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

SubnetIds

Array of String

["subnet-3rfcnoazj4cu85zsk2j******"]

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

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

SecurityGroupIds

Array of String

["sg-3reuafhozdwjk5zsk2i******"]

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

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

VirtualNodeKubernetesConfigRequest

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

请求示例

POST /?Action=CreateVirtualNode&Version=2022-05-12 HTTP/1.1
Content-Type:application/json
{
    "Name": "virtualnode-1",
    "VirtualNodeConfig": {
        "VpcId": "vpc-3reuafbrw1qm85zsk2******",
        "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": "YXBpVmVyc******"
}

返回参数

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

参数名称类型示例值说明
IdStringvck4gdidlemc3ou******虚拟节点 ID。

返回示例

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

错误码

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

HTTP 状态码错误码错误信息描述
400VpcMismatch.{{parameter}}The specified {{resourceType}} {{resourceId}} is not in the specified vpc.指定的子网或安全组等资源不属于指定的 VPC。请确保其处于同一个 VPC 内。
400ZoneMismatch.SubnetsThe specified Subnet {{subnetId}} and other subnets are not in the same zone.指定的多个子网,不属于同一个可用区。请确保其处于同一个可用区内。
409Conflict.NameThe specified name conflicts with existing virtual node.指定 VPC 下已经存在同名的虚拟节点。请为虚拟节点设置其他名称。