> 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/description-of-the-installation-process/creating-a-kubernetes-cluster-and-installing-dekube-components.md).

# Creating a Kubernetes cluster and installing DEKUBE components

## Creating a Kubernetes Cluster  <a href="#id-razvertyvanieklasteradekube-sozdanieklasterakubernetes" id="id-razvertyvanieklasteradekube-sozdanieklasterakubernetes"></a>

```sh
ansible-playbook playbooks/cluster.yaml -e ignore_assert_errors=yes
```

You can watch the installation video instructions [here](https://asciinema.org/a/C7qi2ovAHb6XAf3H8VBPQv3On).&#x20;

{% hint style="warning" %}
In case of errors, ensure that:

1. All updates are installed on the nodes;
2. Nodes are accessible over the network;
3. In the inventory, the **IP variable** specifies the **IP address** of the local **wg0c** interface of the node.
   {% endhint %}

## Please read before installing DEKUBE components <a href="#id-razvertyvanieklasteradekube-ustanovkakomponentovdekube" id="id-razvertyvanieklasteradekube-ustanovkakomponentovdekube"></a>

{% hint style="warning" %}
Each playbook declares variables to run it.

If a variable is empty, it must be set to its own value or the value specified in the example after the **#** sign

Without declaring these variables, errors will occur!
{% endhint %}

{% hint style="warning" %}
Each playbook also contains variables for **tolerations** and **affinity**. Set them in depending on your preferences for deploying services on specific nodes. If you want all DEKUBE services and components to run on master nodes, leave the variables as they are.&#x20;
{% endhint %}

## Installing DEKUBE components <a href="#id-razvertyvanieklasteradekube-ustanovkakomponentovdekube" id="id-razvertyvanieklasteradekube-ustanovkakomponentovdekube"></a>

```sh
ansible-playbook playbooks/dekube_components.yaml
```

Video instructions for installing DEKUBE components can be viewed [here](https://asciinema.org/a/7rAdeyZz8fRmoN9cW3ya8lv55).

## Installing DEKUBE Client Labeling

```
ansible-playbook playbooks/dekube_client_labeling.yaml
```

## Installing DEKUBE Pushbroker

```
ansible-playbook playbooks/dekube_pushbroker.yaml
```

The variables specified in the playbook need to be set:

```
dekube_blockchain_url: "" # https://explorer.dekube.net/api/v1
```

## Installing DEKUBE Billing <a href="#dekubeclusterdeployment-installingdekubepushbroker" id="dekubeclusterdeployment-installingdekubepushbroker"></a>

```
ansible-playbook playbooks/dekube_billing.yaml
```

The variables specified in the playbook need to be set:

```
dekube_backend_cabinet_public_key: "" # 2cQmXb8YzH4GiLBTh47XbFi1TvRf4Jsqaq5mqe7v9yTz54rpL5
dekube_blockchain_url: "" # https://explorer.dekube.net/api/v1
dekube_billing_s3_mounter_minio_host: "" # https://ml-storage.clive.tk:9000
```

After installing the **DEKUBE Billing** service, its public and private keys will be saved. The keys can be found in the **files** directory.

## Installing DEKUBE Client API

```
ansible-playbook playbooks/dekube_client_api.yaml
```

## Installing DEKUBE Dashboard <a href="#dekubeclusterdeployment-installingdekubepushbroker" id="dekubeclusterdeployment-installingdekubepushbroker"></a>

```
ansible-playbook playbooks/dekube_dashboard.yaml
```

The variables specified in the playbook need to be set:

```
blockchain_api_url: "" # explorer.dekube.net
```
