# Minimum Requirements and Deployment Conditions for the Cluster

## Minimum Requirements <a href="#dekubeclusterdeployment-minimumrequirements" id="dekubeclusterdeployment-minimumrequirements"></a>

For installation, virtual machines or physical servers with the following minimum specifications should be prepared:

1. Control-plane - 4 vCPU, 8 RAM, 64 GB;
2. Worker with NVIDIA GPUs - powerful as much as possible;
3. VPN - 4 vCPU, 4 RAM, 40 GB;
4. Ingres -  4 vCPU, 8 RAM, 40 GB.

During the installation process, the following components will be deployed:

* Cluster master nodes;
* Cluster worker nodes (Optionally);
* VPN node to ensure connection of external clients;
* Ingress node to publish the cluster's web services.

## Conditions That Must Be Met Before Deployment <a href="#id-razvertyvanieklasteradekube-usloviya" id="id-razvertyvanieklasteradekube-usloviya"></a>

1. 3 master nodes (**control-plane**) prepared and configured:
   * **ОС AlmaLinux 9+**;
   * User **root**;
   * The system should be updated (mandatory);
   * TCP port **6443** (**Kubernetes API-server**) should be opened to everyone;
   * Internet access;
   * Nodes should have external **IP**-addresses or should be in LAN;
   * Your public key should be in **authorized\_keys file** on all nodes;
2. &#x20;Optionally prepared working nodes (**worker**):
   * **AlmaLinux 9+**;
   * User **root**;
   * The system should be updated (mandatory);
   * TCP port **10250** (**Kubelet API**) should be opened to communicate with control-plane;
   * TCP ports **30000**-**32767** (**NodePort Services**) should be opened to everyone;
   * Internet access;
   * Nodes should have external **IP**-addresses or should be in the same LAN, where control-plane are;
   * Your public key should be in **authorized\_keys file** on all nodes;
3. Workstation with **Ansible** (**Python 3.9+**), from which the deployment of a cluster will be proceeded:
   * sudo user;
   * Python 3.9+;
   * Access to every machine involved in the deployment process;
4. Machine with **VPN**  (except **mainland China**):
   * **AlmaLinux 9+**;
   * Machine should have an external **IP**-address;
5. Machine for **Ingress**:
   * **AlmaLinux 9+**;
   * Machine should have an external **IP**-address.

**More details about the ports and protocols used:**

{% embed url="<https://kubernetes.io/docs/reference/networking/ports-and-protocols/>" %}


---

# 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://dekube.gitbook.io/docs/node-deployment-manual/minimum-requirements-and-deployment-conditions-for-the-cluster.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.
