# Manage Node Pools

## Create a node pool

{% hint style="info" %}
**Prerequisite:** Only contract owners, administrators, and users having **Create Kubernetes Clusters** permission can create node pools. Other user types have **read-only** access.
{% endhint %}

{% tabs %}
{% tab title="Public Node Pools" %}
You can create a cluster using the **Kubernetes Manager** in [<mark style="color:blue;">DCD</mark>](https://docs.ionos.com/cloud/support/general-information/glossary-of-terms#data-center-designer-dcd) for Public Node Pools.

1\. In the **DCD**, go to **Menu** > **Containers** > **Managed Kubernetes**.

2\. Select a cluster from the list and go to the **Node pools in Cluster** tab.

![Create a node pool](/files/JyHa2EJ0pksxVQQHp7kO)

3\. Select **Create node pool**.

4\. In **Create Kubernetes node pool**, configure your node pools.

* In the **Pool Settings**, provide the following information:
  * **Pool Name:** Enter a name that aligns with the Kubernetes naming convention.
  * **Data Center:** Select an option from the drop-down list. Your node pool will be included in the selected data center. If you do not have a data center, you must first create one.
  * **Node pool version:** Select an appropriate version from the drop-down list.
  * **Node count:** Select the number of nodes in the node count.
  * **Autoscale:** Select the checkbox to enable autoscale and provide a minimum and maximum number of total nodes.
  * **Attached private LANs:** Select **+** and choose a private LAN from the drop-down list.
  * **Reserved IPs:** Select **+** and choose a reserved IP address from the drop-down list.
* In the **Node Template**, provide the following information:

  * **Server type:** Select either **vCPU** or **Dedicated Core** server from the drop-down list. By default, **Dedicated Core** is selected. For more information on the server type, see [<mark style="color:blue;">vCPU Servers</mark>](/cloud/compute-services/compute-engine/vcpu-server.md) and [<mark style="color:blue;">Dedicated Core Servers</mark>](/cloud/compute-services/compute-engine/dedicated-core.md).

  <div data-gb-custom-block data-tag="hint" data-style="info" class="hint hint-info"><p><strong>CPU Resource Mapping:</strong> Regardless of whether you select <strong>vCPU Servers</strong> or <strong>Dedicated Core Servers</strong>, CPU resource allocation follows a fixed logic when provisioning resources:</p><p><strong>1 provisioned core (of vCPU or Dedicated Core servers) equals 2 Managed Kubernetes CPUs</strong>.</p></div>

  * **Cores:** Select the number of cores.
  * **RAM:** Select the size of your RAM.
  * **Availability Zone:** Select a zone from the drop-down list.
  * **Storage Type:** Select a type of storage, either **HDD** or **SSD** form the drop-down list.
  * **Storage Size:** Select the storage size for your storage.

{% hint style="info" %}
**Note:** Ensure to use the following naming convention for the node pool:

* Can be a maximum of 63 characters in length.
* Begins and ends with an alphanumeric character (`a-z0-9A-Z`).
* Must not contain spaces or any other white-space characters.
* Can contain dashes (-), underscores (\_), and dots (.) in between.
  {% endhint %}

5\. Select **+Create node pool** and click **OK** to confirm the server summary displayed.

![Create Kubernetes node pool modal](/files/OiHbiaSEthyQKZARwx4b)

{% hint style="success" %}
**Result:** A node pool is successfully created and can be used once it reaches the **active state**.
{% endhint %}

#### Rebuild a node

When a node fails or becomes unresponsive you can rebuild that node. This will create a new node with an identical configuration that will replace the failed node.

{% hint style="info" %}
**Prerequisite:** Make sure your node is **active**.
{% endhint %}

1. Select a cluster from the list and go to the **Node pools in Cluster** tab.
2. Select the node pool that contains the **failed node**.
3. Select **Rebuild**.
4. Confirm your selection by selecting **OK**.

![Confirm selection](/files/KXhoKpvSEsEJLpjjlRWq)

{% hint style="success" %}
**Result:**

* **Managed Kubernetes** starts a process that is based on the **Node Template**. The template creates and configures a new node. Once the status is updated to **ACTIVE**, then it migrates all the pods from the faulty node to the new node.
* The faulty node is deleted once it is empty.
* While this operation occurs, the node pool will have an extra billable active node.
* The node pool is successfully rebuilt.
  {% endhint %}
  {% endtab %}

{% tab title="Private Node Pools" %}
You can create a cluster using the **Kubernetes Manager** in [<mark style="color:blue;">DCD</mark>](https://docs.ionos.com/cloud/support/general-information/glossary-of-terms#data-center-designer-dcd) for Private Node Pools.

1\. In the **DCD**, go to **Menu** > **Containers** > **Managed Kubernetes**.

2\. Select a cluster from the list and go to the **Node pools in Cluster** tab.

![Create a node pool](/files/g1xVkdccVuPKTKPftG1H)

3\. Select **+ Create node pool**.

4\. In **Create Kubernetes node pool**, configure your node pools.

* In the **Pool Settings**, provide the following information:
  * **Pool Name:** Enter a name that aligns with the Kubernetes naming convention.
  * **Data Center**: Select an option from the drop-down list. Your node pool will be included in the selected data center. If you do not have a data center, you must first create one.
  * **Node pool version:** Select an appropriate version from the drop-down list.
  * **Node count:** Select the number of nodes in the node count.
  * **Autoscale:** Select the checkbox to enable autoscale and provide a minimum and maximum number of the total nodes.
  * **Attached private LANs:** Select **+** and choose a private LAN from the drop-down list.
  * **Reserved IPs:** Select **+** and choose a reserved IP address from the drop-down list.
* In the **Node Template**, provide the following information:

  * **Server type:** Select either **vCPU** or **Dedicated Core** server from the drop-down list. By default, **Dedicated Core** is selected. For more information on the server type, see [<mark style="color:blue;">vCPU Servers</mark>](/cloud/compute-services/compute-engine/vcpu-server.md) and [<mark style="color:blue;">Dedicated Core Servers</mark>](/cloud/compute-services/compute-engine/dedicated-core.md).

  <div data-gb-custom-block data-tag="hint" data-style="info" class="hint hint-info"><p><strong>CPU Resource Mapping:</strong> Regardless of whether you select <strong>vCPU Servers</strong> or <strong>Dedicated Core Servers</strong>, CPU resource allocation follows a fixed logic when provisioning resources:</p><p><strong>1 provisioned core (of vCPU or Dedicated Core servers) equals 2 Managed Kubernetes CPUs</strong>.</p></div>

  * **Cores:** Select the number of cores.
  * **RAM:** Select the size of your RAM.
  * **Availability Zone:** Select a zone from the drop-down list.
  * **Storage Type:** Select a type of storage from the drop-down list.
  * **Storage Size:** Select the storage size for your storage.

{% hint style="info" %}
**Note:** Ensure to use the following naming convention for the node pool:

* Can be a maximum of 63 characters in length.
* Begins and ends with an alphanumeric character (`a-z0-9A-Z`).
* Must not contain spaces or any other white-space characters.
* Can contain dashes (-), underscores (\_), and dots (.) in between.
  {% endhint %}

5\. Select **Create node pool**.

![Create Kubernetes node pool modal](/files/OiHbiaSEthyQKZARwx4b)

{% hint style="success" %}
**Result:** A node pool is successfully created and can be used once it reaches the **Active** state.
{% endhint %}

#### Rebuild a node

When a node fails or becomes unresponsive, you can rebuild that node. This will create a new node with an identical configuration that will replace the failed node.

{% hint style="info" %}
**Prerequisite:** Make sure your node is **active**.
{% endhint %}

1\. Select a cluster from the list and go to the **Node pools in Cluster** tab.

2\. Select the node pool that contains the **failed node**.

3\. Select **Rebuild**.

4\. Confirm your selection by selecting **OK**.

![Rebuild a node](/files/wldQRxdRHb5JhrjipSMJ)

{% hint style="success" %}
**Result:**

* **Managed Kubernetes** starts a process that is based on the **Node Template**. The template creates and configures a new node. Once the status is updated to **ACTIVE**, then it migrates all the pods from the faulty node to the new node.
* The faulty node is deleted once it is empty.
* While this operation occurs, the node pool will have an extra billable active node.
* The node pool is successfully rebuilt.
  {% endhint %}
  {% endtab %}
  {% endtabs %}

{% hint style="info" %}
**Note:** Avoid accessing the target data center while Managed Kubernetes is provisioning nodes, as concurrent manual interaction can cause undesirable results.
{% endhint %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.ionos.com/cloud/containers/managed-kubernetes/how-tos/management-of-node-pools.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
