CockRoachDB配置跨域集群

这段时间老师需要我测试CRDB的性能,因而对CRDB做了些简单的了解,可以进行简单使用及测试编译,首先说明我使用的是阿里云服务器Ubuntu20.04,各位可以根据需要自行选择操作系统,centos和ubuntu,CRDB都支持,下面是我在配置三节点跨域集群过程中记录的执行语句

官方给了个同步时钟的过程,而我的服务器全部由阿里云提供,时钟没啥影响

安装CRDB

下面的版本可以根据需要自行更改

curl https://binaries.cockroachdb.com/cockroach-v21.2.4.linux-amd64.tgz | tar -xz && sudo cp -i cockroach-v21.2.4.linux-amd64/cockroach /usr/local/bin/

CRDB存在两种启动模式,secure和insecure,两者区别在于是否加密,secure模式只能赋予安全证书的节点进行连接集群,而insecure模式任何节点都可以直接加入集群。secure模式多了一个创建证书以及赋予证书的过程,我由于在使用insecure模式时,测试吞吐量很低,以及在大数据量的情况下节点容易宕机,选择使用了secure模式

例如我使用的三个区域的节点ip分别为

node1公网ip:112.74.74.190 私网ip:172.25.136.116

node2公网ip:8.142.166.129 私网ip:172.27.155.153

node3公网ip:47.108.183.202 私网ip:172.29.20.174

生成安全证书

需要在每个节点都生成certs目录

mkdir certs my-safe-directory

现在首先在node1上生成CA证书

cockroach cert create-ca --certs-dir=certs --ca-key=my-safe-directory/ca.key

使用该证书生成客户端证书

cockroach cert create-client root --certs-dir=certs --ca-key=my-safe-directory/ca.key

使用该证书为所有节点生成证书,注意,先生成其他节点的密钥,再生成CA证书所在节点的密钥,否则会使CA证书所在节点的密钥被覆盖,导致无法连接数据库

生成node2的密钥

cockroach cert create-node 8.142.166.129 172.27.155.153 --certs-dir=certs --ca-key=my-safe-directory/ca.key --overwrite

将node2的密钥及客户端证书发送给node2,此时生成的证书在node1的certs目录下

scp certs/* root@8.142.166.129:~/certs

node3同理

生成完node2,3后,生成node1的密钥即可进行数据库的启动阶段

启动集群

运行cockroach start命令启动数据库节点

node1:

cockroach start --certs-dir=certs --locality=cloud=aliyun,region=shenzhen,zone=sz --locality-advertise-addr=region=shenzhen@172.25.136.116 --advertise-addr=47.112.148.208 --join=172.25.136.116,8.142.166.129,47.108.183.202 --cache=.25 --max-sql-memory=.35 --background 

node2:

cockroach start --certs-dir=certs --locality=cloud=aliyun,region=zhangjiakou,zone=zjk --locality-advertise-addr=region=zhangjiakou@172.27.155.153 --advertise-addr=8.142.166.129 --join=112.74.74.190,172.27.155.153,47.108.183.202 --cache=.25 --max-sql-memory=.35 --background

node3:

cockroach start --certs-dir=certs --locality=cloud=aliyun,region=chengdu,zone=cd --locality-advertise-addr=region=chengdu@172.29.20.174 --advertise-addr=47.108.183.202 --join=112.74.74.190,8.142.166.129,47.108.183.202 --cache=.25 --max-sql-memory=.35  --background

其中各参数的含义见https://www.cockroachlabs.com/docs/v21.2/cockroach-start.html

此时屏幕会显示,正在等待init,或者加入某个集群的信息

我们还没有初始化集群,在任意一台节点进行cockroach init即可,例如在node3运行

cockroach init --certs-dir=certs --host=47.108.183.202

即初始化集群成功可以使用下列命令查看,当前集群的节点数量

cockroach node ls --certs-dir=certs --host=47.108.183.202

insecure模式就不需要这么麻烦了,直接把--cert-dir参数换成--insecure即可

现在就配置好了三节点跨域的CRDB,接下来就可以进入sql了

cockroach sql --certs-dir=certs --host=47.108.183.202

以上就是如何配置CRDB三节点跨域集群

参考https://www.cockroachlabs.com/docs/v21.2/deploy-cockroachdb-on-aws.html

下一篇介绍如何编译cockroach源码

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值