Документация находится в разработке, может содержать неполную информацию.

Добавление узлов

После первоначальной установки кластер состоит только из одного узла — master-узла. Для того чтобы запускать виртуальные машины на подготовленных worker-узлах, их необходимо добавить в кластер.

Далее будет рассмотрено добавление двух worker-узлов. Более подробную информацию о добавлении статических узлов в кластер можно найти в документации.

Убедитесь, что все шаги подготовки выполнены (см. подготовка worker-узлов)

Создайте ресурс NodeGroup worker. Для этого выполните на master-узле следующую команду:

sudo -i d8 k create -f - << EOF
apiVersion: deckhouse.io/v1
kind: NodeGroup
metadata:
 name: worker
spec:
 nodeType: Static
 staticInstances:
   count: 2
   labelSelector:
     matchLabels:
       role: worker
EOF

Сгенерируйте SSH-ключ с пустой парольной фразой. Для этого выполните на master-узле следующую команду:

ssh-keygen -t rsa -f /dev/shm/caps-id -C "" -N ""

Создайте в кластере ресурс SSHCredentials. Для этого выполните на master-узле следующую команду:

sudo -i d8 k create -f - <<EOF
apiVersion: deckhouse.io/v1alpha1
kind: SSHCredentials
metadata:
  name: caps
spec:
  user: caps
  privateSSHKey: "`cat /dev/shm/caps-id | base64 -w0`"
EOF

Получите публичную часть сгенерированного ранее SSH-ключа (он понадобится на следующем шаге). Для этого выполните на master-узле следующую команду:

cat /dev/shm/caps-id.pub

На worker-узле создайте пользователя caps. Для этого выполните следующие команды, указав публичную часть SSH-ключа, полученную на предыдущем шаге:

export KEY='<SSH-PUBLIC-KEY>' # Укажите публичную часть SSH-ключа пользователя.
useradd -m -s /bin/bash caps
usermod -aG sudo caps
echo 'caps ALL=(ALL) NOPASSWD: ALL' | sudo EDITOR='tee -a' visudo
mkdir /home/caps/.ssh
echo $KEY >> /home/caps/.ssh/authorized_keys
chown -R caps:caps /home/caps
chmod 700 /home/caps/.ssh
chmod 600 /home/caps/.ssh/authorized_keys

В операционных системах семейства Astra Linux при использовании модуля мандатного контроля целостности Parsec сконфигурируйте максимальный уровень целостности для пользователя caps:

pdpl-user -i 63 caps

Создайте ресурcы StaticInstance. Выполните на master-узле следующие команды с указанием IP-адреса и уникального имени каждого узла:

export NODE_IP=<NODE-IP-ADDRESS> # Укажите IP-адрес узла, который необходимо подключить к кластеру.
export NODE_NAME=<NODE-NAME> # Укажите уникальное имя узла, например, dvp-worker-1.
sudo -i d8 k create -f - <<EOF
apiVersion: deckhouse.io/v1alpha1
kind: StaticInstance
metadata:
  name: "$NODE_NAME"
  labels:
    role: worker
spec:
  address: "$NODE_IP"
  credentialsRef:
    kind: SSHCredentials
    name: caps
EOF

Убедитесь, что все узлы кластера находятся в статусе Ready.

Выполните на master-узле следующую команду, чтобы получить список узлов кластера:

sudo -i d8 k get no

Пример вывода:

NAME            STATUS   ROLES                  AGE    VERSION
master-0        Ready    control-plane,master   40m    v1.29.10
dvp-worker-1    Ready    worker                 3m     v1.29.10
dvp-worker-2    Ready    worker                 3m     v1.29.10