# 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](https://1737632334-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MifAzdGvKLDTtvJP8sm%2Fuploads%2Fgit-blob-452275e7963b4d4918eced9c7d8ac783a8d9e5d4%2Fmanage-nodepools-public-1.png?alt=media)

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>](https://docs.ionos.com/sections-test/guides/compute-services/compute-engine/vcpu-server) and [<mark style="color:blue;">Dedicated Core Servers</mark>](https://docs.ionos.com/sections-test/guides/compute-services/compute-engine/dedicated-core).

  <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](https://1737632334-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MifAzdGvKLDTtvJP8sm%2Fuploads%2Fgit-blob-a950a9c396be0e133d068dab553b14afc2b6c48c%2Fmanage-nodepools-public-2.png?alt=media)

{% 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](https://1737632334-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MifAzdGvKLDTtvJP8sm%2Fuploads%2Fgit-blob-27b352a16ee36a59c6431a9f5db92a0bf415e473%2Fmanage-nodepools-public-3.png?alt=media)

{% 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](https://1737632334-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MifAzdGvKLDTtvJP8sm%2Fuploads%2Fgit-blob-ebbd5519d4ca7e3d67248e3f05292cce82207e4b%2Fmanage-nodepools-private-1.png?alt=media)

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>](https://docs.ionos.com/sections-test/guides/compute-services/compute-engine/vcpu-server) and [<mark style="color:blue;">Dedicated Core Servers</mark>](https://docs.ionos.com/sections-test/guides/compute-services/compute-engine/dedicated-core).

  <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](https://1737632334-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MifAzdGvKLDTtvJP8sm%2Fuploads%2Fgit-blob-a950a9c396be0e133d068dab553b14afc2b6c48c%2Fmanage-nodepools-public-2.png?alt=media)

{% 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](https://1737632334-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MifAzdGvKLDTtvJP8sm%2Fuploads%2Fgit-blob-a7b4c985be19b366bc60447fbb2de60ba6fcaeff%2Fmanage-nodepools-private-3.png?alt=media)

{% 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 %}
