如何在 Ubuntu 24.04 上安装 CockroachDB 集群如何在 Ubuntu 24.04 上安装 CockroachDB 集群如何在 Ubuntu 24.04 上安装 CockroachDB 集群如何在 Ubuntu 24.04 上安装 CockroachDB 集群
  • 文章
  • 正则表达式
    • 工具
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容
发表 admin at 2025年2月28日
类别
  • 未分类
标签

如何在 Ubuntu 24.04 上安装 CockroachDB 集群

本教程适用于这些操作系统版本

  • Ubuntu 24.04(高贵食蚁兽)
  • Ubuntu 22.04(果酱水母)
  • Ubuntu 20.04(焦窝)
  • Ubuntu 18.04(仿生海狸)

在此页面上

  1. 先决条件
  2. 设置用户
  3. 下载 CockroachDB 二进制文件
  4. 生成 TLS 证书

    1. 生成CA证书
    2. 生成客户端证书
    3. 生成服务器证书
  5. 将 CockroachDB 作为服务运行
  6. 创建 CockroachDB 集群
  7. 访问 CockroachDB 网络管理
  8. 结论

CockroachDB 是一个高度弹性和可扩展的分布式 SQL 数据库,旨在轻松处理大规模数据工作负载。当安装在 Ubuntu 上时,它提供了一个开源的云原生数据库解决方案,可提供强一致性、高可用性和水平可扩展性。 CockroachDB 的架构允许其在多个节点之间自动复制和分发数据,从而确保数据完整性并最大限度地减少硬件故障时的停机时间。它与 PostgreSQL 的兼容性使其成为寻求能够处理要求苛刻的应用程序的强大数据库系统的开发人员的多功能选择。在 Ubuntu 上安装 CockroachDB 允许用户利用这些高级功能,同时受益于 Ubuntu 操作系统的安全性和稳定性。 

CockroachDB 将您的数据存储在多个位置,从而使数据传输更快。此外,它还易于扩展,并为您的应用程序提供高可用性和容错能力。

在本指南中,我们将向您展示如何在 Ubuntu 24.04 服务器上安装 CockroachDB 集群。

先决条件

在进一步操作之前,请确保您具备以下条件:

  • 两到三台 Ubuntu 24.04 服务器。
  • 具有管理员权限的非 root 用户。

设置用户

在安装 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 二进制文件移动到 Ubuntu 系统上的 bin 目录中。

访问 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 版本:

蟑螂--版本

在下面的输出中,您可以看到 CockroachDB v24 已安装。

生成 TLS 证书

要创建 CockroachDB 集群,您必须生成 SSL/TLS 证书来保护集群。您需要跨服务器生成和分发CA证书,然后为用户和服务器生成证书。

在进一步操作之前,请在 server1 和 server2 上运行以下命令。这样,您将为字符串 TLS 证书创建目录 certs 和 private。

mkdir -p /opt/cockroachdb/{证书,私有}

生成CA证书

在本部分中,您将从 server1 生成 CA 证书,并通过 scp 或安全副本将其上传到 server2。

在 server1 上,运行以下命令来生成 CA(证书颁发机构)证书。将生成 CA 证书 ca.crt 和 ca.key。

cockroach 证书 create-ca
–certs-dir=/opt/cockroachdb/certs
–ca-key=/opt/cockroachdb/private/ca.key

现在,使用 scp 或安全副本将 ca.crt 和 ca.key 上传到 server2。确保您可以顺利登录 server2。

scp /opt/cockroachdb/private/ca.key [电子邮件受保护]:/opt/cockroachdb/private/
scp /opt/cockroachdb/certs/ca.crt [电子邮件受保护]:/opt/cockroachdb/certs/

生成客户端证书

生成 CA 证书后,您将生成用于管理 CockroachDB 集群的客户端证书。只有拥有此证书的用户才能连接和管理 CockroachDB 集群。

