> For the complete documentation index, see [llms.txt](https://dekube.gitbook.io/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://dekube.gitbook.io/docs/node-deployment-manual/minimum-requirements-and-deployment-conditions-for-the-cluster.md).

# Minimum Requirements and Deployment Conditions for the Cluster

Minimum Requirements for Deploying a Dekube Cluster with the Capability of Connecting External Clients

## 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/>" %}
