0
点赞
收藏
分享

微信扫一扫

企业实战_21_MyCat_keepalived 安装配置验证


接上一篇:企业实战_20_MyCat使用HAPpoxy对Mycat负载均衡​

主机名

IP地址

角色

mycat

192.168.43.32

MYCAT MYSQL,ZK,Haproxy,Keepalived

node1

192.168.43.104

MYSQL,ZK

node2

192.168.43.217

MYSQL,ZK

node3

192.168.43.172

MYSQL,MYCAT ,Haproxy,Keepalived

文章目录

  • ​​一、mycat01 节点​​
  • ​​1. 在线安装keepalived​​
  • ​​2. 获取网卡名​​
  • ​​3. 配置 keepalived.conf​​
  • ​​4. 编写监控脚本​​
  • ​​5. 脚本赋予权限​​
  • ​​6. 运行脚本​​
  • ​​7. 查看脚本状态​​
  • ​​8. 查看虚拟vip​​
  • ​​二、mycat02 节点​​
  • ​​2.1. 在线安装keepalived​​
  • ​​2. 获取网卡名​​
  • ​​2.3. 配置 keepalived.conf​​
  • ​​2.4. 编写监控脚本​​
  • ​​2.5. 脚本赋予权限​​
  • ​​2.6. 运行脚本​​
  • ​​2.7. 查看脚本状态​​
  • ​​2.8. 查看虚拟vip​​
  • ​​三、vip迁移模拟​​
  • ​​3.1. 验证思路​​
  • ​​3.2. keepalived 主节点服务停止掉​​
  • ​​3.3. keepalived 从节点验证​​
  • ​​3.4. 重启启动主节点keepalived​​
  • ​​3.5. 登录从节点​​
  • ​​3.6. 结论​​
一、mycat01 节点
1. 在线安装keepalived

#安装依赖包
yum install -y curl gcc openssl-devel libnl3-devel net-snmp-devel

#yum安装软件
yum install -y keepalived

2. 获取网卡名

# 获取网卡名,等会用于绑定
ip

企业实战_21_MyCat_keepalived 安装配置验证_权重

3. 配置 keepalived.conf

#进入/etc/keepalived/
cd /etc/keepalived/

#编辑keepalived.conf
vim

! Configuration Fileforkeepalived
vrrp_script chk_http_port {
script"/etc/keepalived/check_haproxy.sh"
interval 2
weight 2
}
vrrp_instance VI_1 {
state MASTER
interface ens33
virtual_router_id 51
priority 150
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
track_script {
chk_http_port
}
virtual_ipaddress {
192.168.92.127 dev ens33 scope global
}
}

说明:虚拟vip怎样获取的?
自己虚拟机玩耍:自己随机找一个与本机ip段一致的ip即可,
在公司的话:需要发邮件申请

企业实战_21_MyCat_keepalived 安装配置验证_权重_02

4. 编写监控脚本

#创建check_haproxy.sh
vim /etc/keepalived/check_haproxy.sh

#添加内容

#!/bin/bash
STARTHAPROXY="/usr/sbin/haproxy -f /etc/haproxy/haproxy.cfg"
#STOPKEEPALIVED="/etc/init.d/keepalived stop"
STOPKEEPALIVED="/usr/bin/systemctl stop keepalived"
LOGFILE="/var/log/keepalived-haproxy-state.log"
echo "[check_haproxy status]" >> $LOGFILE
A=`ps -C haproxy --no-header |wc -l`
echo "[check_haproxy status]" >> $LOGFILE
date >> $LOGFILE
if [ $A -eq 0 ];then
echo $STARTHAPROXY >> $LOGFILE
$STARTHAPROXY >> $LOGFILE 2>&1
sleep 5
fi
if [ `ps -C haproxy --no-header |wc -l` -eq 0 ];then
exit 0
else
exit 1
fi

企业实战_21_MyCat_keepalived 安装配置验证_vim_03

5. 脚本赋予权限

#给这个脚本赋予可执行权限
chmod a+x /etc/keepalived/check_haproxy.sh

6. 运行脚本

# 启动 keepalived

7. 查看脚本状态

# 查看 keepalived 状态

企业实战_21_MyCat_keepalived 安装配置验证_权重_04

8. 查看虚拟vip

ip

企业实战_21_MyCat_keepalived 安装配置验证_mysql_05

二、mycat02 节点
2.1. 在线安装keepalived

#安装依赖包
yum install -y curl gcc openssl-devel libnl3-devel net-snmp-devel

#yum安装软件
yum install -y keepalived

2. 获取网卡名

# 获取网卡名,等会用于绑定
ip

企业实战_21_MyCat_keepalived 安装配置验证_mysql_06

2.3. 配置 keepalived.conf

#进入/etc/keepalived/
cd /etc/keepalived/

#编辑keepalived.conf,把下面的配置覆盖掉默认的
vim

