概述
注意:如果集群防火墙开启的状态下需要执行一下命令
#--in-interface 对应的是服务器的网卡
firewall-cmd --direct --permanent --add-rule ipv4 filter INPUT 0 --in-interface ens33 --destination 224.0.0.18 --protocol vrrp -j ACCEPT
firewall-cmd --direct --permanent --add-rule ipv4 filter OUTPUT 0 --out-interface ens33 --destination 224.0.0.18 --protocol vrrp -j ACCEPT
firewall-cmd --reload
docker Keepalived+mysql 实现高可用
docker 运行Keepalived脚本
docker run -d --net=host --cap-add=NET_ADMIN --name keepalived-mysql -v /home/docker/keepalived/conf/keepalived.conf:/usr/local/etc/keepalived/keepalived.conf -v /tmp/mysql.sh:/tmp/mysql.sh keepalived:2.0.20
内网
mkdir -p /home/docker/keepalived/conf/
192.168.160.10
编辑本地keepalived.conf文件内容
global_defs {
script_user root #执行chk_mysql_port脚本用户需要root用户来实现
enable_script_security #开启运行脚本的配置
}
vrrp_script chk_mysql_port {
script "/tmp/mysql.sh" #判断端口mysql端口是否存在
interval 2 #脚本执行间隔,每2s检测一次
weight -5#脚本结果导致的优先级变更,检测失败(脚本返回非0)则优先级 -5
fall 2 #检测连续2次失败才算确定是真失败。会用weight减少优先级(1-255之间)
rise 1#检测1次成功就算成功。但不修改优先级
}
vrrp_instance VI_1 {
interface ens33 #需要宿主记得网卡
state BACKUP
mcast_src_ip 192.168.160.10 #服务器本机的ip
virtual_router_id 200#建议不用默认的51 换一个1-255之间 但是必须要要和另几台Keepalived一样
priority 100 #定义优先级,数字越大,优先级越高,在同一个vrrp_instance下,MASTER的优先级必须大于BACKUP的优先级。这样MASTER故障恢复后,就可以将VIP资源再次抢回来
advert_int 1
authentication {
auth_type PASS#账号
auth_pass 123456#密码
}
virtual_ipaddress {
192.168.160.111#虚拟ip
}
track_script {
chk_mysql_port
}
}
保存退出
编辑/tmp/mysql.sh
#!/bin/bash
counter=$(netstat -na|grep "LISTEN"|grep "3307"|wc -l)
if [ "${counter}" == 0 ];then
pkill keepalived
fi
保存退出
执行
chmod 755 /tmp/mysql.sh
192.168.160.20
编辑本地keepalived.conf文件内容
global_defs {
script_user root #执行chk_mysql_port脚本用户需要root用户来实现
enable_script_security #开启运行脚本的配置
}
vrrp_script chk_mysql_port {
script "/tmp/mysql.sh" #判断端口mysql端口是否存在
interval 2 #脚本执行间隔,每2s检测一次
weight -5#脚本结果导致的优先级变更,检测失败(脚本返回非0)则优先级 -5
fall 2 #检测连续2次失败才算确定是真失败。会用weight减少优先级(1-255之间)
rise 1#检测1次成功就算成功。但不修改优先级
}
vrrp_instance VI_1 {
interface ens33 #需要宿主记得网卡
state MASTER
mcast_src_ip 192.168.160.20 #服务器本机的ip
virtual_router_id 200#建议不用默认的51 换一个1-255之间 但是必须要要和另几台Keepalived一样
priority 101 #定义优先级,数字越大,优先级越高,在同一个vrrp_instance下,MASTER的优先级必须大于BACKUP的优先级。这样MASTER故障恢复后,就可以将VIP资源再次抢回来
advert_int 1
authentication {
auth_type PASS#账号
auth_pass 123456#密码
}
virtual_ipaddress {
192.168.160.111#虚拟ip
}
track_script {
chk_mysql_port
}
}
保存退出
编辑/tmp/mysql.sh
#!/bin/bash
counter=$(netstat -na|grep "LISTEN"|grep "3307"|wc -l)
if [ "${counter}" == 0 ];then
pkill keepalived
fi
保存退出
执行
chmod 755 /tmp/mysql.sh
外网
10.10.0.203
编辑本地keepalived.conf文件内容
global_defs {
script_user root
enable_script_security
}
vrrp_script chk_mysql_port {
script "/tmp/mysql.sh"
interval 2
weight -5
fall 2
rise 1
}
vrrp_instance VI_1 {
interface eno1 #需要宿主记得外网卡
state MASTER
mcast_src_ip 10.10.0.203#外网的ip地址
virtual_router_id 203
priority 101
advert_int 1
authentication {
auth_type PASS
auth_pass 123456
}
virtual_ipaddress {
10.10.0.222
}
track_script {
chk_mysql_port
}
}
编辑/tmp/mysql.sh
#!/bin/bash
counter=$(netstat -na|grep "LISTEN"|grep "3307"|wc -l)
if [ "${counter}" == 0 ];then
pkill keepalived
fi
保存退出
执行
chmod 755 /tmp/mysql.sh
运行docker脚本
docker run -d --net=host --cap-add=NET_ADMIN --name keepalived-mysql -v /home/docker/keepalived/conf/keepalived.conf:/usr/local/etc/keepalived/keepalived.conf -v /tmp/mysql.sh:/tmp/mysql.sh keepalived:2.0.20
最后
以上就是认真鱼为你收集整理的docker安装Keepalived2.0+mysql5.7 实现高可用双机热部署的全部内容,希望文章能够帮你解决docker安装Keepalived2.0+mysql5.7 实现高可用双机热部署所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复