title | category |
---|---|
使用 Docker Compose 构建集群 |
deployment |
Docker Compose 可以通过一个 YAML 文件定义多个容器的应用服务,然后一键启动或停止。可以用来在单机上一键部署一套 TiDB 测试集群,使用 Docker Compose 部署 TiDB 集群要求 Docker 是 17.06.0 及以上版本。
-
下载 tidb-docker-compose
git clone https://github.com/pingcap/tidb-docker-compose.git
-
创建并启动集群
cd tidb-docker-compose && docker-compose up -d
-
访问集群
mysql -h 127.0.0.1 -P 4000 -u root
访问集群 Grafana 监控页面:http://localhost:3000 默认用户名和密码都是 admin。
快速开始里面默认部署 3 个 PD,3 个 TiKV,1 个 TiDB 和监控组件 Prometheus,Pushgateway,Grafana 以及 tidb-vision。如果想自定义集群,可以直接修改 docker-compose.yml,但是手动修改比较繁琐而且容易出错,强烈建议使用 Helm 模板引擎生成 docker-compose.yml 文件。
-
安装 Helm
Helm 可以用作模板渲染引擎,只需要下载其 binary 文件即可以使用。
curl https://raw.githubusercontent.com/kubernetes/helm/master/scripts/get | bash
如果是 Mac 系统,也可以通过 Homebrew 安装:
brew install kubernetes-helm
-
下载 tidb-docker-compose
git clone https://github.com/pingcap/tidb-docker-compose.git
-
自定义集群
cd tidb-docker-compose cp compose/values.yaml values.yaml vim values.yaml
修改 values.yaml 里面的配置,例如集群规模,TiDB 镜像版本等。
tidb-vision 是 TiDB 集群可视化页面,可以可视化地显示 PD 对 TiKV 数据的调度。如果不想部署该组件,可以将
tidbVision
项留空。PD,TiKV,TiDB 和 tidb-vision 支持从 GitHub 源码或本地文件构建 Docker 镜像,供开发测试使用。
-
如果希望从 GitHub 源码构建某个组件的镜像,需要将其
image
字段留空,然后设置其buildFrom
为remote
。 -
如果希望从本地已编译好的 binary 文件构建 PD,TiKV 或 TiDB 镜像,需要将其
image
字段留空,然后设置其buildFrom
为local
,并将已编译好的 binary 拷贝到对应的 pd/bin/pd-server,tikv/bin/tikv-server,tidb/bin/tidb-server。 -
如果希望从本地构建 tidb-vision 镜像,需要将其
image
字段留空,然后设置其buildFrom
为local
,并将 tidb-vision 项目拷贝到 tidb-vision/tidb-vision。
-
-
生成 docker-compose.yml 文件
helm template -f values.yaml compose > generated-docker-compose.yml
-
使用生成的 docker-compose.yml 创建并启动集群
docker-compose -f generated-docker-compose.yml up -d
-
访问集群
mysql -h 127.0.0.1 -P 4000 -u root
访问集群 Grafana 监控页面:http://localhost:3000 默认用户名和密码都是 admin。
如果启用了 tidb-vision,可以通过 http://localhost:8010 查看。