Documentation Index

Fetch the complete documentation index at: https://api.ncloud-docs.com/llms.txt

Use this file to discover all available pages before exploring further.

Create cluster

Prev Next

Available in VPC

Create a new cluster based on the entered information.

Request

This section describes the request format. The method and URI are as follows:

Method URI
POST /vnks/v2/clusters (Korea Region)
POST /vnks/sgn-v2/clusters (Singapore Region)
POST /vnks/jpn-v2/clusters (Japan Region)

Request headers

For information about the headers common to all Ncloud Kubernetes Service APIs, see Common Ncloud Kubernetes Service request headers.

Request body

You can include the following data in the body of your request:

Field Type Required Description
name String Required Cluster name
  • 3 to 30 characters, including letters, numbers, and the special character "-", and must begin with an English letter and end with an English letter or number.
clusterType String Required Cluster type
  • XEN
    • 10 EA: SVR.VNKS.STAND.C002.M008.NET.SSD.B050.G002
    • 50 EA: SVR.VNKS.STAND.C004.M016.NET.SSD.B050.G002
  • KVM
    • 250 EA: SVR.VNKS.STAND.C004.M016.G003
k8sVersion String Optional Kubernetes version
loginKeyName String Required Authentication key name
  • Enter the name of the authentication key you have.
hypervisorCode String Optional Hypervisor type
  • XEN (default) | KVM
regionCode String Required Region code
isRegional Boolean Optional Whether the cluster is a multi-zone (regional) cluster
  • true | false(default)
  • If true, zoneCode and zoneNo don't need to be entered.
  • Only versions where isRegionalSupport is true in Get supported k8s versions are available.
zoneCode String Conditional Zone code
  • Not needed if isRegional is true.
  • Required if zoneNo is not entered.
  • See getZoneList.
zoneNo Integer Conditional Zone number
  • Not needed if isRegional is true.
  • Required if zoneCode is not entered.
  • See getZoneList.
publicNetwork Boolean Optional Subnet network type
  • true | false (default)
    • true: Public
    • false: Private
vpcNo Integer Required Number of VPC where the cluster will be placed in
subnetNoList[] Array Required Subnet number list
  • If publicNetwork is false, enter the subnet ID of the general purpose private subnet.
  • If publicNetwork if true, enter the subnet ID of the general purpose public subnet.
  • See getSubnetList.
subnetLbNo Integer Conditional @deprecated Private subnet number dedicated to load balancer
lbPrivateSubnetNo Integer Conditional Private subnet number dedicated to the load balancer to be applied to the cluster
lbPrivateSubnetNoList[] Array Conditional List of private subnet numbers dedicated to load balancers to be applied to the cluster
  • Required if lbPrivateSubnetNo is not entered.
  • For multi-zone configurations, enter up to 2 values (one per zone). Only subnets from different zones are allowed.
  • The first value is used as the representative subnet for single-zone load balancers and network load balancers.
  • lbPrivateSubnetNo is applied if not entered.
  • See getSubnetList.
lbPublicSubnetNo Integer Conditional Public subnet number dedicated to the load balancer to be applied to the cluster
  • Required if lbPublicSubnetNoList is not entered.
  • See getSubnetList.
lbPublicSubnetNoList[] Array Conditional List of public subnet numbers dedicated to load balancers to be applied to the cluster
  • Required if lbPublicSubnetNo is not entered.
  • For multi-zone configurations, enter up to 2 values (one per zone). Only subnets from different zones are allowed.
  • The first value is used as the representative subnet for single-zone load balancers and network load balancers.
  • lbPublicSubnetNo is applied if not entered.
  • See getSubnetList.
log Object Optional Logs
log.audit Boolean Optional Set audit log.
  • true | false (default)
authType String Optional Cluster authentication method
  • API (default) | CONFIG_MAP
bootstrapAccessEntry Boolean Optional Whether to automatically create a bootstrap access entry when creating a cluster
  • true (default) | false
kmsKeyTag String Optional Key Management Service's key tag
nodePool Array Optional List of node pools to add: nodePool
addons Array Optional List of add-ons to install when creating a cluster: addons

nodePool

The following describes nodePool.

Field Type Required Description
name String Optional NodePool name
nodeCount Integer Optional Number of nodes
subnetNo Integer Optional @deprecated Subnet number
subnetNoList[] Array Optional Subnet number
  • Valid range: Cluster subnetNoList
