
veadan/mariadb-galeraMariadb Galera Cluster 集群镜像(下面简称MGC),仅支持Host网络模式。
MySQLl参数使用my_${参数名} 形式,比如:my_tmp_talbe_size=512M Galera参数使用wsrep_${参数名} 形式,比如:wsrep_sst_method=rsync
在192.168.1.100、192.168.1.101、192.168.1.102三个节点上分别执行如下命令即可(不要求先后,会自动组建集群):
docker run -d \ --net=host \ --name=mysql-3306 \ -e cluster_name=mysql \ -e my_port=3310 \ -e node1=192.168.1.100 \ -e node2=192.168.1.101 \ -e node3=192.168.1.102 \ -e mysql_user=demo \ -e mysql_user_password=*** \ -v /data/mariadb-galera:/data/mariadb-galera \ veadan/mariadb-galera
执行后,可以执行 docker logs -f mysql-3306 查看启动日志,也可以执行 tail -f /data/mariadb-galera/logs/error.log 查看运行日,启动成功后,可以执行如下命令查看集群状态:
mysql -h192.168.1.100 -P3310 -udemo -p*** -e "show status like '%wsrep%'"
yum install -y haproxy keepalived # 备份之前的配置文件 cp /etc/haproxy/haproxy.cfg /etc/haproxy/haproxy.cfg.backup vim /etc/haproxy/haproxy.cfg
全量覆盖haproxy的配置
#--------------------------------------------------------------------- # Example configuration for a possible web application. See the # full configuration options online. # # [***] # #--------------------------------------------------------------------- #--------------------------------------------------------------------- # Global settings #--------------------------------------------------------------------- global # to have these messages end up in /var/log/haproxy.log you will # need to: # # 1) configure syslog to accept network log events. This is done # by adding the '-r' option to the SYSLOGD_OPTIONS in # /etc/sysconfig/syslog # # 2) configure local2 events to go to the /var/log/haproxy.log # file. A line like the following can be added to # /etc/sysconfig/syslog # # local2.* /var/log/haproxy.log # log 127.0.0.1 local2 chroot /var/lib/haproxy pidfile /var/run/haproxy.pid maxconn 4000 user haproxy group haproxy daemon # turn on stats unix socket stats socket /var/lib/haproxy/stats # 默认的defaults模块以上不动,以下部分替换成如下内容,两台haproxy配置一致. listen MysqlDb_proxy bind 0.0.0.0:3316 mode tcp option tcplog balance leastconn #使用最少连接方式调度 server MysqlDb1 172.16.164.129:3306 check port 3306 maxconn 300 server MysqlDb2 172.16.164.130:3306 check port 3306 maxconn 300 server MysqlDb3 172.16.164.128:3306 check port 3306 maxconn 300 listen stats #监控 mode http bind 0.0.0.0:8888 #web监控登录端口 stats enable stats uri /dbs #we监控端登录地址http:ip:8888/dbs stats realm haproxy\ statistics stats auth admin:admin #web监控登端录用户和密码
修改日志系统:
vim /etc/rsyslog.conf #在centos6.x系统中,系统日志的配置文件原来的/etc/syslog.conf已经变为/etc/rsyslog.conf ###Provides UDP syslog reception //去掉下面两行注释,开启UDP监听 $ModLoad imudp $UDPServerRun 514 local2.* /var/log/haproxy.log #添加此行 vim /etc/sysconfig/rsyslog,添加如下内容 SYSLOGD_OPTIONS="-c 2 -r -m 0" #注释:-c 2 使用兼容模式,默认是 -c 5,-r开启远程日志,-m 0标记时间戳。单位是分钟,为0时,表示禁用该功能
重启日志
service rsyslog restart
启动haproxy
systemctl start haproxy
编辑vim /etc/keepalived/check_haproxy.sh脚本 #!/bin/bash
A=`ps -C haproxy --no-header | wc -l` if [ $A -eq 0 ] then systemctl restart haproxy echo $(date "+%Y-%m-%d %H:%M:%S")" [info] Start haproxy" >> /dev/null sleep 3 if [ `ps -C haproxy --no-header | wc -l` -eq 0 ] then systemctl stop keepalived echo $(date "+%Y-%m-%d %H:%M:%S")" [info] Stop keepalived" >> /dev/null fi fi cd /etc/keepalived chmod +x ./check_haproxy.sh 配置keeplived # 备份之前的配置文件 cp /etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf.backup vim /etc/keepalived/keepalived.conf
配置如下全量覆盖
! Configuration File for keepalived #简单的头部,这里主要可以做邮件通知报警等的设置 global_defs { notification_email { root@localhost } notification_email_from root@localhost smtp_server 127.0.0.1 smtp_connect_timeout 30 router_id LVS_Master }
预先定义一个脚本,方便后面调用,也可以定义多个,方便选择;
vrrp_script chk_haproxy { script "/etc/keepalived/check_haproxy.sh" #具体脚本路径 interval 5 #脚本循环运行间隔 weight -5 } #VRRP虚拟路由冗余协议配置 vrrp_instance VI_1 { #VI_1 是自定义的名称; state BACKUP #MASTER表示是一台主设备,BACKUP表示为备用设备【我们这里因为设置为开启不抢占,所以都设置为备用】 nopreempt #开启不抢占 interface ens33 #指定VIP需要绑定的物理网卡 virtual_router_id 51 #VRID虚拟路由标识,也叫做分组名称,该组内的设备需要相同 priority 100 #定义这台设备的优先级 1-254;开启了不抢占,所以此处优先级必须高于另一台 advert_int 1 #生存检测时的组播信息发送间隔,组内一致 authentication { #设置验证信息,组内一致 auth_type PASS #有PASS 和 AH 两种,常用 PASS auth_pass 1111 #密码 } track_script { #使用在这个域中使用预先定义的脚本,上面定义的 chk_haproxy } virtual_ipaddress { 172.16.164.188 #指定VIP地址,组内一致,可以设置多个IP } notify_master /etc/keepalived/sendmail.pl

manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务