# 1. Steps To Create Kubernetes Cluster on HI GIO Portal

## <mark style="color:green;">**Overview**</mark> <a href="#overview" id="overview"></a>

This document explains creating a Kubernetes cluster on HI GIO, including **selecting configurations**, **deploying nodes**, and initializing **the control plane**.

## <mark style="color:green;">**Procedure**</mark> <a href="#procedure" id="procedure"></a>

{% tabs %}
{% tab title="I. Pre-requisites:" %}

* Create a network for the cluster with available Static IP Pools.
* Create firewall and SNAT rules to ensure VMs in the cluster can access the internet.
* Make sure HI GIO Load Balancing is enabled.
* Make sure there is at least one available public IP.
  {% endtab %}

{% tab title="II. Procedure" %}
**Step 1:** Log in to the HI GIO portal with tenant account > Click More > Kubernetes Container Clusters

<figure><img src="/files/CUfYpGyiHGxVhbJEFMep" alt=""><figcaption></figcaption></figure>

**Step 2:** Click **NEW** and follow the creation steps to complete the creation process to create a new HI GIO Kubernetes cluster.

* Click **NEXT**

  <div align="left"><figure><img src="/files/Liz2NtimI228D9X8IDtl" alt=""><figcaption></figcaption></figure></div>
* Enter the name of the cluster and select a Kubernetes version > **NEXT.**

<figure><img src="/files/3MjyMRobUlu2yi0cbZWw" alt=""><figcaption></figcaption></figure>

* Click **NEXT** in step 3.

{% hint style="info" %}
Attaching clusters to Tanzu Mission Control is currently not supported.
{% endhint %}

<figure><img src="/files/mE4yxDKQUUa2Er1RECWM" alt=""><figcaption></figcaption></figure>

* Select oVDC and Network for nodes > **NEXT.**

<figure><img src="/files/OQoWwGxzA6w7xnUkIQQt" alt=""><figcaption></figcaption></figure>

* In the Control Plane window, select the number of nodes and disk size, and optionally select a sizing policy, a placement policy, and a storage profile, and click **NEXT.**

<figure><img src="/files/V2QCnfala0jSggwUJd0C" alt=""><figcaption></figcaption></figure>

| Configuration field | Description                                                                                                                                                                                                                            |
| ------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Number of Nodes     | <ul><li>Non-HA: <strong>1</strong></li><li>HA: <strong>3</strong></li></ul>                                                                                                                                                            |
| Disk Size (GB)      | The minimum allowed is **20 GB**                                                                                                                                                                                                       |
| Sizing Policy       | <ul><li><strong>TKG medium</strong>: If the number of Worker nodes is <strong>less than or equal</strong> to 10 nodes.</li><li><strong>TKG large</strong>​: If the number of Worker nodes <strong>exceeds</strong> 10 nodes.</li></ul> |
| Placement Policy    | Leave blank. We do not apply a placement policy for the HI GIO Kubernetes cluster.                                                                                                                                                     |
| Storage Policy      | Select an available storage policy.                                                                                                                                                                                                    |

* Configure worker pools setting > **NEXT**

<figure><img src="/files/ZaEAlsRWUuHVAZvJfmlV" alt=""><figcaption></figcaption></figure>

| Configuration field | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Name                | Enter the worker pool name.                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| Number of Nodes     | Enter the number of nodes of the worker pool.                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| Disk Size (GB)      | The minimum allowed is **20 GB**                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| Sizing Policy       | <ul><li><strong>TKG small:</strong> Small VM sizing policy for a Kubernetes cluster node (2 CPU, 4GB memory)</li><li><strong>TKG medium</strong>: Medium VM sizing policy for a Kubernetes cluster node (2 CPU, 8GB memory)</li><li><strong>TKG large</strong>​: Large VM sizing policy for a Kubernetes cluster node (4 CPU, 16GB memory)</li><li><strong>TKG extra-large</strong>: Extra-large VM sizing policy for a Kubernetes cluster node (8 CPU, 32GB memory)</li></ul> |
| Placement Policy    | Leave blank. We do not apply a placement policy for HI GIO Kubernetes cluster.                                                                                                                                                                                                                                                                                                                                                                                                 |
| Storage Policy      | Select an available storage policy.                                                                                                                                                                                                                                                                                                                                                                                                                                            |

