Как установить кластер CockroachDB на Ubuntu 24.04

CockroachDB – это высокоустойчивая и масштабируемая распределенная база данных SQL, предназначенная для работы с большими объемами данных. При установке на Ubuntu она предоставляет решение для облачных баз данных с открытым исходным кодом, которое обеспечивает сильную согласованность, высокую доступность и горизонтальную масштабируемость. Архитектура CockroachDB позволяет автоматически реплицировать и распределять данные по нескольким узлам, обеспечивая целостность данных и минимизируя время простоя при аппаратных сбоях. Совместимость с PostgreSQL делает ее универсальным выбором для разработчиков, которым нужна надежная система баз данных, способная работать с требовательными приложениями. Установка CockroachDB на Ubuntu позволяет пользователям использовать эти расширенные возможности, получая при этом преимущества безопасности и стабильности операционной системы Ubuntu.

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

В этом руководстве мы покажем вам, как установить кластер CockroachDB на серверы Ubuntu 24.04.

Предварительные условия

Прежде чем продолжить, убедитесь, что у вас есть следующее:

  • Два или три сервера Ubuntu 24.04.
  • Некорневой пользователь с правами администратора.

Настройка пользователя

Перед установкой CockroachDB вы создадите нового системного пользователя и группу cockroach. Они будут использоваться для запуска службы CockroachDB.

Сначала выполните приведенную ниже команду, чтобы добавить нового системного пользователя cockroach с домашним каталогом /opt/cockroachdb.

sudo adduser –home /opt/cockroachdb –system –group cockroach

Теперь измените права собственности на /opt/cockroachdb на пользователя и группу cockroach со следующим:

sudo chown -R cockroach:cockroach /opt/cockroachdb

УСТАНОВИТЬ ПОЛЬЗОВАТЕЛЯ

Загрузка двоичного файла CockroachDB

Чтобы установить CockroachDB, вы можете легко скачать его со страницы GitHub и переместить бинарный файл CockroachDB в папку bin в каталог вашей системы Ubuntu.

Посетите страницу CockroachDB на GitHub и возьмите ссылку на последнюю версию. Загрузите ее с помощью wget следующим образом:

wget https://binaries.cockroachdb.com/cockroach-v24.1.1.linux-amd64.tgz

После завершения загрузки извлеките CockroachDB и переместите в папку cockroach двоичный файл в /usr/bin каталог.

tar -xf cockroach-v24.1.1.linux-amd64.tgz
cp -i cockroach-*/cockroach /usr/bin/

Теперь проверьте версию CockroachDB, выполнив следующие действия:

cockroach –version

В приведенном ниже выводе видно, что CockroachDB v24 установлен.

установить cockroachdb

Генерация сертификатов TLS

Чтобы создать кластер CockroachDB, необходимо сгенерировать SSL/TLS сертификат для защиты кластера. Вам нужно сгенерировать и распределить сертификаты ЦС по серверам, а затем сгенерировать сертификаты для пользователей и серверов.

Прежде чем продолжить, выполните приведенную ниже команду на обоих серверах server1 и server2. С помощью этого вы создадите каталоги certs и private для строковых сертификатов TLS.

mkdir -p /opt/cockroachdb/{certs,private}

Генерация сертификата CA

В этом разделе вы сгенерируете сертификат ЦС из файла server1 и загрузите его в server2 через scp или защищенную копию.

На server1, выполните приведенную ниже команду для генерации сертификатов CA (Certificate Authority). Сертификат ЦС ca.crt и ca.key будут сгенерированы.

таракан cert create-ca
-certs-dir=/opt/cockroachdb/certs
-ca-key=/opt/cockroachdb/private/ca.key

создать ca

Теперь загрузите файл ca.crt и ca.key к server2 с scp или защищенной копией. Убедитесь, что вы можете войти в систему server2 без проблем.

scp /opt/cockroachdb/private/ca.key [email protected]:/opt/cockroachdb/private/
scp /opt/cockroachdb/certs/ca.crt [email protected]:/opt/cockroachdb/certs/

скопировать ca на сервер2

Генерация клиентского сертификата

После генерации сертификата ЦС вы сгенерируете клиентский сертификат для управления кластером CockroachDB. Только пользователи с этим сертификатом смогут подключаться и управлять кластером CockroachDB.

Чтобы сгенерировать и подписать клиентский сертификат для пользователя rootВыполните следующие действия cockroach команду.

cockroach cert create-client \
корень \
–certs-dir=/opt/cockroachdb/certs \
–ca-key=/opt/cockroachdb/private/ca.key

создать сертификат клиента

Создание сертификатов сервера

В этом разделе вы сгенерируете сертификаты сервера для обоих server1 и server2.

На server1, выполните приведенную ниже команду, чтобы сгенерировать сертификат сервера. Не забудьте изменить IP-адрес и имя хоста на свои данные.

cockroach cert create-node \
сервер1 \
192.168.5.15 \
localhost \
–certs-dir=/opt/cockroachdb/certs \
–ca-key=/opt/cockroachdb/private/ca.key

создать сертификат server1

Теперь перейдите в раздел server2 и сгенерируйте сертификат узла, выполнив следующие действия. Измените IP-адрес и имя хоста с помощью server2 информацией.

