---
title: "Deploying a node pool"
description: "- You should have already created a cluster on the OVHcloud Managed Kubernetes service."
url: https://docs.us.ovhcloud.com/en/public-cloud/managed-kubernetes/deploying-node-pool
lang: en
---
> For AI agents: the complete documentation index is available at https://docs.us.ovhcloud.com/en/llms.txt, the full documentation bundle is available at https://docs.us.ovhcloud.com/en/llms-full.txt.

# Deploying a node pool

## Requirements

- You should have already created a cluster on the OVHcloud Managed Kubernetes service.
- You will also need the [kubectl](https://kubernetes.io/docs/reference/kubectl/overview/) command-line tool. You can find the [detailed installation instructions](https://kubernetes.io/docs/tasks/tools/install-kubectl/) for this tool on the Kubernetes official site.

**Warning:**

**NOTE:** For API users, this guide assumes you are familiar with the [OVHcloud API](https://api.us.ovhcloud.com/). If you have never used it, you can find the basics here: [First steps with the OVHcloud API](https://help.ovhcloud.com/csm/en-gb-api-getting-started-ovhcloud-api?id=kb_article_view\&sysparm_article=KB0042784).

 

## Instructions

### Getting your cluster information

#### Via the OVHcloud Control Panel

Log in to the [OVHcloud Control Panel](https://manager.us.ovhcloud.com/), go to the `Public Cloud` section, and select the relevant Public Cloud project.
Access the administration UI for your OVHcloud Managed Kubernetes clusters by clicking on `Managed Kubernetes Service` in the left-hand menu.
Click on your cluster to access its information.

In this administration UI, you have several tabs included:
- **Service:** A global view of your cluster, with important information like the status, API URL, and `kubectl` configuration file.
- **Node pools:** The node pools of your cluster, with options for adding, configuring, or removing them.
- **APIServer access:** The possibility to configure the access to the API-server.
- **Logs:** Logs of your Kubernetes cluster’s control plane.

#### Via the OVHcloud API

#### List your OVHcloud Managed Kubernetes clusters

The `GET /cloud/project/{serviceName}/kube` API endpoint lists all the available Kubernetes clusters:

[GET /cloud/project/{serviceName}/kube](https://api.us.ovhcloud.com/console/?section=/cloud&branch=v1#get-/cloud/project/-serviceName-/kube)

**Result:**
```
[
  "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
]
```
By calling it, you can view a list of values. Note down the ID of the cluster you want to use. In this example, we will refer to it as `kubeId`.
 
#### Getting information

The `GET /cloud/project/{serviceName}/kube/{kubeId}` API endpoint provides important information about your Managed Kubernetes cluster, including its region, status, and URL.

[GET /cloud/project/{serviceName}/kube/{kubeId}](https://api.us.ovhcloud.com/console/?section=/cloud&branch=v1#get-/cloud/project/-serviceName-/kube/-kubeId-)

**Result:**
```
{
  "id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "region": "US-EAST-VA-1",
  "name": "my-tiny-cluster",
  "url": "xxxxxx.c1.va1.k8s.ovh.us",
  "nodesUrl": "xxxxxx.nodes.c1.va1.k8s.ovh.us",
  "version": "1.34.2",
  "nextUpgradeVersions": [],
  "customization": {
    "apiServer": {
      "admissionPlugins": {
        "enabled": [
          "AlwaysPullImages",
          "NodeRestriction"
        ],
        "disabled": []
      }
    }
  },
  "status": "READY",
  "updatePolicy": "ALWAYS_UPDATE",
  "isUpToDate": true,
  "controlPlaneIsUpToDate": true,
  "privateNetworkId": null,
  "createdAt": "2022-09-22T06:57:58Z",
  "updatedAt": "2022-12-15T15:14:44Z"
}
```

 

### Configuring the default settings for kubectl

Please refer to the [Configuring kubectl on an OVHcloud Managed Kubernetes cluster](https://docs.us.ovhcloud.com/en/public-cloud/managed-kubernetes/configure-kubectl.md) documentation for this part of the process.

 

### Add a node pool

#### Via the OVHcloud Control Panel

In the `Node pools` tab of the administration UI, click the `Add a node pool` button.

1. Enter a node pool name.

   **Note:**

   Only alphanumeric characters and "-" are allowed for the node pool name. You can’t use characters like “\_”, “.”, or "/" as a separator in a node pool name.

2. Choose a flavor (machine type) for your node pool (B3-8, for example).

3. Configure the number of nodes you want to add to your node pool, 3, for example, with Autoscaling disabled.

4. Define the billing method: monthly or hourly.

When you have made all of your selections, click `Save`.

#### Via the OVHcloud API

To create a node pool, you can use the `POST /cloud/project/{serviceName}/kube/{kubeId}/nodepool` endpoint, which will deploy a node pool for your cluster on the Public Cloud.
You will need to give it several pieces of information, but only the `flavorName` parameter (the flavor of the instance you want to create) is a required parameter. If you don't fill a value for the `desiredNodes` parameter, the default value will be 1, so you will create a new node pool with one node. For this tutorial, we choose a general-purpose node, such as the `b3-8` flavor.

[POST /cloud/project/{serviceName}/kube/{kubeId}/nodepool](https://api.us.ovhcloud.com/console/?section=/cloud&branch=v1#post-/cloud/project/-serviceName-/kube/-kubeId-/nodepool)

**Result:**
```
{
  "id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "projectId": "",
  "name": "nodepool-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "flavor": "b3-8",
  "status": "INSTALLING",
  "sizeStatus": "CAPACITY_OK",
  "autoscale": false,
  "monthlyBilled": false,
  "antiAffinity": false,
  "desiredNodes": 0,
  "minNodes": 0,
  "maxNodes": 100,
  "currentNodes": 0,
  "availableNodes": 0,
  "upToDateNodes": 0,
  "createdAt": "2023-01-13T08:52:27Z",
  "updatedAt": "2023-01-13T08:52:27Z",
  "autoscaling": {
    "scaleDownUtilizationThreshold": 0.5,
    "scaleDownUnneededTimeSeconds": 600,
    "scaleDownUnreadyTimeSeconds": 1200
  },
  "template": {
    "metadata": {
      "labels": {},
      "annotations": {},
      "finalizers": []
    },
    "spec": {
      "unschedulable": false,
      "taints": []
    }
  }
}
```
The API will return you the new node pool information.

 

### Verify that your node is ready

#### Via the OVHcloud Control Panel

In the `Node pools` tab, you can inspect the state of your Node pools. The node pool you have just created should now be in an _Installing_ state. The node pool installation can take a minute, so feel free to take a short break, then try again until it's ready.
After its creation, click on the node pool in order to list its nodes' details.

#### Via the OVHcloud API

You can use the `GET /cloud/project/{serviceName}/kube/{kubeId}/nodepool` entrypoint to list all your node pools. Look for the node pool you've just created, and verify the status is `READY`.
The node pool installation can take a few minutes.

[GET /cloud/project/{serviceName}/kube/{kubeId}/nodepool](https://api.us.ovhcloud.com/console/?section=/cloud&branch=v1#get-/cloud/project/-serviceName-/kube/-kubeId-/nodepool)

**Result:**
```
[
  {
    "id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
    "projectId": "a123b4c56d789e0ab12c345d678efa12",
    "name": "nodepool-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
    "flavor": "b3-8",
    "status": "READY",
    "sizeStatus": "CAPACITY_OK",
    "autoscale": false,
    "monthlyBilled": false,
    "antiAffinity": false,
    "desiredNodes": 1,
    "minNodes": 0,
    "maxNodes": 100,
    "currentNodes": 1,
    "availableNodes": 1,
    "upToDateNodes": 1,
    "createdAt": "2022-09-22T06:58:09Z",
    "updatedAt": "2022-12-15T15:14:33Z",
    "autoscaling": {
      "scaleDownUtilizationThreshold": 0.5,
      "scaleDownUnneededTimeSeconds": 600,
      "scaleDownUnreadyTimeSeconds": 1200
    },
    "template": {
      "metadata": {
        "labels": {},
        "annotations": {},
        "finalizers": []
      },
      "spec": {
        "unschedulable": false,
        "taints": []
      }
    }
  },
  {
    "id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
    "projectId": "a123b4c56d789e0ab12c345d678efa12",
    "name": "nodepool-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
    "flavor": "b3-8",
    "status": "READY",
    "sizeStatus": "CAPACITY_OK",
    "autoscale": false,
    "monthlyBilled": false,
    "antiAffinity": false,
    "desiredNodes": 0,
    "minNodes": 0,
    "maxNodes": 100,
    "currentNodes": 0,
    "availableNodes": 0,
    "upToDateNodes": 0,
    "createdAt": "2023-01-13T08:52:27Z",
    "updatedAt": "2023-01-13T08:52:39Z",
    "autoscaling": {
      "scaleDownUtilizationThreshold": 0.5,
      "scaleDownUnneededTimeSeconds": 600,
      "scaleDownUnreadyTimeSeconds": 1200
    },
    "template": {
      "metadata": {
        "labels": {},
        "annotations": {},
        "finalizers": []
      },
      "spec": {
        "unschedulable": false,
        "taints": []
      }
    }
  }
]
```

 

### Deploy your first application

You’re now ready to deploy your first application in your OVHcloud Managed Kubernetes cluster.

For more details about this process, you can refer to our [deploying an application](https://docs.us.ovhcloud.com/en/public-cloud/managed-kubernetes/deploy-hello-world.md) documentation.

 

## Go further

Browse all the [Managed Kubernetes Service (MKS) guides](https://docs.us.ovhcloud.com/en/public-cloud/managed-kubernetes/landing-page-managed-kubernetes.md).

Browse the rest of the [OVHcloud US documentation](https://docs.us.ovhcloud.com/en/index.md) for guides on our other products and services.

Learn more about [Managed Kubernetes](https://us.ovhcloud.com/public-cloud/kubernetes/) on the OVHcloud US website.

If you need training or technical assistance to implement our solutions, contact your sales representative or click on [this link](https://us.ovhcloud.com/professional-services/) to get a quote and ask our Professional Services experts for a custom analysis of your project.
