Docker Compose 快速一键部署 TiDB 测试集群

Docker Compose 快速一键部署 TiDB 测试集群

1. 下载 tidb-docker-compose

 [root@foundation21 pub]# cd /tmp/docker/
 [root@foundation21 docker]# mkdir tidb    # 创建存放 tidb 及compose 相关的目录
 [root@foundation21 docker]# cd tidb/
 [root@foundation21 tidb]# git clone https://github.com/pingcap/tidb-docker-compose.git       # 从官方获取 tidb-docker-compose
 Cloning into 'tidb-docker-compose'...
 remote: Counting objects: 309, done.
 remote: Compressing objects: 100% (30/30), done.
 remote: Total 309 (delta 12), reused 17 (delta 6), pack-reused 271
 Receiving objects: 100% (309/309), 180.81 KiB | 48.00 KiB/s, done.
 Resolving deltas: 100% (123/123), done.

从官方克隆成功,可看到相关目录及文件

 [root@foundation21 tidb]# ls
 tidb-docker-compose
 [root@foundation21 tidb]# cd tidb-docker-compose/
 [root@foundation21 tidb-docker-compose]# ls
 compose  docker                   docker-compose.yml  README.md  tidb-vision  tispark        tools
 config   docker-compose-test.yml  pd                  tidb       tikv         tispark-tests

 每个目录都存放有建立各个镜像对应的 dockfile 

2. 从docker官方库拉取相应的镜像

[root@foundation21 tidb-docker-compose]# docker-compose pull
Pulling pd0                 ... done
Pulling pd1                 ... done
Pulling pd2                 ... done
Pulling tikv0               ... done
Pulling tikv1               ... done
Pulling tikv2               ... done
Pulling tidb                ... done
Pulling tispark-master      ... done
Pulling tispark-slave0      ... done
Pulling tidb-vision         ... done
Pulling pushgateway         ... done
Pulling prometheus          ... done
Pulling grafana             ... done
Pulling dashboard-installer ... done

拉取成功,查看已有镜像
[root@foundation21 tidb-docker-compose]# docker images 
REPOSITORY                         TAG                 IMAGE ID            CREATED             SIZE
pingcap/tikv                       latest              718ae5dc20c4        11 hours ago        180 MB
pingcap/pd                         latest              c8de9477c82b        20 hours ago        75.5 MB
pingcap/tidb                       latest              7c868d978955        21 hours ago        58.1 MB
test.com/rhel7                     v1                  a7b1fe3ff643        2 days ago          169 MB
rhel7                              v1                  a7b1fe3ff643        2 days ago          169 MB
pingcap/tidb-dashboard-installer   v2.0.0              525237773def        7 days ago          62 MB
nginx                              latest              c82521676580        4 weeks ago         109 MB
test.com/nginx                     v1                  c82521676580        4 weeks ago         109 MB
pingcap/tispark                    latest              aa044a92789b        4 weeks ago         793 MB
pingcap/tidb-vision                latest              e9b25d9f7bdb        3 months ago        47.5 MB
prom/prometheus                    v2.2.1              cc866859f8df        5 months ago        113 MB
grafana/grafana                    4.6.3               5d1d85717268        8 months ago        284 MB
dockersamples/visualizer           latest              17e55a9b2354        11 months ago       148 MB
test.com/visualizer                latest              17e55a9b2354        11 months ago       148 MB
game2048                           latest              19299002fdbe        20 months ago       55.5 MB
test.com/game2048                  latest              19299002fdbe        20 months ago       55.5 MB
prom/pushgateway                   v0.3.1              434efa6ed9db        21 months ago       13.2 MB
haproxy                            latest              fbd1f55f79b3        2 years ago         139 MB
registry                           2.3.1               83139345d017        2 years ago         166 MB
ubuntu                             latest              07c86167cdc4        2 years ago         188 MB
stress                             latest              db646a8f4087        4 years ago         282 MB
可看到集群及监控所需镜像

3. 启动集群

