# Hosts (VMs)

Once we have the Infrastructure (Networking, Kubernetes cluster, and other common configurations) and an environment (Tenant) set up, the next step is to create VMs. These could be for:

* Compute Engine virtual machines in GCP
* Worker Nodes (Docker Hosts) if built-in container orchestration is used.
* Regular nodes that are not part of any container orchestration, where a user manually connects and installs applications.

In the DuploCloud Portal, you can create GCE VMs, Node Pools, or BYOH (bring your own Hosts) virtual machine setups.

## Creating a GCE VM

To create a GCE VM (Virtual Machine), navigate to **Cloud Services** -> **Hosts** -> **GCE VM**, and click **Add**.

<figure><img src="https://2471407984-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F68cb0s9ce5UIUKWPuYs8%2Fuploads%2FUkCpf9bP6Ntelm3dr08m%2FNew%20GCP%20VM.png?alt=media&#x26;token=ec91a291-efe2-45bb-9761-62e067c5120c" alt=""><figcaption><p>The <strong>Add GCE Virtual Machine</strong> pane in the DuploCloud Portal</p></figcaption></figure>

## Creating a Node Pool

A GCP node pool is a group of VMs that share the same configuration, including machine type, disk size, and operating system. Node pools allow you to manage scaling and updates for groups of nodes collectively.

To create a GCP node pool, navigate to **Cloud Services** -> **Hosts** -> **Node Pool**, and click **Add**.

<figure><img src="https://2471407984-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F68cb0s9ce5UIUKWPuYs8%2Fuploads%2FGstq36uc0S63BjZ9k0fe%2Fnode%20pool.png?alt=media&#x26;token=d7d0cc96-a14f-41c1-a4c8-3b3c3f2a81f2" alt=""><figcaption><p>The <strong>Add Node Pool</strong> pane in the DuploCloud Portal</p></figcaption></figure>

## Creating a BYOH Host

While lower-level details such as IAM roles and security groups are abstracted, deriving instead from the Tenant, only the most application-centric inputs are required to set up Hosts.

<figure><img src="https://2471407984-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F68cb0s9ce5UIUKWPuYs8%2Fuploads%2FPtUlCVyMKiCS1Zy0hc9G%2Fscreenshot-qa-gcp_duplocloud_net-2024_09_22-18_30_09.png?alt=media&#x26;token=6e8cfb98-29c5-4943-a74e-9f37875cde20" alt=""><figcaption><p>The <strong>Add BYOH</strong> pane in the DuploCloud Portal</p></figcaption></figure>

Most of these inputs are optional and some are available as list box selections, set by the administrator in the Plan (for example, **Image ID**, in Host **Advanced Options**).

There is an additional parameter labeled **Fleet Type**. This is applicable if the VM is to be used as a host for [container orchestration](https://docs.duplocloud.com/docs/automation-platform/overview-1/container-deployments/container-orchestrators) by the platform. The choices are:

* **Linux Docker/Native**: To be used for hosting Linux containers using the Built-in Container orchestration.
* **None**: To be used for non-Container Orchestration purposes and contents inside the VM are self-managed by the user.

{% hint style="info" %}
If a VM is used for container orchestration, ensure that the **Image ID** corresponds to the Image in the container. Any name that begins with **Duplo** is an image that DuploCloud generates for Built-in container orchestration
{% endhint %}

## Increasing minimum ports per VM instance (GKE Standard)

You can increase the number of available ephemeral ports per GKE Standard VM instance in the DuploCloud Portal using Infrastructure systems settings. More ports help handle high volumes of network traffic, especially for applications that require many simultaneous connections.

To increase the minimum ports per VM for your Infrastructure:

1. Navigate to **Administrator** -> **Infrastructure**.
2. In the **NAME** column, select your Infrastructure name.
3. Select the **Settings** tab, and click **Add**. The **Infra - Set Custom Data** pane displays.<br>

   <div align="left"><figure><img src="https://2471407984-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F68cb0s9ce5UIUKWPuYs8%2Fuploads%2FWMoSZPUrd9U1ziYnX6jy%2Fminimum%20ports%20per%20VM.png?alt=media&#x26;token=8448000c-2113-43ce-83b4-f178fdaee630" alt="" width="375"><figcaption><p>The <strong>Infra - Set Custom Data</strong> pane</p></figcaption></figure></div>
4. From the **Setting Name** list box, select **GKE Minimum Ports Per VM**.
5. In the **Setting Value** field, enter the minimum number of ports you want or each VM.
6. Click **Set**. VMs in this Infrastructure will have at least the minimum number of ports configured.

## Configuring a friendly image name

Set a friendly name for an image in your DuploCloud Plan. This name will display in the **Image** list box when creating a GCE VM in the DuploCloud Portal.

1. From the DuploCloud Portal, navigate to **Administrator** -> **Plans**.
2. Select the Plan from the **NAME** column.
3. Select the **Images** tab, and click **Add**. The **Add Image** pane displays.

<div align="left"><figure><img src="https://2471407984-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F68cb0s9ce5UIUKWPuYs8%2Fuploads%2FgMsihSRpCx54kp2XRhuV%2Fadd%20image.png?alt=media&#x26;token=e326b771-549f-405b-842a-34c21de0515f" alt="" width="369"><figcaption><p>The <strong>Add Image</strong> pane</p></figcaption></figure></div>

4. Enter a friendly name and complete the remaining fields, as required. Click **Submit**. The image name will display in the **Image** list box when [creating a GCE VM](#gce-vm) under the Plan.
