Руководтсво администратора/разработчика

Документация

Установка

Cluster (Yandex.Cloud)


Кластер (Yandex.Cloud)

Настройка облачного использования в режиме кластера Buildbox

Что делаем?

Создаем кластер из трех хостов (серверов): 1 Менеджер + 2 Клиента. Менеджер будет выступать в качестве прокси сервера для всех входящих запросов к серверам, запущенным в кластере (его IP-адрес используется для настройки DNS-записей для доменных имен серверов).

Данный вид настроки позволит автоматически балансировть нагрузку между разными buildbox-проектами, автоматически добалять необходимое количество сервисов при увеличении нагрузки, задействовать все неиспользуемые аппаратные мощности, подключенных в кластер Клиентов.

Обратите внимание! Менеджер также как и Клиент используется для работы проектов, помимо своих фукнций поддержания работоспособности кластера. В случае выхода из строя Менеджера, оставшиеся Клиенты выбирают Менеджера и восстанавливают работоспособность кластера Buildbox.

Подготовка

Для настройки нам необходимо создать и настроить учетную запись Yandex.Cloud и создать три виртуальные машины. Как создать виртуальные машины на Yandex.Cloud смотрите тут.

Рекомендуем: три виртуальные машины, к Менеджеру подключен сетевой диск, который будет монтирован на все Клиенты.

Как это сделать

1. Настроим сетевой диск на Менеджере.

После создания виртуальных машин и подсоединения сетевого диска к Менеджеру необходимо настроить общий доступ к данному разделу.

Для этого необходимо:

  1. Выбираем/Создаем рабочей директорию (по-умолчанию, рекомендуем монтировать в директорию /opt)
    sudo mkdir buildbox
  2. Монтируем диск (монтируем в директорию /buildbox добавленный диск)
    sudo mount -v /dev/vdb /opt/ 
  3. Настроим прав доступа
    sudo groupadd buildbox    - создали группу buildbox
    sudo usermod -aG buildbox your_user     - добавили в эту группу пользователя
    sudo chgrp buildbox /opt - меняем группу владельцев для /buildbox на buildbox
    chmod g+rw /opt добавляем права для группы (разрешение на чтение и запись)

2. Подключаем сетевой диск

Мы рекомендуем настраивать NFS-сервер, на котором будет размещена общая папка и клиенты, которые могут монтировать сетевую папку как обычный диск в системе. В отличие от других протоколов NFS предоставляет прозрачный доступ к удаленным файлам. Клиенты будут видеть файлы как в обычной файловой системе и работать с ними как с локальными файлами.

На Менеджере необходимо:

  1. Установить сервер NFS
    sudo apt install nfs-kernel-serve
  2. Добавим nfs в автозагрузку
    sudo systemctl enable nfs
  3. Изменить файл /etc/exports
    sudo nano /etc/exports
  4. Добавить строки 
    /opt/buildbox host_client1(rw,sync,no_subtree_check)
    /opt/buildbox host_client2(rw,sync,no_subtree_check)

    где: host_client1 - IP-адрес или имя Клиента1 и Клиента2, которым будет разрешен доступ.
  5. Сохранить и закрыть файл
    Нажать Ctrl+O и Ctrl+X
  6. Перезагрузить сервис
    sudo /etc/init.d/portmap restart

На Клиенте необходимо:

  1. Установить клиента NFS
    sudo apt install nfs-common
  2. Примонтировать сетевой диск
    sudo mount host_manager:/opt/buildbox/ /opt/
    Где host_manager - IP-адрес или имя Менеджера, на котором находится диск, который мы монтируем.

3. Копируем файлы Buildbox Platform

Buildbox Platform поставляется в виде заархивированного набора файлов, который вы можете собрать тут

Выберите необходимую платформу для установки и набор шаблонов дизайна.

Скачайте файл и разархивируйте его в рабочую директорию, которую мы сделали доступной для Клиентов ранее.

4. Устанавливаем дополнительные библиотеки

В сборку Buildbox Platform включен драйвер взаимодействия с базой данных Reindexer (используется в качестве внешнего кеша), который частично использует язык C++ и требует наличие библиотеки GLIBC_2.28. Для установки рекомендуем использовать котовый исполняемый файл upd_glibc.sh, подготовленный разработчиками Reindexer, которые находится в корне рабочей директории.

Для запуска необходимо выполнить команду

  1. ./upd_glibc.sh

Если вы не планируете использоваь встроенный кеширующий сервис, то соберите сборку Buildbox Platform без него. В таком случае, установку дополнительной библиотеки производить не надо.

5. Стартуем загрузчики на Клиентах

После разархивирования на Клиентах перейдите рабочую директорию и выполните команду:

 

6. Настройка базы данных

Buildbox использует систему управления данными RiderDB, которая может использовать целый набор баз данных в качестве основной СУБД хранения, предоставляя более высосоуровневое API для работы с данными в методологии графо-ориентированной модели данных.
Инсталяция Buildbox включает сервис Riderdb для работы которого необходимо установить любую из поддерживаемых баз данных или использовать SQLite базу данных (по-умолчанию)
О поддериживаемых базах данных и подключении к ним вы можете прочитать здесь

 

7. Установка кеш-сервера

Для работы с большим количеством запросов мы рекомендуем устанавливать кеширующий сервер. В сборку Buildbox включен встроенный механизм для работы с сервером Reindexer. Об установке Reindexer вы можете прочитать здесь