keepalived實現wrrp熱網關備份:
keepalived配置文件如下
主:
! Configuration File for keepalived
global_defs {
notification_email {
acassen@firewall.loc
failover@firewall.loc
sysadmin@firewall.loc
}
notification_email_from root@node1.com //管理員郵箱
smtp_server 127.0.0.1 //郵箱服務器
smtp_connect_timeout 30 //郵箱連接超時
router_id CentOS7-node1 //本地主機名
vrrp_mcast_vgroup4 224.0.100.100 //進行心跳測試的組播地址
}
vrrp_instance vr { //定義一個網絡名字vr
state MASTER //此設備狀態為MASTER
interface enp0s3 //端口
virtual_router_id 55 //定義一個唯一的標識縞號
priority 100 //定義此設備的優先級
advert_int //每一次進行組播的時間間隔
authentication { //認證方式
auth_type PASS //認證類型
auth_pass 1111 //認證字符串
}
virtual_ipaddress { //虛擬地址
172.18.35.111/16 dev enp0s3 虛擬地址與設備
}
}
備:
! Configuration File for keepalived
global_defs {
notification_email {
acassen@firewall.loc
failover@firewall.loc
sysadmin@firewall.loc高可用之keepalived
keepalived實現wrrp熱網關備份:
配置網關上的keepalived,配置文件如下
主:
! Configuration File for keepalived
global_defs {
notification_email {
acassen@f
}
notification_email_from root@node2.com
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id CentOS6-node2
vrrp_mcast_vgroup4 224.0.100.100
}
vrrp_instance vr {
state BACKUP
interface eth0
virtual_router_id 55
priority 98
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
172.18.35.111/16 dev eth0
}
} 配置含意同上
keepalived的雙主模式:
! Configuration File for keepalived
global_defs {
notification_email {
acassen@firewall.loc
failover@firewall.loc
sysadmin@firewall.loc
}
notification_email_from root@node1.com
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id CentOS7-node1
vrrp_mcast_vgroup4 224.0.100.9
}
vrrp_instance vr { //第一個vr主
state MASTER
interface enp0
virtual_router_id 51 //第一個主的唯一縞號
priority 100 //第一個主的優先級
advert_int 1 //組播間隔時間
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
172.18.35.111/16 dev enp0s3 //第一個熱備的地址與接口
}
}
vrrp_instance vr1 { //第二個從vr1
state BACKUP //定義了備
interface enp0s3 //定義接口
virtual_router_id 52 //定義第二個唯一值
priority 98 //定義備份服務器的優先級
advert_int 1 //定義組播廣播間隔時間
authentication {
auth_type PASS
auth_pass 1235 //定義了第二個熱備的認證字符
}
virtual_ipaddress {
172.18.35.112/16 dev enp0s3 //定義了第二個熱備的地址與接口
}
}
keepalived實現LVS的高可用性
!/bin/bash
VIP=”172.18.35.103″
Device=”lo:0″
MASK=”255.255.255.255″
case $1 in
start)
echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
ifconfig $Device $VIP netmask $MASK broadcast $VIP up
route add -host $VIP dev $Device
;;
stop)
echo 0 > /proc/sys/net/ipv4/conf/all/arp_ignore
echo 0 > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo 0 > /proc/sys/net/ipv4/conf/lo/arp_announce
echo 0 > /proc/sys/net/ipv4/conf/all/arp_announce
ifconfig $Device down
route del -host $VIP dev $Device
;;
*)
echo “Usage $(basename $0) {start|stop}”;;
esac
配置VS的keepalived:配置文件內容如下
keepalived主服務器配置
! Configuration File for keepalived
global_defs {
notification_email {
acassen@firewall.loc
}
notification_email_from root@node1.com
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id CentOS7-node1
vrrp_mcast_vgroup4 224.0.100.9
}
vrrp_instance vr {
state MASTER
interface enp0s3
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
172.18.35.103/16 dev enp0s3
}
}
virtual_server 172.18.35.103 80 { //配置LVS的VIP與vprot
delay_loop 3 //延遲時間
lb_algo wrr //采用wrr算法
lb_kind DR //使用LVS的DR模型
#persistence_timeout 30 //這個是定義長連接時間的
protocol TCP //使用的傳輸層協議,目前只支持TCP協議
sorry_server 127.0.0.1 80 //定義的sorry服務器的地址與端口
real_server 172.18.250.38 80 { //定義一個RS,此處說明地址與端口
weight 2 //服務器性能參數,權重
HTTP_GET { //定義健康監測,此處為應用協議
url {
path / //訪問的uri
status_code 200 //反回響應狀態碼
}
}
}
real_server 172.18.250.24 80 { //第二個RS
weight 1
HTTP_GET {
url {
path /
status 200
}
}
}
connect_timeout 1
ng_get_retry 3
delay_before_retry 1
}
keepalived從服務器配置:
同主的配置,只有vrrp略有差異,下面為vrrp段配置
vrrp_instance vr {
state BACKUP
interface eth0
virtual_router_id 51
priority 98
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
172.18.35.103/16 dev eth0
}
}
keepalived實現LVS的雙主模式
這里貼keepalive的主配置文件,其它配置與上一示例相同,配置內容如下
! Configuration File for keepalived
global_defs {
notification_email {
acassen@firewall.loc
}
notification_email_from root@node1.com
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id CentOS7-node1
vrrp_mcast_vgroup4 224.0.100.9
}
vrrp_instance vr {
state MASTER
interface enp0s3
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
172.18.35.103/16 dev enp0s3
}
}
vrrp_instance vr1 {
state BACKUP
interface enp0s3
virtual_router_id 52
priority 98
advert_int 1
authentication {
auth_type PASS
auth_pass 1234
}
virtual_ipaddress {
172.18.35.111/16 dev enp0s3
}
}
virtual_server 172.18.35.103 80 {
delay_loop 3
lb_algo wrr
lb_kind DR
#persistence_timeout 30
protocol TCP
sorry_server 127.0.0.1 80
real_server 172.18.250.38 80 {
weight 2
HTTP_GET {
url {
path /
status 200
}
}
}
real_server 172.18.250.24 80 {
weight 1
HTTP_GET {
url {
path /
status 200
}
}
}
connect_timeout 1
ng_get_retry 3
delay_before_retry 1
}
virtual_server 172.18.35.111 80 {
delay_loop 3
lb_algo wrr
lb_kind DR
#persistence_timeout 30
protocol TCP
sorry_server 127.0.0.1 80
real_server 172.18.250.38 80 {
weight 1
HTTP_GET {
url {
path /
status 200
}
}
}
connect_timeout 1
ng_get_retry 3
delay_before_retry 1
}
virtual_server 172.18.35.111 80 {
delay_loop 3
lb_algo wrr
lb_kind DR
#persistence_timeout 30
protocol TCP
sorry_server 127.0.0.1 80
real_server 172.18.250.38 80 {
weight 1
HTTP_GET {
url {
path /
status 200
}
}
}
real_server 172.18.250.24 80 {
weight 1
HTTP_GET {
url {
path /
status 200
}
}
}
connect_timeout 1
ng_get_retry 3
delay_before_retry 1
}
注:由于這個雙主需要的是兩VIP,所以備RS上必須建立兩個回環地址也就是lo:0與lo:1,兩次配置一樣,也需要添加路由
使用keepalived配置nginx負載均衡的高可用性
配置nginx,在http段加入如下內容,將所有的server全部注釋掉,兩個nginx配置相同
upstream websrvs{
ip_hash;
server 172.18.250.38 weight=1;
server 172.18.250.24 weight=2;
}
server {
listen *:80;
location / {
proxy_pass http://websrvs;
}
}
在master上配置keepalived
! Configuration File for keepalived
global_defs {
notification_email {
acassen@firewall.loc
}
notification_email_from root@node1.com
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id CentOS7-node1
vrrp_mcast_vgroup4 224.0.100.9
}
vrrp_script nginx_check {
script “killall -0 nginx && exit 0 || exit 1”
interval 1
weight 5
full 2
rise 1
}
vrrp_instance vr {
state MASTER
interface enp0s3
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
track_script {
nginx_check
}
virtual_ipaddress {
172.18.35.103/16 dev enp0s3
}
}
原創文章,作者:xiangx,如若轉載,請注明出處:http://www.www58058.com/75897