本文将向大家介绍如何在一台机器上(可以是物理机,也可以是一台虚拟机)创建secure多节点CockroachDB集群(在示例中我们将创建一个具有3节点的CRDB数据库集群)。这里所说的secure是指集群的各节点之间以及client与集群节点之间使用TLS证书对通信进行加密。在生产环境下建议创建secure多节点CockroachDB集群。
环境说明
一个虚拟机:8G Mem 、4 VCores
操作系统:CentOS 7.4
操作系统用户: crdb 用户组:newsql 该用户具有sudo权限(假设读者已经掌握在Linux上创建用户和组以及设置权限的方法,本文不进行描述)
CockroachDB版本:2.0.6
下面开始介绍具体的创建方法
1. 创建目录
我们需要在操作系统的文件系统中创建一个目录,用于存放CRDB使用的文件
$ sudo mkdir /data/crdb
$ sudo chown crdb:newsql -R /data/crdb
2. 安装CRDB
$ cd /tmp
$ wget https://binaries.cockroachdb.com/cockroach-v2.0.6.linux-amd64.tgz
$ tar xvfz cockroach-v2.0.6.linux-amd64.tgz
$ sudo mv cockroach-v2.0.6.linux-amd64/cockroach /usr/local/bin
$ rm -Rf cockroach-v2.0.6.linux-amd64
3. 创建安全证书
(1) 创建CA证书和key
$ mkdir /data/crdb/certs /data/crdb/my-safe-directory
$ cockroach cert create-ca --certs-dir=/data/crdb/certs --ca-key=/data/crdb/my-safe-directory/ca.key
(2) 为root用户(CockroachDB自动具有的一个数据库用户) 创建一个client key对
$ cockroach cert create-client root --certs-dir=/data/crdb/certs --ca-key=/data/crdb/my-safe-directory/ca.key
(3)为集群中的每个节点创建一个key对
由于这个示例的所有节点都在一台机器上,所以只需要为一个节点生成证书。
$ cockroach cert create-node \
localhost \
0.0.0.0 \
--certs-dir=/data/crdb/certs \
--ca-key=/data/crdb/my-safe-directory/ca.key
4. 启动第一个节点
使用cockroach start命令启动第一个节点:
$ cockroach start --certs-dir=/data/crdb/certs --store="/data/crdb/node1" --host=0.0.0.0 --port=26257 \