CockroachDB · 6 min read · Dec 19, 2025
Как развернуть защищенный кластер CockroachDB на сервере Ubuntu

CockroachDB — это облачная и открытая SQL база данных, разработанная CockroachLabs. Это распределенная SQL база данных, построенная на транзакционном и ключ-значение хранилище. CockroachDB — это масштабируемая SQL база данных, которая была сопоставлена с базой данных Google Spanner. Она основана на протоколе PostgreSQL и готова к производству.
В этом руководстве мы покажем вам, как настроить защищенный кластер CockroachDB на Ubuntu 18.04. Вы узнаете, как настроить защищенный кластер, получить доступ к панели управления CockroachDB, создать нового пользователя в CockroachDB, создать и показать базу данных в CockroachDB.
Предварительные требования
Для запуска кластера CockroachDB нам нужно несколько серверов. Мы будем использовать три сервера Ubuntu 18.04 с деталями имени хоста и IP-адреса, как указано ниже.
node1 10.5.5.21
node2 10.5.5.22
node3 10.5.5.23Что мы будем делать?
- Настроить NTP сервер с Chrony systemctl restart chrony
systemctl enable chrony - Скачать и установить CockroachDB
- Создать сертификаты
- Инициализировать кластер CockroachDB
- Добавить узел в кластер CockroachDB
- Тестирование
Шаг 1 - Настройка NTP сервера с Chrony
Во-первых, мы должны синхронизировать время между серверами в кластере. Поэтому нам нужно установить пакет NTP на все серверы. Для этого руководства мы будем использовать chrony.
Установите пакет chrony на все серверы, используя следующую команду.
sudo apt install chrony -yПосле завершения установки перейдите в каталог конфигурации ‘/etc/chrony/‘ и отредактируйте файл ‘chrony.conf’.
cd /etc/chrony/
vim chrony.confУдалите пул NTP по умолчанию и замените его на пул вашей страны.
pool 0.id.pool.ntp.org iburst maxsources 4
pool 1.id.pool.ntp.org iburst maxsources 1
pool 2.id.pool.ntp.org iburst maxsources 1
pool 3.id.pool.ntp.org iburst maxsources 2Сохраните и закройте.
Теперь перезапустите службу chrony, а затем добавьте chrony в автозагрузку.
systemctl restart chrony
systemctl enable chronyВ результате время между серверами будет синхронизировано с теми же NTP пулами серверов.

Шаг 2 - Скачать и установить CockroachDB
На этом шаге мы загрузим и установим CockroachDB на все серверы. Поэтому выполните все команды на всех ваших серверах кластера.
Создайте новый каталог с именем ‘binary’ и перейдите в него.
mkdir -p binary; cd binaryСкачайте сжатый файл двоичного кода cockroachdb для Linux и извлеките его.
wget https://binaries.cockroachdb.com/cockroach-latest.linux-amd64.tgz
tar -xvzf cockroach-latest.linux-amd64.tgzТеперь скопируйте двоичный файл ‘cockroach’ в каталог ‘/etc/local/bin’.
cp cockroach-*/cockroach /usr/local/bin/После этого вы можете выполнить команду ‘cockroach’ и изучить основные команды для получения справки, проверки версии и т.д.
cockroach versionCockroachDB была установлена на всех серверах.

Шаг 3 - Создание сертификатов
Теперь мы собираемся сгенерировать несколько сертификатов для защиты кластера CockroachDB. Мы можем использовать OpenSSL или командную строку cockroach для генерации файлов сертификатов.
Мы сгенерируем CA сертификат и ключ, а также сертификат для пользователя root и сертификат для каждого узла в кластере.
Создайте каталог сертификатов ‘~/.cockroach-certs’ и переменную окружения для него.
mkdir -p ${HOME}/.cockroach-certs/
export COCKROACH_CERTS_DIR='${HOME}/.cockroach-certs/'Создание CA и копирование на все узлы
На сервере ‘node1’ создайте центр сертификации, используя команду cockroach ниже.
cockroach cert create-ca \
--certs-dir=$COCKROACH_CERTS_DIR \
--ca-key=$COCKROACH_CERTS_DIR/ca.keyИ вы получите ‘ca.key’ и ‘ca.crt’ в каталоге ‘~/.cockroach-certs’.

После этого скопируйте сертификат CA и ключ на все серверы, используя команду scp, как показано ниже.
Скопируйте на сервер ‘node2’.
scp ~/.cockroach-certs/ca.crt ~/.cockroach-certs/ca.key [email protected]:~/.cockroach-certs/Скопируйте на сервер ‘node3’.
scp ~/.cockroach-certs/ca.crt ~/.cockroach-certs/ca.key [email protected]:~/.cockroach-certs/Теперь убедитесь, что сертификат CA и ключ загружены на все серверы.
Создание клиентских сертификатов
После создания центра сертификации нам нужно сгенерировать клиентский сертификат. Клиентский сертификат будет использоваться для защиты связи между встроенной SQL оболочкой и кластером.
Сгенерируйте клиентский сертификат на всех серверах, используя следующую команду cockroach.
cockroach cert create-client \
root \
--certs-dir=$COCKROACH_CERTS_DIR \
--ca-key=$COCKROACH_CERTS_DIR/ca.keyИ вы получите клиентские сертификаты для пользователя root ‘client.root.crt’ и ‘client.root.key’.
Создание серверных сертификатов
Серверные сертификаты будут использоваться для защиты связи между серверами в кластере CockroachDB. И для того, чтобы присоединиться к защищенному кластеру, вам нужно сгенерировать серверные сертификаты для каждого сервера.
На ‘node1’ создайте серверный сертификат, используя следующую команду.
cockroach cert create-node \
localhost \
$(hostname) \
10.5.5.21 \
--certs-dir=$COCKROACH_CERTS_DIR \
--ca-key=$COCKROACH_CERTS_DIR/ca.keyИзмените IP-адрес на свой.

