# 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/support/general-information/glossary-of-terms#data-center-designer-dcd) for Public Node Pools.

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

![Containers drop-down menu](https://1737632334-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MifAzdGvKLDTtvJP8sm%2Fuploads%2Fgit-blob-f2977d0bbed0d183d7514c7c2cfdeb12b24d7800%2Fcontainers_dropdown.png?alt=media)

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-43e06e2a97f13f4321cb0a5920ec36c99542d3d3%2Fnodepool_create.png?alt=media)

3. Select **+ Create node pool**.
4. In **Create Kubernetes node pool**, configure your node pools.
   * In **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 Pool Template**, provide the following information:
   * **CPU**: Select an option from the drop-down list.
   * **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:**\
Make sure to use the following naming convention for the Kubernetes cluster:

* 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-7d7167b87ff2e090fb29328cba4140242740f3d1%2Fcreate_node_pool.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**.

![](https://1737632334-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MifAzdGvKLDTtvJP8sm%2Fuploads%2Fgit-blob-9d3200979eb5b0ed3d6336b3c8d6599fc1b55a5d%2Frebuild_node.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/support/general-information/glossary-of-terms#data-center-designer-dcd) for Private Node Pools.

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

![Containers drop-down menu](https://1737632334-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MifAzdGvKLDTtvJP8sm%2Fuploads%2Fgit-blob-f2977d0bbed0d183d7514c7c2cfdeb12b24d7800%2Fcontainers_dropdown.png?alt=media)

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-43e06e2a97f13f4321cb0a5920ec36c99542d3d3%2Fnodepool_create.png?alt=media)

3. Select **+ Create node pool**.
4. In **Create Kubernetes node pool**, configure your node pools.
   * In **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 Pool Template**, provide the following information:
   * **CPU**: Select an option from the drop-down list.
   * **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:**\
Make sure to use the following naming convention for the Kubernetes cluster:

* 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-7d7167b87ff2e090fb29328cba4140242740f3d1%2Fcreate_node_pool.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-7c16dc4b59e011da430ed9a54e1a9076fdf59189%2Frebuilt_private.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" %}
Avoid accessing the target data center while Managed Kubernetes is provisioning nodes, as concurrent manual interaction can cause undesirable results.
{% endhint %}