cockroach cert create-node \
сервер2 \
192.168.5.16 \
localhost \
–certs-dir=/opt/cockroachdb/certs \
–ca-key=/opt/cockroachdb/private/ca.key

создать сертификат server2

Наконец, выполните приведенную ниже команду на обоих серверах server1 и server2 чтобы изменить право собственности на certs и private каталоги для пользователя cockroach.

sudo chown -R cockroach:cockroach /opt/cockroachdb/{certs,private}

Запуск CockroachDB в качестве службы

После того как вы сгенерировали сертификаты SSL/TLS, создайте файл службы systemd для каждого сервера CockroachDB. Это позволит вам запускать CockroachDB в фоновом режиме, и вы сможете легко управлять им с помощью функции systemctl.

Создайте новый служебный файл systemd /etc/systemd/system/cockroachdb.service с nano редактором.

sudo nano /etc/systemd/system/cockroachdb.service

Для server1, вставьте конфигурацию, приведенную ниже. На --advertise-addr , введите server1 IP-адрес. В --join введите оба значения server1 и server2 IP-адреса.

[Unit]
Description=Cockroach Database cluster node
Requires=network.target

[Service]
Type=notify
WorkingDirectory=/opt/cockroachdb
ExecStart=/usr/bin/cockroach start --certs-dir=/opt/cockroachdb/certs --advertise-addr=192.168.5.15 --join=192.168.5.15,192.168.5.16
TimeoutStopSec=60
Restart=always
RestartSec=10
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=cockroach
User=cockroach

[Install]
WantedBy=default.target

Для server2, вставьте конфигурацию, приведенную ниже. На --advertise-addr введите server2 IP-адрес. В --join введите оба значения server1 и server2 IP-адреса.

[Unit]
Description=Cockroach Database cluster node
Requires=network.target

[Service]
Type=notify
WorkingDirectory=/opt/cockroachdb
ExecStart=/usr/bin/cockroach start --certs-dir=/opt/cockroachdb/certs --advertise-addr=192.168.5.16 --join=192.168.5.15,192.168.5.16
TimeoutStopSec=60
Restart=always
RestartSec=10
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=cockroach
User=cockroach

[Install]
WantedBy=default.target

Сохраните и выйдите из файла, когда закончите.

Теперь запустите программу systemctl чтобы перезагрузить менеджер systemd и применить внесенные изменения.

sudo systemctl daemon-reload

Затем запустите и включите cockroachdb службу на server1 и server2.

sudo systemctl enable –now cockroachdb

служба настройки

Наконец, проверьте cockroachdb состояние службы с помощью следующих действий:

sudo systemctl status cockroachdb

Вы увидите cockroachdb служба запущена на server1 и server2.

контрольная служба

Создание кластера CockroachDB

Итак, CockroachDB запущен на обоих server1 и server2. Теперь вы можете инициализировать кластер CockroachDB с одного из этих серверов.

На server1, запустите программу cockroach init команду ниже для инициализации кластера CockroachDB. В случае успеха вы увидите вывод Cluster successfully initialized.

cockroach init –certs-dir=/opt/cockroachdb/certs –host=192.168.5.15:26257

Теперь выполните приведенную ниже команду, чтобы проверить журнал инициализации кластера. Если кластер CockroachDB запущен, вы получите следующее сообщение CockroachDB node starting.

grep ‘node starting’ /opt/cockroachdb/cockroach-data/logs/cockroach.log -A 11

инициализировать кластер

Далее выполните команду cockroach команду ниже, чтобы проверить список серверов и состояние кластера CockroachDB.

sudo cockroach node –certs-dir=/opt/cockroachdb/certs –host=server1 ls
sudo cockroach node –certs-dir=/opt/cockroachdb/certs –host=server1 status

Ниже вы можете увидеть, что server1 и server2 доступны на кластере CockroachDB со статусом active.

проверка состояния кластера

Теперь выполните команду cockroach sql команду ниже, чтобы получить доступ к оболочке CockroachDB. Отсюда вы можете управлять базой данных и пользователями в кластере CockroachDB.

sudo cockroach sql –certs-dir=/opt/cockroachdb/certs –host=server1:26257

Выполните следующие запросы для создания нового пользователя admin alice с паролем p4ssw0rd.

CREATE USER alice WITH PASSWORD ‘p4ssw0rd’;
GRANT admin TO alice;

Введите quit для выхода из сервера CockroachDB.

создать пользователя admin

Доступ к веб-администрированию CockroachDB

По умолчанию веб-администрация CockroachDB работает на порту 8080. Это позволяет вам управлять CockroachDB через веб-браузер.

Чтобы получить доступ к панели веб-администрирования CockroachDB, посетите сайт http://server1:8080 с помощью веб-браузера. Введите свое имя пользователя и пароль, затем нажмите Войти.

панель управления

Если вы ввели правильное имя пользователя и пароль, вы увидите панель администрирования CockroachDB, как показано ниже:

приборная панель

Заключение

Поздравляем! Вы завершили установку кластера CockroachDB на сервер Ubuntu 24.04. Вы также узнали, как проверять состояние кластера CockroachDB через командную строку и панель веб-администрирования. Наконец, вы создали пользователя-администратора в оболочке CockroachDB SQL.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *