keepalive基礎知識及主備模型搭建
keepalive:vrrp協議在Linux主機上以守護進程方式的實現; 能夠根據配置文件生成ipvs規則,並對各RS的健康做檢測;vrrp_script, vrrp_track;
keepalive組件:
核心組件:(checkers vrrp stack ipvs wrapperwatch dog)、IO復用器、內存管理、配置文件分析器
keepalive配置前提:
1.各節點時間要同步;ntp server 、chrony server
2.確保iptables及selinux不會成為障礙;
3.(可選)各節點之間可通過主機名互相通信;
節點的名稱設定與hosts文件中解析的主機名都要嚴格保持一致;
4.(可選)各節點之間基於密鑰認證的方式通過ssh互信通信;
配置文件:主配置文件:/etc/keepalived/keepalived.conf
Unit file: /usr/lib/systemd/system/keepalived.service
配置文件:/etc/sysconfig/keepalived
配置文件一共分為3段:GLOBAL CONFIGURATION、 VRRPD CONFIGURATION、LVS CONFIGURATION
global_defs {
notification_email {
...
}:收件人郵箱地址
notification_email_from:發件人郵箱地址
smtp_server:郵件發送服務器IP;
smtp_connect_timeout:郵件服務器建立連接的超時時長;
router_id LVS_DEVEL:物理節點的標識符;建議使用主機名,字符串;
vrrp_mcast_group4:IPV4多播地址,默認224.0.0.18;
vrrp_instance NAME
常用配置:
state MASTER|BACKUP:在當前VRRP實例中此節點的初始狀態;
interface IFACE_NAME:vrrp用於綁定vip的接口;
virtual_router_id #:當前VRRP實例的VRID,可用範圍為0-255,默認為51;
priority #:當前節點在虛擬路由的優先級,可用範圍0-255;
advert_int 1:通告時間間隔;
authentication { # Authentication block
# PASS||AH
# PASS - Simple Passwd (suggested)
# AH - IPSEC (not recommended))
auth_type PASS
# Password for accessing vrrpd.
# should be the same for all machines.
# Only the first eight (8) characters are used.
auth_pass 1234
}
virtual_ipaddress { 定義虛擬IP
<IPADDR>/<MASK> brd <IPADDR> dev <STRING> scope <SCOPE> label <LABEL>
192.168.200.17/24 dev eth1
192.168.200.18/24 dev eth2 label eth2:1
或者單獨給IP
}
track_interface:定義要監聽的接口
nopreempt:非搶占模式
# notify scripts, alert as above通告腳本
notify_master <STRING>|<QUOTED-STRING> [username [groupname]]
notify_backup <STRING>|<QUOTED-STRING> [username [groupname]]
notify_fault <STRING>|<QUOTED-STRING> [username [groupname]]
notify_stop <STRING>|<QUOTED-STRING> [username [groupname]]
keepalive主備簡單配置實現節點高可用:
配置環境:centos7主機兩臺,安裝軟件方式:yum -y install keepalived,ntp服務同步;配置模型如下圖:
編輯配置文件:vim /etc/keepalived/keepalived.cof
註:配置virtual_server段註釋掉,紅色框為第二個節點配置文件要修改內容:
啟動服務查看狀態:
模擬主節點故障:
1.查看master節點信息
2.backup信息:進入主節點模式
重啟主節點服務檢查狀態:開始健康狀態檢查,重新進入master模式
定義vrrp_notify通知命令在vrrp_instance
vim /etc/keepalived/keepalived.cof
通知腳本示例,給予執行權限,重啟服務;
檢查主機郵件信息:郵件接收正常
配置virtual-server;keepalived +lvs高可用基於DR模型
檢查ipvs集群狀態,以及監聽地址信息:
通過本地請求:
模擬場景測試:其中master故障,郵件通知,backup轉為主節點,測試訪問頁面正常;
real server都出現故障時訪問服務至sorry_server;
根據需要添加會話保持:persistence_timeout <INT> 持久連接
keepalive基礎知識及主備模型搭建