! Configuration Fileforkeepalived
vrrp_script chk_http_port {
script"/etc/keepalived/check_haproxy.sh"
interval 2
weight 2
}
vrrp_instance VI_1 {
state BACKUP
interface ens33
virtual_router_id 51
priority 120
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
track_script {
chk_http_port
}
virtual_ipaddress {
192.168.92.127 dev ens33 scope global
}
}

企业实战_21_MyCat_keepalived 安装配置验证_mysql_07

2.4. 编写监控脚本

#创建check_haproxy.sh
vim /etc/keepalived/check_haproxy.sh

#添加内容

#!/bin/bash
STARTHAPROXY="/usr/sbin/haproxy -f /etc/haproxy/haproxy.cfg"
#STOPKEEPALIVED="/etc/init.d/keepalived stop"
STOPKEEPALIVED="/usr/bin/systemctl stop keepalived"
LOGFILE="/var/log/keepalived-haproxy-state.log"
echo "[check_haproxy status]" >> $LOGFILE
A=`ps -C haproxy --no-header |wc -l`
echo "[check_haproxy status]" >> $LOGFILE
date >> $LOGFILE
if [ $A -eq 0 ];then
echo $STARTHAPROXY >> $LOGFILE
$STARTHAPROXY >> $LOGFILE 2>&1
sleep 5
fi
if [ `ps -C haproxy --no-header |wc -l` -eq 0 ];then
exit 0
else
exit 1
fi

企业实战_21_MyCat_keepalived 安装配置验证_MyCat_08

2.5. 脚本赋予权限

#给这个脚本赋予可执行权限
chmod a+x /etc/keepalived/check_haproxy.sh

2.6. 运行脚本

# 启动 keepalived

2.7. 查看脚本状态

# 查看 keepalived 状态

企业实战_21_MyCat_keepalived 安装配置验证_vim_09

2.8. 查看虚拟vip

ip

企业实战_21_MyCat_keepalived 安装配置验证_权重_10

发现是没有虚拟vip,对吧!

说明:
由于我们在keepalived 主节点MASTER配置的权重是150,在keepalived 从节点BACKUP配置的权重是120,因此虚拟vip默认会在权重高的机器上。
什么场景下虚拟vip会迁移到keepalived 从节点BACKUP呢?
当keepalived 主节点宕机之后,虚拟vip就会自动迁移到keepalived的slave节点。

三、vip迁移模拟
3.1. 验证思路

把带有虚拟ip的haproxy停止掉,虚拟ip,keepalived就会把虚拟ip转移到另一台haproxy机器上,当停止掉的haproxy重启启动后,虚拟ip就会转移回来,因为设置了权重。

3.2. keepalived 主节点服务停止掉

[root@node1 ~]# systemctl stop keepalived
[root@node1 ~]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:72:fe:1f brd ff:ff:ff:ff:ff:ff
inet 192.168.92.101/24 brd 192.168.92.255 scope global noprefixroute ens33
valid_lft forever preferred_lft forever
inet6 fe80::e596:6d50:ebed:be08/64 scope link tentative noprefixroute dadfailed
valid_lft forever preferred_lft forever
inet6 fe80::301b:b1b8:4c05:8828/64 scope link tentative noprefixroute dadfailed
valid_lft forever preferred_lft forever
inet6 fe80::dec4:912f:fd7f:bbd5/64 scope link tentative noprefixroute dadfailed
valid_lft forever preferred_lft forever
[root@node1 ~]#

企业实战_21_MyCat_keepalived 安装配置验证_MyCat_11


发现虚拟vip不见了。

3.3. keepalived 从节点验证

ip

企业实战_21_MyCat_keepalived 安装配置验证_MyCat_12


发现虚拟vip启动迁移到了从节点机器上

3.4. 重启启动主节点keepalived

[root@node1 ~]# systemctl start keepalived
You have new mail in /var/spool/mail/root
[root@node1 ~]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:72:fe:1f brd ff:ff:ff:ff:ff:ff
inet 192.168.92.101/24 brd 192.168.92.255 scope global noprefixroute ens33
valid_lft forever preferred_lft forever
inet 192.168.92.127/32 scope global ens33
valid_lft forever preferred_lft forever
inet6 fe80::e596:6d50:ebed:be08/64 scope link tentative noprefixroute dadfailed
valid_lft forever preferred_lft forever
inet6 fe80::301b:b1b8:4c05:8828/64 scope link tentative noprefixroute dadfailed
valid_lft forever preferred_lft forever
inet6 fe80::dec4:912f:fd7f:bbd5/64 scope link tentative noprefixroute dadfailed
valid_lft forever preferred_lft forever
[root@node1 ~]#

企业实战_21_MyCat_keepalived 安装配置验证_mysql_13

3.5. 登录从节点

ip

企业实战_21_MyCat_keepalived 安装配置验证_权重_14


发现虚拟vip自动又迁移了回去

3.6. 结论

由于主节点的keepalived 权重比从节点的keepalived高,因此,当主从服务都正常运行的场景,虚拟vip会在主节点上;当主节点宕机后,虚拟vip会自动迁移到从节点上。

下一篇:企业实战_22_MyCatSQL拦截


举报

相关推荐

0 条评论