Linux 下搭建 Keepalived
文章
林里克斯
试验平台:CentOS Linux release 7.9.2009
Keepalived Version:Keepalived v2.1.5 (07/13,2020)
一、下载安装
1.官网
https://www.keepalived.org/
https://www.keepalived.org/download.html
#下载页
2.安装 Keepalived
- `yum` 安装
1.yum
安装
$ sudo yum -y install keepalived
2.安装完成后会生成以下文件
/usr/sbin/keepalived
#keepalived 命令二进制文件
/etc/keepalived/keepalived.conf
#主配置文件
/usr/lib/systemd/system/keepalived.service
#system 文件
- 源码安装
1.安装依赖
$ sudo yum -y install gcc gcc-c++ openssl-devel
#如果要支持IPv6还需要安装libnl3-devel
#不然会有以下警告
*** WARNING - this build will not support IPVS with IPv6. Please install libnl/libnl-3 dev libraries to support IPv6 with IPVS.
2.相关报错
#没有 openssl-devel
checking openssl/ssl.h usability... no
checking openssl/ssl.h presence... no
checking for openssl/ssl.h... no
configure: error:
!!! OpenSSL is not properly installed on your system. !!!
!!! Can not include OpenSSL headers files. !!!
3.下载解压
$ wget https://www.keepalived.org/software/keepalived-2.1.5.tar.gz
$ tar xf keepalived-2.1.5.tar.gz
$ cd keepalived-2.1.5
$ ./configure --prefix=/data/keepalived/ --sysconf=/data/keepalived/conf/
$ make && make install
4.普通用户执行 make install
可能会遇到以下报错
/usr/bin/install -c -m 644 keepalived.service '/usr/lib/systemd/system'
/usr/bin/install: cannot remove ‘/usr/lib/systemd/system/keepalived.service’: Permission denied
#这个是生成 system 的 keepalived.service 文件
二、配置文件详解
1.keepalived.conf
$ cat /data/keepalived/conf/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs { #全局配置
notification_email { #邮件通知
acassen@firewall.loc #收件人邮箱
}
notification_email_from Alexandre.Cassen@firewall.loc #发件人邮箱
smtp_server 192.168.200.1 #SMTP 服务
smtp_connect_timeout 30 #连接超时时间
router_id LVS_DEVEL #机器唯一标识,发送邮件时会知会此 id,可以直接使用主机名
vrrp_skip_check_adv_addr
vrrp_strict
vrrp_garp_interval 0
vrrp_gna_interval 0
}
vrrp_instance VI_1 { #VRRP 实例名,VI_1 可自定义
state MASTER #主备模式,只能有一个为 MASTER,其他均为 BACKUP
interface eth0 #绑定的网卡接口,填写网卡名字
virtual_router_id 51 #当前虚拟路由唯一标识,范围是 0-255
priority 100 #当前主机再次虚拟路由中的优先级,越大越优先,范围是 1-254,从不允许高于主
advert_int 1 #VRRP 通告的时间间隔,master 和 backup 之间检查
authentication { #认证,主从需一致
auth_type PASS #认证类型 PASS/AH
auth_pass 1111 #配置密码
}
virtual_ipaddress { #虚拟 VIP
192.168.200.16
192.168.200.17
192.168.200.18
}
}
notify_master "/data/keepalived/master.sh" # 当成为主模式时候, 执行的脚本
notify_backup "/data/keepalived/backup.sh" # 当成为备模式时候, 执行脚本
notify_fault "/data/keepalived/fault.sh" # 当成为 fault 模式, 执行脚本
track_script { # 跟踪脚本
check_httpd # 脚本名
}
virtual_server <IPADDR> <PORT> { #虚拟主机
delay_loop 6 #service polling的delay时间,即服务轮询的时间间隔
lb_algo rr #LVS 调度算法 rr|wrr|lc|wlc|lblc|sh|dh
lb_kind NAT #LVS 集群模式 NAT|DR|TUN
persistence_timeout 50 #会话保持时间(秒为单位),即以用户在 120 秒内被分配到同一个后端 realserver
protocol TCP #健康检查 TCP|UDP
sorry_server <IPADDR> <PORT> #
real_server <IPADDR> <PORT> { #后端真实节点主机的权重等设置,主要,后端有几台这里就要设置几个
weight 1 #给每台的权重,0 表示失效(不知给他转发请求知道他恢复正常),默认是 1
SSL_GET {
url {
path /
digest ff20ad2481f97b1754ef3e12ecd3a9cc
}
url {
path /mrtg/
digest 9b3a0c85a887a256d6939da88aabd8cd
}
connect_timeout 3
retry 3
delay_before_retry 3
}
}
}
2.如果搭建完发现虚拟ip同时出现了在多台资源上,是由于开了防火墙未放通组播地址导致的
需要放开组播地址的权限:
iptables -I INPUT -i eth0 -d 224.0.0.18 -j ACCEPT
firewall-cmd --direct --permanent --add-rule ipv4 filter INPUT 0 --in-interface eth0 --destination 224.0.0.18 --protocol vrrp -j ACCEPT
firewall-cmd --direct --permanent --add-rule ipv4 filter OUTPUT 0 --out-interface eth0 --destination 224.0.0.18 --protocol vrrp -j ACCEPT
Over~
版权协议须知!
本篇文章来源于 Uambiguous ,如本文章侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
1205 0 2020-11-30
博主卡片
运维时间
搭建这个平台,只为分享及记载自己所遇之事和难题。
现在时间 2024-12-28
今日天气
随机推荐
10-15
redis-cli info 详解
02-05
使用Git命令上传代码到GitHub
10-07
CentOS 系统管理启动项
07-07
深入理解Docker(一)
08-17
zabbix 监控 Windows
站点统计
- 文章总数:241篇
- 分类总数:29个
- 评论总数:12条
- 本站总访问量 353541 次
@xiaozi 最后的分享的镜像下载地址打不开 服务器没有开机吗?
@yuanyuan 为什么我的4b安装centos7.9 插上tf卡 显示不兼...
@Wong arrhenius 牛比
@MakerFace 厉害了!
@TongSir 老哥 更新下我的友链链接 https://blog.ton...