### **0、准备工作**
准备三台主机,比如如下
A主机:192.168.1.10
B主机:192.168.1.11
C主机:192.168.1.12
准备一个vip,注意不要被其他主机占用,而且要与上面三个IP在同一子网内,比如为
192.168.1.20
### **1、安装**
在三台主机上都安装keepalived,执行以下命令即可安装
```
sudo yum -y install keepalived
```
### **2、配置文件**
keepalived有两个配置文件,一个是/etc/sysconfig/keepalived,一个是/etc/keepalived/keepalived.conf
* /etc/sysconfig/keepalived
该文件中的有效内容只有一行,三个节点上这个文件的内容一样。为
```
KEEPALIVED_OPTIONS="-D"
```
* /etc/keepalived/keepalived.conf
这个文件在三台主机上的配置会不一样
> A主机
```
global_defs {
notification_email {
acassen@firewall.loc
failover@firewall.loc
sysadmin@firewall.loc
}
notification_email_from Alexandre.Cassen@firewall.loc
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id LVS_DEVEL
}
vrrp_instance VI_1 {
state MASTER # B C 主机设为BACKUP
interface eth0 # IP对应的网卡
virtual_router_id 20 # 三台主机这个id要一致,如果局域网内还有其他的vip,注意这个值要与其他vip不同
priority 100 # MASTER设100,BACKUP设99
advert_int 1
# nopreempt # 非抢占模式,Master-Backup该配置无效
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.1.20/24 dev eth0 label eth0:20 # vip
}
}
```
> B C主机相同,如下
```
global_defs {
notification_email {
acassen@firewall.loc
failover@firewall.loc
sysadmin@firewall.loc
}
notification_email_from Alexandre.Cassen@firewall.loc
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id LVS_DEVEL
}
vrrp_instance VI_1 {
state BACKUP # B C 主机设为BACKUP
interface eth0 # IP对应的网卡
virtual_router_id 20 # 三台主机这个id要一致
priority 99 # MASTER设100,BACKUP设99
advert_int 1
# nopreempt # 非抢占模式,Master-Backup该配置无效
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.1.20/24 dev eth0 label eth0:20 # vip
}
}
```
### **3、unit文件**
* /usr/lib/systemd/system/keepalived.service
三台主机的内容一样,如下:
```
[Unit]
Description=LVS and VRRP High Availability Monitor
After=syslog.target network.target
[Service]
Type=forking
KillMode=process
EnvironmentFile=-/etc/sysconfig/keepalived
ExecStart=/usr/sbin/keepalived $KEEPALIVED_OPTIONS
ExecReload=/bin/kill -HUP $MAINPID
[Install]
WantedBy=multi-user.target
```
### **4、将keepalived设置为开机启动**
```
sudo systemctl enable keepalived
```
### **附录**
##### **Master-Backup与Backup-Backup模式**
keepalived有两种模式:Master-Backup与Backup-Backup,在上面的教程中,我们使用的是Master-Bakcup模式。如果要使用Backkup-Bakcup模式,那么每台主机上,state都要设置为`BACKUP`且priority的值也要一样。这两种模式的区别如下:
* Master-Bakcup:当Master节点正常时,VIP永远绑定在Master节点上;当Master节点挂掉后,VIP漂移到某个Backup节点上;当Master重新恢复正常后,VIP又会漂移回Master节点
* Backup-Bakcup:当VIP所在节点A挂掉后, VIP会漂移到另一个节点;当A节点恢复后,VIP不会再漂移回A节点(设置了非抢占)
参考 https://blog.csdn.net/chengxuyuanyonghu/article/details/83539966
- 常用命令
- 用户与用户组
- 创建用户与用户组
- 快速脚本
- umask
- Yum源
- 基础Yum源
- Epel源
- 制作Yum源
- 同步Yum源
- 为Yum源配置代理
- 下载RPM及依赖
- 系统与内核
- 获取内核的rpm包
- 升级内核
- Iptables
- 基本语法
- 匹配条件
- 基础匹配条件
- 扩展匹配条件
- Addrtype
- Set
- TCP
- Mark
- Multiport
- 目标
- 基本目标
- 扩展目标
- DNAT
- LOG
- CT
- NOTRACK
- MARK
- IP set
- 连接追踪
- 初识连接追踪
- 连接追踪详解
- NAT
- 思路与参考汇总
- 数据结构
- FAQ
- Keepalived
- 单网卡多VIP
- 安装Keepalived
- 双网卡绑VIP
- 别名VIP和辅助VIP
- LVS
- 安装LVS
- Ipvsadm命令
- 磁盘与分区
- 基础知识
- 创建分区
- 格式化与挂载
- Fstab
- LVM
- LVM扩容
- Swap分区
- Tmpfs
- 网络相关
- 重命名网卡
- resolv.conf
- Tcpdump
- nslookup与dig
- ifcg-xxx
- 主机名
- 软件安装
- NFS
- Squid
- Redsocks
- Shadowsocks
- 时钟同步
- Chrony
- FTP
- 文件句柄
- 简介
- 设置文件句柄
- 其他
- SSH密钥登录
- 进程组-会话-终端
- X11转发
- 环境变量
- 常见问题
- 系统进程数
- 系统调用
- 系统调用FAQ
- 用户程序如何进行系统调用