cockroach 集群安装(三节点)+haproxy负载均衡
一、安装前配置
1.1 所有节点禁用防火墙
内部网络建议关闭防火墙 systemctl stop firewalld.service
并且禁止开机启动 systemctl disable firewalld.service
1.2 配置时间同步(所有节点)
1、安装相关软件
yum -y install ntpdate
2、添加定时任务
crontab -e
30 1 * * * /usr/sbin/ntpdate time.windows.com
二、cockroachDB安装
根据需要,下载对应的版本:https://www.cockroachlabs.com/docs/releases
2.1 解压&配置环境变量(所有节点)
1、解压安装包,创建相关目录
# 解压到/root/cockroach
tar -xf cockroach-xxx.tgz
#创建数据目录和证书目录
mkdir -p /root/cockroach/certs
mkdir -p /root/cockroach/data
创建完之后目录结构如下:
2、配置环境变量
# 在 /etc/profile最后添加
export PATH=$PATH:/root/cockroach
# 生效配置
source /ect/profile
2.2 创建ca证书(在节点1上执行)
# 在/root/cockroach下执行
# 生成数据ca证书
cockroach cert create-ca --certs-dir=certs --ca-key=certs/ca.key --allow-ca-key-reuse --overwrite
# 生成client ca证书
cockroach cert create-client root --certs-dir=certs --ca-key=certs/ca.key --overwrite
创建完之后将目录下边的certs目录拷贝到其他两个节点的/root/cockroach下,如下:
scp -rp certs <ip2>:/root/cockroach
scp -rp certs <ip3>:/root/cockroach
2.3 创建节点证书(三台节点分别执行)
cockroach cert create-node <ip1> --certs-dir=certs --ca-key=certs/ca.key --overwrite
cockroach cert create-node <ip2> --certs-dir=certs --ca-key=certs/ca.key --overwrite
cockroach cert create-node <ip3> --certs-dir=certs --ca-key=certs/ca.key --overwrite
2.4 启动集群(三台节点分别执行)
# 在执行的时候只需要将advertise-host对应的ip改成本节点的ip,然后分别执行
cockroach start --port=26257 \
--http-port=8081 \
--advertise-host=<ip1> \
--store=path=/root/cockroach/data \
--join=<ip1>:26257,<ip2>:26257,<ip3>:26257 \
--certs-dir=/root/cockroach/certs \
--background
cockroach start --port=26257 \
--http-port=8081 \
--advertise-host=<ip2> \
--store=path=/root/cockroach/data \
--join=<ip1>:26257,<ip2>:26257,<ip3>:26257 \
--certs-dir=/root/cockroach/certs \
--background
cockroach start --port=26257 \
--http-port=8081 \
--advertise-host=<ip3> \
--store=path=/root/cockroach/data \
--join=<ip1>:26257,<ip2>:26257,<ip3>:26257 \
--certs-dir=/root/cockroach/certs \
--background
2.4 初始化集群
cockroach init --certs-dir=/home/cockroach/certs --host=<ip> # 这里随便一个集群的ip地址
三、 搭建haproxy负载均衡
3.1 安装haproxy
下载:https://src.fedoraproject.org/repo/pkgs/haproxy/
# 解压并进入倒haproxy目录
tar -xf haproxy-2.8.3.tar.gz
cd haproxy-2.8.3
# 编译安装
make TARGET=linux3100 CPU=x86_64 PREFIX=/usr/local/haprpxy
make install PREFIX=/usr/local/haproxy
# 配置环境变量 加到/etc/profile文件最后
export PATH=$PATH:/usr/local/haproxy/sbin
# 生效配置
source /etc/profile
3.2 配置并启动haproxy
# 添加该配置倒haproxy服务器上
global
maxconn 4096
defaults
mode tcp
retries 2
timeout connect 5s
timeout client 10m
timeout server 10m
option clitcpka
listen psql
bind :26258
mode tcp
balance roundrobin
option httpchk GET /health?ready=1
# 修改成相应cockroach节点的IP
server cockroach1 <ip1>:26257 check port 8081
server cockroach2 <ip2>:26257 check port 8081
server cockroach3 <ip3>:26257 check port 8081
listen stats
mode http
bind 0.0.0.0:1080
stats enable
stats hide-version
stats uri /stats
stats realm Haproxy\ Statistics
stats auth admin:admin123 # haproxy状态页面用户名密码
stats admin if TRUE
启动haproxy
haproxy -f haproxy.cfg &
查看启动情况
netstat -lntup|grep haproxy
tcp 0 0 0.0.0.0:26258 0.0.0.0:* LISTEN 14930/haproxy # 数据库连接端口
tcp 0 0 0.0.0.0:1080 0.0.0.0:* LISTEN 14930/haproxy # haproxy状态端口
五、其他配置
5.1 启动read_committed事务隔离
#在cockroach安装目录下登录
cockroach sql --certs-dir=certs --host=<node ip>:26257
# 启用READ COMMITTED隔离
SET CLUSTER SETTING sql.txn.read_committed_isolation.enabled = 'true';
SET default_transaction_isolation = 'read committed';
ALTER ROLE <username> SET default_transaction_isolation = 'read committed';
# 登录查看是否生效
cockroach sql --certs-dir=certs --url='postgresql://<username>@<ip>:26257/<dbname>?--options=--default_transaction_isolation=read committed'
SHOW default_transaction_isolation;
5.2 配置用户名密码
# 创建用户
CREATE USER <user> WITH PASSWORD '<password>';
# 赋予权限
GRANT admin TO <user>
GRANT root TO <user>
本文来自博客园,作者:EJW,转载请注明原文链接:https://www.cnblogs.com/ejjw/p/17990540