На ‘node2’ создайте серверный сертификат, используя следующую команду.
cockroach cert create-node \
localhost \
$(hostname) \
10.5.5.22 \
--certs-dir=$COCKROACH_CERTS_DIR \
--ca-key=$COCKROACH_CERTS_DIR/ca.keyИзмените IP-адрес на свой.

На ‘node3’ создайте серверный сертификат, используя следующую команду.
cockroach cert create-node \
localhost \
$(hostname) \
10.5.5.23 \
--certs-dir=$COCKROACH_CERTS_DIR \
--ca-key=$COCKROACH_CERTS_DIR/ca.keyИзмените IP-адрес на свой.
Теперь вы получите серверные сертификаты ‘node.crt’ и ‘node.key’ в каталоге ‘~/.cockroach-certs’.
Шаг 4 - Запуск защищенного кластера CockroachDB
После создания нескольких SSL сертификатов мы инициализируем защищенный кластер CockroachDB с сервера ‘node1’.
Выполните следующую команду на сервере ‘node1’.
cockroach start \
--background --certs-dir=$COCKROACH_CERTS_DIR \
--advertise-host=10.5.5.21 --listen-addr=10.5.5.21Убедитесь, что нет ошибок.
После этого проверьте статус узла кластера, выполнив команду cockroach ниже.
cockroach node status --host=10.5.5.21Вы получите узел1 с IP-адресом 10.5.5.21, работающий с CockroachDB v2.1.6.
Шаг 5 - Добавление узла в кластер
Далее мы добавим ‘node2’ и ‘node3’ в защищенный кластер CockroachDB.
Убедитесь, что сертификат CA и серверный сертификат находятся в каталоге ~/.cockroach-certs.
ls -lah ~/.cockroach-certs/Теперь выполните следующую команду, чтобы добавить ‘node2’ с IP-адресом 10.5.5.22. Добавьте его в кластер CockroachDB.
cockroach start \
--background --certs-dir=$COCKROACH_CERTS_DIR \
--advertise-host=10.5.5.22 --listen-addr=10.5.5.22 \
--join=10.5.5.21:26257После завершения перейдите на ‘node3’ и выполните следующую команду.
cockroach start \
--background --certs-dir=$COCKROACH_CERTS_DIR \
--advertise-host=10.5.5.23 --listen-addr=10.5.5.23 \
--join=10.5.5.21:26257Измените IP-адрес на свой.
Теперь ‘node2’ и ‘node3’ были добавлены в защищенный кластер CockroachDB. Проверьте это с сервера ‘node1’, используя следующую команду.
cockroach node status --host=10.5.5.21И вы получите три разных сервера, работающих с cockroach v2.1.6.

Шаг 6 - Тестирование
На этом последнем шаге мы протестируем установку нашего защищенного кластера CockroachDB, получив доступ к панели управления и протестировав репликацию базы данных между серверами.
Тестирование панели управления CockroachDB
CockroachDB предоставляет красивый интерфейс панели управления для мониторинга кластера. Откройте ваш веб-браузер и введите IP-адрес сервера, за которым следует порт 8080.
И вы получите страницу входа в CockroachDB, как показано ниже.

Чтобы войти в панель управления, нам нужно создать пользователя в базе данных CockroachDB.
Вернитесь в терминал ‘node1’ и войдите в SQL оболочку cockroachdb, используя следующую команду.
cockroach sql --certs-dir=$COCKROACH_CERTS_DIR \
--host=10.5.5.21Теперь создайте нового пользователя с именем ‘hakase’ с паролем ‘hakase-labs123@#’, используя следующий запрос.
CREATE USER hakase WITH PASSWORD 'hakase-labs123@#';Наберите ‘ q’ для выхода из SQL оболочки CockroachDB.

Теперь вернитесь в веб-браузер и введите пользователя ‘hakase’ с паролем ‘hakase-labs123@#’ на странице входа и нажмите кнопку Войти.

И вы получите панель управления CockroachDB, как показано ниже.

Тестирование репликации базы данных
Теперь мы собираемся протестировать репликацию базы данных между серверами в кластере CockroachDB, создав базу данных на ‘node1’ и проверив базу данных с ‘node2’ или ‘node3’.
На ‘node1’ получите доступ к SQL оболочке CockroachDB, используя следующую команду.
cockroach sql --certs-dir=$COCKROACH_CERTS_DIR \
--host=10.5.5.21Создайте две базы данных ‘hakasedb’ и ‘hakasedb2’, используя следующие запросы.
create database hakasedb;
create database hakasedb2;Теперь выведите список баз данных и убедитесь, что вы получили две базы данных, которые мы только что создали.
show databases;
Затем войдите на сервер ‘node2’ и получите доступ к SQL оболочке CockroachDB, используя следующую команду.
cockroach sql --certs-dir=$COCKROACH_CERTS_DIR \
--host=10.5.5.22Проверьте список баз данных.
show databases;И вы увидите, что ‘hakasedb’ и ‘hakasedb2’ были реплицированы на сервер ‘node2’.

И, наконец, установка и конфигурация защищенного кластера CockroachDB с использованием Ubuntu 18.04 была успешно завершена.
Get new posts in your inbox
No spam. Unsubscribe anytime.