为用户 root 生成并签署客户端证书,运行以下 cockroach 命令。

cockroach 证书创建客户端 \
root \
--certs-dir=/opt/cockroachdb/certs \
--ca-key=/opt/cockroachdb/private/ca.key

生成服务器证书

在本部分中,您将在 server1 和 server2 上生成服务器证书。

在 server1 上,运行以下命令生成服务器证书。确保使用您的信息更改 IP 地址和主机名。

cockroach 证书创建节点 \
server1 \
192.168.5.15 \
localhost \
--certs-dir=/opt/cockroachdb/certs \
--ca-key=/opt /cockroachdb/private/ca.key

现在,移至 server2 并使用以下内容生成节点证书。使用 server2 信息更改 IP 地址和主机名。

cockroach 证书创建节点 \
server2 \
192.168.5.16 \
localhost \
--certs-dir=/opt/cockroachdb/certs \
--ca-key=/opt /cockroachdb/private/ca.key

最后,在 server1 和 server2 上运行以下命令,将 certs 和 private 目录的所有权更改为用户蟑螂。

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

将 CockroachDB 作为服务运行

生成 SSL/TLS 证书后,您将为每个 CockroachDB 服务器创建一个 systemd 服务文件。这允许您在后台运行 CockroachDB,并且您可以使用 systemctl 轻松管理它。

使用 nano 编辑器创建一个新的 systemd 服务文件 /etc/systemd/system/cockroachdb.service。

须藤纳米 /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 守护进程重新加载

然后启动并启用 server1 和 server2 上的 cockroachdb 服务。

sudo systemctl启用--now cockroachdb

最后,使用以下命令检查 cockroachdb 服务状态:

sudo systemctl 状态 cockroachdb

您将看到 cockroachdb 服务正在 server1 和 server2 上运行。

创建 CockroachDB 集群

因此,CockroachDB 在 server1 和 server2 上运行。您现在可以从这些服务器之一初始化 CockroachDB 集群。

在 server1 上,运行下面的 cockroach init 命令来初始化 CockroachDB 集群。如果成功,您将看到输出集群已成功初始化。

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

现在运行以下命令来检查集群初始化日志。如果 CockroachDB 集群正在运行,您将获得输出 CockroachDB node running。

grep ‘节点开始’ /opt/cockroachdb/cockroach-data/logs/cockroach.log -A 11

接下来,运行下面的 cockroach 命令来验证列表服务器和 CockroachDB 集群状态。

sudo cockroach 节点 --certs-dir=/opt/cockroachdb/certs --host=server1 ls
sudo cockroach 节点 --certs-dir=/opt/cockroachdb/certs --host=server1 状态

您可以在下面看到 server1 和 server2 在 CockroachDB 集群上可用,状态为 active。

现在运行下面的 cockroach sql 命令来访问 CockroachDB shell。您可以从这里管理 CockroachDB 集群中的数据库和用户。

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

运行以下查询以使用密码 p4ssw0rd 创建新的管理员用户 alice。

使用密码“p4ssw0rd”创建用户 alice;
将管理员权限授予 alice;

输入 quit 以退出 CockroachDB 服务器。

访问 CockroachDB 网络管理

默认情况下,CockroachDB Web 管理在端口 8080 上运行。这允许您通过 Web 浏览器管理 CockroachDB。

要访问 CockroachDB Web 管理仪表板,请使用 Web 浏览器访问 http://server1:8080。输入您的用户名和密码,然后点击登录。

如果您有正确的用户名和密码,您将看到 CockroachDB 管理仪表板,如下所示:

结论

恭喜!您已在 Ubuntu 24.04 服务器上完成了 CockroachDB 集群的安装。您还了解了如何通过命令行和 Web 管理仪表板检查 CockroachDB 集群的状态。最后,您通过 CockroachDB SQL shell 创建了一个管理员用户。

©2015-2025 艾丽卡 support@alaica.com