[root@foundation21 tidb-docker-compose]# docker-compose up -d
Creating network "tidb-docker-compose_default" with the default driver
Creating tidb-docker-compose_tidb-vision_1         ... done
Creating tidb-docker-compose_prometheus_1          ... done
Creating tidb-docker-compose_pushgateway_1         ... done
Creating tidb-docker-compose_grafana_1             ... done
Creating tidb-docker-compose_pd2_1                 ... done
Creating tidb-docker-compose_dashboard-installer_1 ... done
Creating tidb-docker-compose_pd1_1                 ... done
Creating tidb-docker-compose_pd0_1                 ... done
Creating tidb-docker-compose_tikv1_1               ... done
Creating tidb-docker-compose_tikv0_1               ... done
Creating tidb-docker-compose_tikv2_1               ... done
Creating tidb-docker-compose_tispark-master_1      ... done
Creating tidb-docker-compose_tidb_1                ... done
Creating tidb-docker-compose_tispark-slave0_1      ... done

4. 使用数据库

[root@foundation21 tidb-docker-compose]# mysql -h 127.0.0.1 -P 4000 -u root
ERROR 2013 (HY000): Lost connection to MySQL server at 'reading initial communication packet', system error: 0

这里发现无法启动

这里写图片描述

无法启动集群是因为linux最大文件句柄数

大家知道在linux服务器大并发调优时,往往需要预先调优linux参数,其中修改linux最大文件句柄数是最常修改的参数之一。无法启动tidv就是因为文件句柄数的限制
可以通过修改docker-compose.yml 文件内容就行优化

在linux中执行ulimit -a 即可查询linux相关的参数,如下所示:

[root@foundation21 tidb-docker-compose]# ulimit -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 15234
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1024    # 此行限制
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) 15234
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

5. 编辑 docker-compose.yml,修改如下内容:

 55   tikv0:
 56     image: pingcap/tikv:latest
 57     ulimits:
 58       nofile:
 59         soft: 1000000
 60         hard: 1000000
 61     volumes:
 62       - ./config/tikv.toml:/tikv.toml:ro
 63       - ./data:/data
 64     command:
 65       - --addr=0.0.0.0:20160
 66       - --advertise-addr=tikv0:20160
 67       - --data-dir=/data/tikv0
 68       - --pd=pd0:2379,pd1:2379,pd2:2379
 69       - --config=/tikv.toml
 70     depends_on:
 71       - "pd0"
 72       - "pd1"
 73       - "pd2"
 74     restart: on-failure
 75   tikv1:
 76     image: pingcap/tikv:latest
 77     ulimits:
 78       nofile:
 79         soft: 1000000
 80         hard: 1000000
 81     volumes:
 82       - ./config/tikv.toml:/tikv.toml:ro
 83       - ./data:/data
 84     command:
 85       - --addr=0.0.0.0:20160
 86       - --advertise-addr=tikv1:20160
 87       - --data-dir=/data/tikv1
 88       - --pd=pd0:2379,pd1:2379,pd2:2379
 89       - --config=/tikv.toml
 90     depends_on:
 91       - "pd0"
 92       - "pd1"
 93       - "pd2"
 94     restart: on-failure
 95   tikv2:
 96     image: pingcap/tikv:latest
 97     ulimits:
 98       nofile:
 99         soft: 1000000
100         hard: 1000000

修改完成,删除已有集群容器

[root@foundation21 tidb-docker-compose]# docker-compose down

6. 重新进行集群容器建立

 [root@foundation25 tidb-docker-compose]# docker-compose up -d

这里写图片描述
查看容器信息
这里写图片描述

7. 运行数据库

[root@foundation21 tidb-docker-compose]# mysql -h 127.0.0.1 -P 4000 -u root
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.7.10-TiDB-v2.1.0-beta-273-gf3325e2 MySQL Community Server (Apache License 2.0)

Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MySQL [(none)]> 
成功

这里写图片描述

8 访问集群 Grafana 监控页面

http://localhost:3000 默认用户名和密码均为 admin。

这里写图片描述
登录成功
这里写图片描述
查看PD信息
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值