# Node Pools

[GCP Node Pools](https://cloud.google.com/kubernetes-engine/docs/concepts/node-pools) are useful when you need to schedule Pods requiring more resources than others, such as more memory or local disk space. Node Pools can be created for the DuploCloud Infrastructure with GKE Standard Cluster only.

## Prerequisites

[Add a Tenant](https://docs.duplocloud.com/docs/automation-platform/overview-1/use-cases/tenant-environment), specifying the DuploCloud **Plan** corresponding to your GKE cluster.

## Adding a Node Pool

1. In the DuploCloud Portal, navigate to **Kubernetes** -> **Nodes.**
2. Click the **Node Pool** tab.
3. Click **Add**. The **Add Node Pools** page displays.
4. Provide **Name**, **Availability Zone**, **Instance Type**, and **Node Counts**.
5. Click **Submit**.

<figure><img src="https://2471407984-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F68cb0s9ce5UIUKWPuYs8%2Fuploads%2FWpyTwJ0G5c33DFygdTEA%2FScreenshot%20(1098).png?alt=media&#x26;token=9b4789a7-40a8-4970-9363-bd5c7456d758" alt=""><figcaption><p><strong>Add Node Pool</strong> page</p></figcaption></figure>

{% hint style="info" %}
**Scaling GKE Node Pools to Zero**

When autoscaling is enabled, you can set the minimum node count to **0** allowing a GKE node pool to scale down to zero nodes when no workloads are running. Nodes are automatically recreated when workloads require capacity. A minimum node count of **0** can be configured when creating a node pool or by editing an existing node pool with autoscaling enabled.

This applies only to GKE node pools. GCE VMs and BYOH hosts cannot be scaled to zero.
{% endhint %}

### Adding a Node Pool with Advanced Options

DuploCloud Portal provides additional options when configuring a Node Pool, as depicted below. To use Advanced Options select **Advanced Options** in the **Add Node Pool** page.

<figure><img src="https://2471407984-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F68cb0s9ce5UIUKWPuYs8%2Fuploads%2FcC2i6HjIoBMSc0cd9NRr%2Fimage.png?alt=media&#x26;token=970e3297-4cdd-4a1a-9fa2-95907bfef4aa" alt=""><figcaption><p><strong>Add Node Pool</strong> with <strong>Advanced Options</strong> enabled</p></figcaption></figure>

### Adding a Node Pool with Accelerator Type

You can add Accelerator types for GPUs while creating a NodePool. From the **Add Node Pool** page, click **Add Accelerator**.

{% hint style="info" %}
Accelerator Types are not available in all regions.
{% endhint %}

![](https://2471407984-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F68cb0s9ce5UIUKWPuYs8%2Fuploads%2FYPzdlnRLZHE2gao8d8UO%2Fimage.png?alt=media\&token=3ec7b8b9-94b0-4401-9d62-a390389f4237)

### Configuring a Service to use an Accelerator Type

1. [Add a Service](https://docs.duplocloud.com/docs/automation-platform/overview-1/gcp-services/containers).
2. In the Add Service page, click Next for Advanced Options.
3. Enter `command`, `args`, and `resources` in the **Other Container Config** field.
4. Click **Create**.

For additional details, refer to the documentation from Google Cloud [here](https://cloud.google.com/kubernetes-engine/docs/how-to/gpus#pods_gpus) .

<figure><img src="https://2471407984-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F68cb0s9ce5UIUKWPuYs8%2Fuploads%2FmZHew3z4aSZJZM81sJqM%2Fimage.png?alt=media&#x26;token=4b1f63ec-a865-42a8-8a83-70ee870bf508" alt=""><figcaption><p><strong>Add Service</strong> page, <strong>Basic Options</strong></p></figcaption></figure>

<figure><img src="https://2471407984-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F68cb0s9ce5UIUKWPuYs8%2Fuploads%2FiKyorT9mdM0VYaJvlb59%2Fimage.png?alt=media&#x26;token=4c103380-b759-4d4d-b8ea-018eabc2de2c" alt=""><figcaption><p><strong>Add Service</strong> page, <strong>Advanced Options</strong></p></figcaption></figure>

### Adding a Taint to a Node Pool

1. [Add a Node Pool](#adding-a-node-pool).
2. Select the Node Pool to which you want to add taints.
3. Click **Actions** and select **Add Taint**. The **Add Taint** pane displays.
4. Enter the **Key**/**Value** pair and select the **Effect** from the list box.
5. Click **Add Taint**.

For example, the following screen applies a taint to a Node Pool that has a **Key**/**Value** of `dedicated=experimental`with a `NoSchedule` effect.

<div align="left"><figure><img src="https://2471407984-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F68cb0s9ce5UIUKWPuYs8%2Fuploads%2FXeQtSvlTWQow07SQ4bjK%2Fimage.png?alt=media&#x26;token=46de17eb-1b5a-4a5d-abf2-ef1fc3546739" alt=""><figcaption><p><strong>Add Taint</strong> pane</p></figcaption></figure></div>

### Configuring a Service to use Taints

You need to configure the correct `tolerations` in the Service to schedule the Pod in a Node Pool.

To continue the examples above, [create a Service](https://docs.duplocloud.com/docs/automation-platform/overview-1/gcp-services/containers) with `tolerations` using the **Other Container Config** field, as depicted below.

```
tolerations:
  - key: dedicated
    operator: Equal
    value: experimental
    effect: NoSchedule
```

<div align="left"><figure><img src="https://2471407984-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F68cb0s9ce5UIUKWPuYs8%2Fuploads%2Fuu8gFpHztmPbHRiW1NPh%2Fimage.png?alt=media&#x26;token=10da12b4-4aaf-471c-b668-723635cb79b1" alt=""><figcaption><p>Configure <code>tolerations</code> using the <strong>Other Container Config</strong> in <strong>Add Service Advanced Options</strong> form</p></figcaption></figure></div>

You can Edit or Delete a Taint by selecting the Node Pool **Name**, clicking the **Actions** menu, and selecting **Edit** or **Delete**. You edit the Node Pool using the **Edit Node Pool** page.

<figure><img src="https://2471407984-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F68cb0s9ce5UIUKWPuYs8%2Fuploads%2FZNPo9UXE4D5irAJyZo1D%2Fimage.png?alt=media&#x26;token=321bf8d2-5c2a-4088-9cf6-5db2c8c21f4a" alt=""><figcaption><p><strong>Edit Node Pools</strong> page</p></figcaption></figure>

### Viewing Node Pools

View Node Pools by clicking the **Node Pool** tab and selecting the Node Pool **Name**.

<figure><img src="https://2471407984-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F68cb0s9ce5UIUKWPuYs8%2Fuploads%2F27bY8HgIZPvrAT11AYJr%2Fimage.png?alt=media&#x26;token=08acc7ad-7ac6-47a0-a0d5-697af36cfa85" alt=""><figcaption><p>The <strong>Node Pool</strong> page</p></figcaption></figure>

Nodes created as part of a Node Pool, are displayed in the **GCE VM** tab.

<figure><img src="https://2471407984-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F68cb0s9ce5UIUKWPuYs8%2Fuploads%2F4yjF43GUs9S4BSVvdBWg%2FNODES%201.png?alt=media&#x26;token=f7e9ed29-560f-4914-ba27-05f3b6ac7706" alt=""><figcaption></figcaption></figure>

Taints configured to a Node Pool are displayed with a **Tainted** Status. Click the **Tainted** icon to display a window with a Taint List.

<figure><img src="https://2471407984-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F68cb0s9ce5UIUKWPuYs8%2Fuploads%2FHkS8K5btDgVsPbUXgqu1%2FNODES%202.png?alt=media&#x26;token=de9ce965-c35d-42b0-8298-bcedff04b659" alt=""><figcaption><p><strong>Taint List</strong> window</p></figcaption></figure>


---

# 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.duplocloud.com/docs/automation-platform/overview-1/gcp-services/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.
