设为首页 收藏本站
查看: 847|回复: 2

[经验分享] keepalived 高可用方案

[复制链接]

尚未签到

发表于 2018-12-29 13:37:53 | 显示全部楼层 |阅读模式

  

  Keepalived 高可用lvs
  服务器准备:
  node1:  192.168.99.61     centos6.7   (keepalived+httpd)
  node2:  192.168.99.62     centos7.2    (keepalived+httpd)
  node3:  192.168.99.63     centos7.3        httpd服务
  node4:  192.168.99.64     centos7.4        httpd服务
    vip  :  192.168.99.88  node1
    yum -y install keepalived httpd  node2
    yum -y install keepalived httpd  node3
    yum -y install httpd  node4
    yum -y install httpd  node1 配置keepalived
[root@www keepalived]# cat keepalived.conf
! Configuration File for keepalived
global_defs {
   notification_email {
        runingday@126.com
   }
   notification_email_from keepalived@runner.vip
   smtp_server 127.0.0.1
   smtp_connect_timeout 30
   router_id node1
   vrrp_mcast_group4 224.0.0.8
}
vrrp_instance VI_1 {
    state MASTER
    interface eth1
    virtual_router_id 57
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 111222
    }
    virtual_ipaddress {
        192.168.99.88/32 dev eth1 brd 192.168.99.88 label eth1:0
    }
}
virtual_server 192.168.99.88 80 {
    delay_loop 3
    lb_algo rr
    lb_kind DR
    nat_mask 255.255.255.0
    protocol TCP
    real_server 192.168.99.63 80 {
        weight 1
        HTTP_GET {
            url {
              path /index.html
              #digest 640205b7b0fc66c1ea91c463fac6334d
              status_code 200
            }
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }
    real_server 192.168.99.64 80 {
        weight 1
        HTTP_GET {
            url {
              path /index.html
              #digest 640205b7b0fc66c1ea91c463fac6334d
              status_code 200
            }
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }
}  node2 keepalived配置
[root@centos7 keepalived]# cat /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
   notification_email {
        runingday@126.com
   }
   notification_email_from keepalived@runner.vip
   smtp_server 127.0.0.1
   smtp_connect_timeout 30
   router_id node2
   vrrp_mcast_group4 224.0.0.8
}
vrrp_instance VI_1 {
    state BACKUP
    interface enp0s8
    virtual_router_id 57
    priority 98
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 111222
    }
    virtual_ipaddress {
        192.168.99.88/32 dev enp0s8 brd 192.168.99.88 label enp0s8:0
    }
}
virtual_server 192.168.99.88 80 {
    delay_loop 3
    lb_algo rr
    lb_kind DR
    nat_mask 255.255.255.0
    protocol TCP
    real_server 192.168.99.63 80 {
        weight 1
        HTTP_GET {
            url {
              path /index.html
              #digest 640205b7b0fc66c1ea91c463fac6334d
              status_code 200
            }
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }
    real_server 192.168.99.64 80 {
        weight 1
        HTTP_GET {
            url {
              path /index.html
              #digest 640205b7b0fc66c1ea91c463fac6334d
              status_code 200
            }
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }
}  node3-node4配置虚拟vip脚本
[root@centos7 html]# cat vip.sh
#!/bin/bash
#
vip=192.168.99.88
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/all/arp_announce
        echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
        ifconfig lo:0 $vip netmask $mask broadcast $vip up
        route add -host $vip dev lo:0
        ;;
stop)
        ifconfig lo:0 down
        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/all/arp_announce
        echo 0 > /proc/sys/net/ipv4/conf/lo/arp_announce
        ;;
*)
        echo "Usage: $(basename $0) start | stop"
        ;;
esac  

  

  Keepalived 高可用httpd服务
  node1配置
[root@www keepalived]# cat keepalived.conf
! Configuration File for keepalived
global_defs {
   notification_email {
        runingday@126.com
   }
   notification_email_from keepalived@runner.vip
   smtp_server 127.0.0.1
   smtp_connect_timeout 30
   router_id node1
   vrrp_mcast_group4 224.0.0.8
}
vrrp_script chk_down {
        script "[[ -f /etc/keepalived/down ]] && exit 1 || exit 0 "
        interval 1
        weight -5
}
vrrp_script chk_httpd {
        script "killall -0 httpd && exit 0 || exit 1"
        interval 1
        weight -5
}
vrrp_instance VI_1 {
    state MASTER
    interface eth1
    virtual_router_id 57
    priority 100
    advert_int 1
    nopreempt
    authentication {
        auth_type PASS
        auth_pass 111222
    }
    virtual_ipaddress {
        192.168.99.88/32 dev eth1
    }
    track_script {
        chk_down
        chk_httpd
   }
   notify_master "/etc/keepalived/notify.sh master"
   notify_backup "/etc/keepalived/notify.sh backup"
   notify_fault "/etc/keepalived/notify.sh fault"
}  node2配置
[root@centos7 keepalived]# cat keepalived.conf
! Configuration File for keepalived
global_defs {
   notification_email {
        runingday@126.com
   }
   notification_email_from keepalived@runner.vip
   smtp_server 127.0.0.1
   smtp_connect_timeout 30
   router_id node2
   vrrp_mcast_group4 224.0.0.8
}
vrrp_script chk_down {
        script "[[ -f /etc/keepalived/down ]] && exit 1 || exit 0 "
        interval 1
        weight -5
}
vrrp_script chk_httpd {
        script "killall -0 httpd && exit 0 || exit 1"
        interval 1
        weight -5
}
vrrp_instance VI_1 {
    state BACKUP
    interface enp0s8
    virtual_router_id 57
    priority 98
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 111222
    }
    virtual_ipaddress {
        192.168.99.88/32 dev enp0s8
    }
    track_script {
        chk_down
        chk_httpd
   }
   notify_master "/etc/keepalived/notify.sh master"
   notify_backup "/etc/keepalived/notify.sh backup"
   notify_fault "/etc/keepalived/notify.sh fault"
}  notify脚本
[root@centos7 keepalived]# cat notify.sh
#!/bin/bash
#
contact="root@localhost"
notify() {
        mailsubject="$(hostname) to be $1, vip floating."
        mailbody="$(date + '%F %T'): vrrp transition, $(hostname) changed to be $1"
        echo "$mailbody" | mail -s "$mailsubject" $contact
}
case $1 in
master)
        notify master
        ;;
backup)
        notify backup
        systemctl restart httpd.service
        ;;
fault)
        notify fault
        systemctl restart httpd.service
        ;;
*)
        echo "Usage: $(basename $0) {master|backup|fault}"
        exit 1
        ;;
esac  





运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-657285-1-1.html 上篇帖子: KEEPALIVED的具体实现 下篇帖子: 32
累计签到:7 天
连续签到:1 天
发表于 2018-12-29 14:21:59 | 显示全部楼层
怎么找到想要的资源呢??

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

回复 支持 反对

使用道具 举报

累计签到:7 天
连续签到:1 天
发表于 2018-12-29 14:22:15 | 显示全部楼层
怎么找到想要的资源呢??

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表