分布式Citus集群与Patroni
1. 环境介绍
2. 安装部署
2.1 安装Docker
2.1.1 检查是否安装
运行以下命令来检查 Docker 是否已安装:
docker --version
如果没有返回版本号,则 Docker 可能未安装。
2.1.2 安装
# 更新包索引
sudo yum update
# 安装必要的包
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
# 设置 Docker 仓库
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# 安装 Docker
sudo yum install -y docker-ce docker-ce-cli containerd.io
# 启动 Docker 服务
sudo systemctl start docker
sudo systemctl enable docker
sudo systemctl status docker
2.1.3 添加用户到 Docker 组
为了避免每次运行 Docker 命令时都需要使用 sudo
,您可以将当前用户添加到 Docker 组:
sudo usermod -aG docker root
然后注销并重新登录,或者使用 newgrp docker
使更改生效。
2.2 克隆Patroni repo并构建patroni-citus
docker镜像
git clone https://github.com/zalando/patroni.git
cd patroni
docker build -t patroni-citus -f Dockerfile.citus .
Sending build context to Docker daemon 573.6MB
Step 1/36 : ARG PG_MAJOR=15
… skip intermediate logs
Step 36/36 : ENTRYPOINT ["/bin/sh", "/entrypoint.sh"]
---> Running in 1933967fcb58
Removing intermediate container 1933967fcb58
---> 0eea66f3c4c7
Successfully built 0eea66f3c4c7
Successfully tagged patroni-citus:latest
镜像准备就绪后,我们将使用以下命令部署堆栈:
docker-compose -f docker-compose-citus.yml up -d
现在我们可以验证容器是否已启动并运行:
docker ps
总共有11个镜像:
- 具有ETCD的三个容器(形成三节点ETCD集群),
- 七个容器,Patroni+PostgreSQL+Citus(三个协调器节点和两个工作集群,每个工作集群有两个节点),以及
- 一个装有HAProxy的容器。
HAProxy监听端口5000(连接到Citus协调器主节点)和5001(在工作者主节点之间进行负载平衡):
几秒钟后,我们的Citus集群将启动并运行。我们可以使用patronictl
容器中的demo-haproxy
工具来验证它:
docker exec -ti demo-haproxy bash
patronictl list
现在,让我们通过HAProxy
连接到协调器主节点,并验证Citus扩展是否已创建,工作节点是否已在协调器元数据中注册:
psql -h localhost -p 5000 -U postgres -d citus
到目前为止,一切顺利。
标签:CN,Citus,Patroni,主从,docker,节点,分布式 From: https://www.cnblogs.com/zreo2home/p/18603984