Docker---Haproxy负载mysql集群

1、创建宿主机挂载目录

mkdir /iids/haproxy

2、创建haproxy配置文件

vi haproxy.cfg
#配置如下
global
    #工作目录
    chroot /usr/local/etc/haproxy
    #日志文件,使用rsyslog服务中local5日志设备(/var/log/local5),等级info
    log 127.0.0.1 local5 info
    #守护进程运行
    daemon
defaults
    mode                    tcp            #haproxy运行模式
    log                     global
    option                  dontlognull
    option                  redispatch
    retries                 3
    timeout http-request    10s
    timeout queue           1m
    timeout connect         10s
    timeout client          1m
    timeout server          1m
    timeout http-keep-alive 10s
    timeout check           10s
    maxconn                 600           #最大连接数

########统计页面配置########  
listen admin_status  
    mode http
    bind :6677                            #找一个比较特殊的端口
    stats enable
    stats hide-version                    #隐藏haproxy版本号
    stats uri     /admin     #一会用于打开状态页的uri
    stats realm   Haproxy\ Statistics     #输入账户密码时的提示文字
    stats auth    admin:admin             #用户名:密码
    stats admin if TRUE                   #开启状态页的管理功能
#数据库负载均衡
listen  proxy-mysql
    #访问的IP和端口
    bind    0.0.0.0:3306
    #网络协议
    mode    tcp
    #负载均衡算法(轮询算法)
    #轮询算法:roundrobin
    #权重算法:static-rr
    #最少连接算法:leastconn
    #请求源IP算法:source
    balance roundrobin
    #日志格式
    option  tcplog
    #在MySQL中创建一个没有权限的haproxy用户,密码为空。
    option mysql-check user haproxy
    server mysql_master 172.18.39.166:3306 check weight 1 maxconn 2000
    server mysql_salve 172.18.39.167:3306 check weight 1 maxconn 2000
    #使用keepalive检测死链
    option tcpka

3、启动容器

docker run -it -d  \
-v /iids/haproxy/haproxy.cfg:/usr/local/etc/haproxy/haproxy.cfg \
--name haproxy \
--privileged \
--net=host \
haproxy:2.1

4、创建mysql检测用户

docker exec -it pn1 mysql -u root -p 123456
use mysql
create user 'haproxy'@'%' identified by '';
flush privileges;

如果创建失败,可能用户存在,则执行删除用户

drop user 'haproxy'@'%'

5、docker重启后,pxc集群无法启动
由于pxc集群要求强一致性,导致docker重启后,集群节点无法启动。需要修改持久卷中的集群信息设置配置,才能启动。

操作持久卷命令

sudo docker volume ls  【查看已有的数据卷】
sudo docker volume create pnv1 【创建一个叫做pnv1的数据卷】
sudo docker volume rm 数据卷名字 【删除某个数据卷】、
sudo docker volume inspect pnv1  【查看某个数据卷详情】

修改持久卷中的配置文件

#1.依次找出数据卷映射目录,修改参数
sudo docker inspect v1
[
    {
        "Driver": "local",
        "Labels": {},
        #持久卷路径
        "Mountpoint": "/var/lib/docker/volumes/v1/_data", 
        "Name": "v1",
        "Options": {},
        "Scope": "local"
    }
]
#2.修改配置文件
cd到目录下
vi grastate.dat 
safe_to_bootstrap设置成1
#3.启动节点
docker start pxc节点
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值