To deploy a fault-tolerant cluster based on Deckhouse, consider the example of preliminary setup using the *.dk1.internal cluster and computers with corresponding IP addresses:
Main nodes:
deckhouse-master1.dk1.internal - <IP address master1>.
deckhouse-master2.dk1.internal - <IP address-master2>.
deckhouse-master3.dk1.internal - <IP address master3>.
Work nodes:
deckhouse-worker1.dk1.internal - <IP address worker1>.
deckhouse-worker2.dk1.internal - <IP address worker2>.
deckhouse-worker3.dk1.internal - <IP address worker3>.
deckhouse-worker4.dk1.internal - <IP address worker4>.
IMPORTANT. To avoid the split-brain error, the number of main nodes should be uneven.
For preliminary setup of the cluster in Ubuntu OS:
Set names according to domain on each cluster node:
# hostnamesctl set-hostname <main node/work node>
For example:
# hostnamesctl set-hostname deckhouse-master1.dk1.internal
Set up password-free access to the first main node by means of SSH key on the computer used for cluster initialization:
Generate the SSH key:
# ssh-keygen
Copy the generated SSH key to the main node:
ssh-copy-id <user name>@<IP address master1>
In the <user name> substitution specify the account used for access setup.
For example:
ssh-copy-id fmp@192.168.200.00
Check password-free access and make sure that the password is not requested:
ssh fmp@<IP address master1>
After executing the operations the preliminary setup of the cluster is finished.
Next, install the Helm package manager on each main node and install Deckhouse according to the Deckhouse documentation.
To install the Helm package manager on each main node:
curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3
chmod 700 get_helm.sh
./get_helm.sh
NOTE. Use the Helm package manager 3.5 or later.
See also:
Preparation and Deployment of Fault-Tolerant Cluster Based on Deckhouse | Setting Up Persistent Volume Storage Sections