随着业务负载的不断加重,容器化、虚拟化也成为各类在线应用必须要具备的能力。对于分布式数据库,容器化也是提升快速部署、提高运维效率的一个很好的路径。
我们重新优化了 Docker部署的方式,帮助大家更快的上手SequoiaDB集群,本文就将介绍基于 Docker 的SequoiaDB分布式集群快速部署。
1.集群配置
我们将在六个容器中部署一个多节点,高度可用的 SequoiaDB 集群,如下所示:
(本文以 SequoiaDB v3.2.3 版本为例)
该集群包括一个协调器节点、一个目录节点、三个数据组,每个数据组有三个副本数据节点和一个 MySQL 实例节点。
2. 环境
OS : Ubuntu 18
Docker Version : 18.09.7
Docker Compose Version: 1.25.3
Database Version : SequoiaDB 3.2.3
MySql Client: Sequoiasql-mysql
Cluster Deployment : 1 coordinator, 1 catalog, 3 data nodes, and 1 MySQL instance
2.1 Docker安装
2.1.1 Docker
对于在不同平台上的 Docker 安装,用户可以参阅 Docker 安装指南。
sudo apt-get install -y docker.io
2.1.2 Docker-compose
Docker compose是一个用于定义和部署在YAML文件中定义的多容器泊坞应用程序的工具(i.e: docker-compose.yaml)。
sudo curl -L "https://github.com/docker/compose/releases/download/1.25.3/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
2.1.3 MySQL 客户端
安装 MySQL 客户端(如果尚未安装)
sudo apt install mysql-client-core-5.7
3. SequoiaDB分布式集群部署
定义 SequoiaDB 集群配置 "sequoiadb_containers/docker-compose.yaml",用户有两个选项可以下载所需的软件包。
选项1:克隆repo地址
(点击文末【阅读原文】前往获取软件包)
选项2:手动下载(保留相同的目录结构)
(点击文末【阅读原文】前往获取软件包)
3.1 部署 SequoiaDB 集群
docker-compose up 命令将:
- 如果没有在本地找到,可前往dockerhub下载镜像
- 创建所需的容器
- 启动容器
- 初始化 SequoiaDB 集群和 MySQL 实例
1)部署集群
cd sequoiadb_containers (或者到docker-compose的目录。yaml文件下载)
sudo docker-compose up -d
2)检查集群的状态
$ sudo docker-compose ps
Name Command State Ports
--------------------------------------------------------------------------------------------
sequoiadb_containers_catalog_1 sh -c chmod +x /startup.sh ... Up
sequoiadb_containers_coord_1 sh -c chmod +x /startup.sh ... Up
sequoiadb_containers_data1_1 sh -c chmod +x /startup.sh ... Up
sequoiadb_containers_data2_1 sh -c chmod +x /startup.sh ... Up
sequoiadb_containers_data3_1 sh -c chmod +x /startup.sh ... Up
sequoiadb_containers_mysql_1 sh -c chmod +x /startup.sh ... Up 0.0.0.0:3310->3310/tcp
3)等待集群被部署和 MySQL 连接到协调器节点,用户可以按如下方式检查集群状态。
# 检查 coordinator 日志
$ sudo docker-compose logs coord
...
...
coord_1 | ************ Deploy SequoiaDB ************************
coord_1 | Create catalog: catalog:11800
coord_1 | Create coord: coord:11810
coord_1 | Create data: data1:11820
coord_1 | Create data: data2:11820
coord_1 | Create data: data3:11820
coord_1 | Create data: data1:11830
coord_1 | Create data: data2:11830
coord_1 | Create data: data3:11830
coord_1 | Create data: data1:11840
coord_1 | Create data: data2:11840
coord_1 | Create data: data3:11840