{% hint style="info" %}
&#x20;**(Optional)** To create additional worker node pools, click **Add New Worker Node Pool** and configure worker node pool settings.
{% endhint %}

* Configure storage class > **NEXT**

<figure><img src="/files/28NabxIQe7TNzVfSbmPC" alt=""><figcaption></figcaption></figure>

| **Configuration field**  | **Description**                                                                                                                                                                                                                                                                                                                                                                 |
| ------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Select a Storage Profile | Select one of the available storage profiles.                                                                                                                                                                                                                                                                                                                                   |
| Storage Class Name       | <p>The name of the default Kubernetes storage class. This field can be any user-specified name with the following constraints based on Kubernetes requirements:</p><ul><li>Contain a maximum of 63 characters</li><li>Contain only lowercase alphanumeric characters or hyphens</li><li>Start with an alphabetic character</li><li>End with an alphanumeric character</li></ul> |
| Reclaim Policy           | <ul><li>Delete policy: This policy deletes the PersistentVolume object when the PersistentVolumeClaim is deleted.</li><li>Retain policy: This policy does not delete the volume when the PersistentVolumeClaim is deleted; the volume can be reclaimed manually.</li></ul>                                                                                                      |
| Filesystem               | <ul><li>xfs</li><li>ext4: This is the default filesystem used for the storage class.</li></ul>                                                                                                                                                                                                                                                                                  |

* Configure Kubernetes network > **NEXT**

<figure><img src="/files/OsW9gXmqpDDs14cgXSyw" alt=""><figcaption></figcaption></figure>

| Option                | Description                                                                                                                                                                                                                                                       |
| --------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Pods CIDR**         | Specifies a range of IP addresses to use for Kubernetes pods. The default value is 100.96.0.0/11. The pod subnet size must be equal to or larger than /24.                                                                                                        |
| **Services CIDR**     | Specifies a range of IP addresses to use for Kubernetes services. The default value is 100.64.0.0/13.                                                                                                                                                             |
| **Control Plane IP**  | You can specify your own IP address as the control plane endpoint. You can use an external IP from the gateway or an internal IP from a subnet different from the routed IP range.                                                                                |
| **Virtual IP Subnet** | You can specify a subnet CIDR from which one unused IP address is assigned as a Control Plane Endpoint. The subnet must represent a set of addresses in the gateway. The same CIDR is also propagated as the subnet CIDR for the ingress services on the cluster. |

{% hint style="info" %}
You should enter the available public IP into the Control Plane IP
{% endhint %}

* Enable `Auto Repair on Errors` and `Node Health Check` > **NEXT**

<figure><img src="/files/719dJKOmuNLACLZR3nXu" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
**Auto Repair on Errors**: If errors occur before this cluster becomes available, the CSE Server will automatically attempt to repair the cluster.

**Node Health Check**: Unhealthy nodes will be remediated after this cluster becomes available according to unhealthy node conditions and remediation rules.
{% endhint %}

* Review all cluster information and click **FINISH** to create the cluster.

<figure><img src="/files/nMCtOOJTPNeuAS2qCxGh" alt=""><figcaption></figcaption></figure>

**Step 3:** Wait until the cluster status is **Available,** then click **DOWNLOAD KUBE CONFIG** to download the kubeconfig file

<figure><img src="/files/R8NE2xXLuNaTeBv2lKnw" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
Please configure the VPC firewall to allow access to the **Control Plane IP** using port **6443.**
{% endhint %}
{% endtab %}
{% endtabs %}


---

# 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.higiocloud.vn/hi-gio-kubernetes/1.-steps-to-create-kubernetes-cluster-on-hi-gio-portal.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.
