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 установлен.
Генерация сертификатов 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.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/
Генерация клиентского сертификата
После генерации сертификата ЦС вы сгенерируете клиентский сертификат для управления кластером 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
Теперь перейдите в раздел 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
Наконец, выполните приведенную ниже команду на обоих серверах 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.
Доступ к веб-администрированию CockroachDB
По умолчанию веб-администрация CockroachDB работает на порту 8080
. Это позволяет вам управлять CockroachDB через веб-браузер.
Чтобы получить доступ к панели веб-администрирования CockroachDB, посетите сайт http://server1:8080 с помощью веб-браузера. Введите свое имя пользователя и пароль, затем нажмите Войти.
Если вы ввели правильное имя пользователя и пароль, вы увидите панель администрирования CockroachDB, как показано ниже:
Заключение
Поздравляем! Вы завершили установку кластера CockroachDB на сервер Ubuntu 24.04. Вы также узнали, как проверять состояние кластера CockroachDB через командную строку и панель веб-администрирования. Наконец, вы создали пользователя-администратора в оболочке CockroachDB SQL.