softwareCode String Optional Server image code
productCode String Optional Service code
labels[] Array Optional Node label list
labels[].key String Conditional Label key
  • Required when entering nodePool[].labels
  • English letters, numbers, and special characters "-", "_", "." are allowed, and the string must start and end with a English letter or number.
labels[].value String Conditional Label value
  • Required when entering nodePool[].labels
  • English letters, numbers, and special characters "-", "_", "." are allowed, and the string must start and end with a English letter or number.
taints[] Array Optional List of taints
taints[].key String Conditional Taint key
  • Required when entering nodePool[].taints
  • English letters, numbers, and special characters "-", "_", "." are allowed, and the string must start and end with a English letter or number.
taints[].value String Optional Taint value
  • English letters, numbers, special characters "-", "_", "." are allowed, and the string must start and end with a English letter or number.
taints[].effect String Conditional taint effect
  • Required when entering nodePool[].taints
  • NoSchedule | PreferNoSchedule | NoExecute
serverSpecCode String Optional Server type
storageSize Integer Optional Storage size (GB)
  • 100-2000 (default: 100)
  • Use only if hypervisorCode is KVM.
serverRoleId String Optional ID to assign roles to NodePool servers
zoneCode String Conditional Node pool's zone code
  • Required if isRegional is true.
  • Ignored in the single-zone cluster.
  • See getZoneList.
fabricCluster Object Conditional Fabric cluster information
  • Required when using server specifications that support Fabric clusters
fabricCluster.poolName String Conditional Fabric cluster pool information
  • Required when configuring Fabric cluster
fabricCluster.poolNo Integer Conditional Fabric cluster pool number
  • Required when configuring Fabric cluster

addons

The following describes addons.

Field Type Required Description
addonName String Conditional Name of add-on to install
version String Conditional Version of add-on to install
  • Required if addons is entered.
  • See versions[] of Get add-on.
  • Example: 1.0.0
configurationValues String Optional Helm values override values (JSON object string)

Request example

The request example is as follows:

curl --location --request POST 'https://nks.apigw.ntruss.com/vnks/v2/clusters' \
--header 'x-ncp-apigw-timestamp: {Timestamp}' \
--header 'x-ncp-iam-access-key: {Sub Account Access Key}' \
--header 'x-ncp-apigw-signature-v2: {API Gateway Signature}' \
--header 'Content-Type: application/json'
--data '{
    "name": "String",
    "clusterType": "String",
    "k8sVersion": "String",
    "loginKeyName": "String",
    "hypervisorCode": "String",
    "regionCode": "String",
    "zoneCode": "String",
    "zoneNo": "Integer",
    "publicNetwork": "Boolean",
    "kubeNetworkPlugin": "String",
    "vpcNo": "Integer",
    "subnetNoList": [
      "Integer"
    ],
    "subnetLbNo": "Integer",
    "lbPrivateSubnetNo": "Integer",
    "lbPrivateSubnetNoList": [
      "Integer"
    ],
    "lbPublicSubnetNo": "Integer",
    "lbPublicSubnetNoList": [
      "Integer"
    ],
    "log": {
      "audit": "Boolean"
    },
    "isRegional": "Boolean",
    "nodePool": [
      {
        "name": "String",
        "nodeCount": "Integer",
        "subnetNo": "Integer",
        "subnetNoList": [
          "Integer"
        ],
        "softwareCode": "String",
        "productCode": "String",
        "labels": [
          {
            "key": "String",
            "value": "String"
          }
        ],
        "taints": [
          {
            "key": "String",
            "value": "String",
            "effect": "String"
          }
        ],
        "serverSpecCode": "String",
        "storageSize": "Integer",
        "serverRoleId": "String",
        "zoneCode": "String"
      }
    ],
    "addons": [
      {
        "addonName": "String",
        "version": "String",
        "configurationValues": "String"
      }
    ]
}'

Response

This section describes the response format.

Response body

The response body includes the following data:

Field Type Required Description
uuid String - UUID of the cluster

Response status codes

For information about the HTTP status codes common to all Ncloud Kubernetes Service APIs, see Ncloud Kubernetes Service response status codes.

Response example

The response example is as follows:

{
    "uuid": "****a20e-e0fb-4dc9-af1b-97fd3f8d****"
}