keepalived高可用雙主lvs-dr模型集群

keepalived高可用雙主lvs-dr模型集群
keepalived高可用雙主lvs-dr模型集群
環境 centos6.8
在keepalived服務器上安裝keepalived RS服務器上安裝nginx ,安裝過程省略
為了便于實驗,四臺機器將關閉iptables和selinux

配置如下:

K1:

#修改keepalived配置文件

vim /etc/keepalived/keepalived.conf

! Configuration File for keepalived
global_defs {
notification_email {
root@localhost            #郵件地址
}
notification_email_from Alexandre.Cassen@firewall.loc     #定義發件人
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id 192.168.37.133   #此為keepalived1服務器的IP
vrrp_mcast_group4 224.0.100.32     #定義多播地址
}
vrrp_instance nginx1 {       #節點名稱
state BACKUP                #節點模式
interface eth0            #指定網卡名
virtual_router_id 51
priority 95            #權重
advert_int 1            #健康檢查間隔時間,生產環境配置請慎重
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {         #指定VIP
192.168.37.200/16 dev eth0
}
}
virtual_server 192.168.37.200 80{      #指定虛擬服務器
delay_loop 6                          
lb_algo wrr                       #循環模式
lb_kind DR                        #LVS工作模式
protocol TCP                       #協議
real_server 192.168.37.134 80     #真實物理機的ip和端口
{
weight 2                         #權重
HTTP_GET {                      #健康檢查的模式
url {
path /
status_code 200                  #如果返回狀態碼為200,則視為服務器健康   
}
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
real_server 192.168.37.135 80 {           #定義第二臺真實服務器
weight 1
HTTP_GET {
url {
path /
status_code 200
}
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
} } }
   
vrrp_instance nginx2 { #定義第二臺虛擬服務器
state MASTER
interface eth0
virtual_router_id 34
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 2222
}
virtual_ipaddress {
192.168.37.201/16 dev eth0
}
}
virtual_server 192.168.37.201 80{
delay_loop 6
lb_algo wrr
lb_kind DR
protocol TCP
real_server 192.168.37.134 80
{
weight 2
HTTP_GET {
url {
path /
status_code 200
}
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
real_server 192.168.37.135 80 {
weight 1
HTTP_GET {
url {
path /
status_code 200
}
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
} } }

#啟動keeplived
service keepalived restart
K2:

修改keepalived配置文件

vim /etc/keepalived/keepalived.conf

! Configuration File for keepalived
global_defs {
notification_email {
root@localhost
}
notification_email_from Alexandre.Cassen@firewall.loc
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id 192.168.37.130
vrrp_mcast_group4 224.0.100.32
}
vrrp_instance nginx1 {
state MASTER
interface eth0
virtual_router_id 51
priority100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.37.200/16 dev eth0
}
}
virtual_server 192.168.37.200 80{
delay_loop 6
lb_algo wrr
lb_kind DR
protocol TCP
real_server 192.168.37.134 80
{
weight 2
HTTP_GET {
url {
path /
status_code 200
}
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
real_server 192.168.37.135 80 {
weight 1
HTTP_GET {
url {
path /
status_code 200
}
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
} } }
   
vrrp_instance nginx2 {
state BACKUP
interface eth0
virtual_router_id 34
priority 95
advert_int 1
authentication {
auth_type PASS
auth_pass 2222
}
virtual_ipaddress {
192.168.37.201/16 dev eth0
}
}
virtual_server 192.168.37.201 80{
delay_loop 6
lb_algo wrr
lb_kind DR
protocol TCP
real_server 192.168.37.134 80
{
weight 2
HTTP_GET {
url {
path /
status_code 200
}
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
real_server 192.168.37.135 80 {
weight 1
HTTP_GET {
url {
path /
status_code 200
}
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
} } }

#啟動keeplived
service keepalived restart
RS1:
#修改Nginx的首頁為
echo “lvs1 RS1:192.168.37.135” > /usr/share/nginx/html/index.htm
#添加腳本
vim setpara.sh
   
    
vim setpara.sh
vip=192.168.37.200
vip2=192.168.37.201
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
rgoute add -host $vip dev lo:0
ifconfig lo:1 $vip2 netmask $mask broadcast $vip2 up
rgoute add -host $vip2 dev lo:0
;;
stop)
ifconfig lo:0 down
ifconfig lo:1 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"
exit 1
;;
esac

#執行腳本

 bash setpara.sh start

#配置完畢,啟動Nginx
service nginx restart
RS2:
修改Nginx的首頁為
echo “lvs1 RS2:192.168.37.134” > /usr/share/nginx/html/index.html
添加腳本
   
    
vim setpara.sh
vip=192.168.37.200
vip2=192.168.37.201
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
rgoute add -host $vip dev lo:0
ifconfig lo:1 $vip2 netmask $mask broadcast $vip2 up
rgoute add -host $vip2 dev lo:0
;;
stop)
ifconfig lo:0 down
ifconfig lo:1 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"
exit 1
;;
esac

#執行腳本 

bash setpara.sh start

#配置完畢,啟動Nginx

service nginx restart


有關keepalived配置問題,已及LVS-DR模式的ARP抑制原理隨后更新。


原創文章,作者:cnc,如若轉載,請注明出處:http://www.www58058.com/75374

(0)
cnccnc
上一篇 2017-05-13
下一篇 2017-05-13

相關推薦

  • 日常練習加部分步驟注釋

                                                      …

    2017-07-30
  • bash特性之命令行展開功能應用示例

                       bash特性之命令行展開功能應用示例 1.創建/tmp的目錄下:a_c,a_d,b_c,b_d 創建命令:mkdir -pv /tmp/{a,…

    Linux干貨 2017-07-09
  • lvs-dr實踐-week17

    1、結合圖形描述LVS的工作原理; lvs工作流程: ipvs是工作于input鏈上,監聽目標地址上對應的目標端口,如果這個端口對應的服務定義為集群服務, 就強行修改報文的流程,完成轉發, 通過postrouting送出去, 為了讓后端主機能夠接收, 此時需要讓RS也具有目標ip地址, 要么修改目標ip地址支持基于TCP,UDP,SCTP,AH,EST,AH…

    2017-05-23
  • ?文件系統層級結構標準

    多數Linux發行版遵從FHS標準并且聲明其自身政策以維護FHS的要求。 [1] [2] [3] [4] 然而,包括由自由標準小組成員在內開發的絕大多數發行版(截至2009年),并不完全執行建議的標準。
    當FHS創建之時,其他的UNIX和類Unix操作系統已經有了自己的標準,尤其是hier(7)文件系統布局描述。 自從第七版Unix(于1979年)發布以來已經存在,或是SunOS filesystem(7), [5] 和之后的Solaris filesystem(5)。 例如,Mac OS X使用如 /Library、 /Applications和/Users 等長名與傳統UNIX目錄層次保持一致。
    現在的Linux發行版包含一個/sys目錄作為虛擬文件系統(sysfs,類似于 /proc,一個procfs),它存儲且允許修改連接到系統的設備,然而許多傳統UNIX和類Unix操作系統使用/sys作為內核代碼樹的符號鏈接。
    一些Linux系統如GoboLinux和Syllable Server使用了和FHS完全不同的文件系統層次組織方法。

    Linux干貨 2016-10-17
  • shell腳本執行

    shell腳本執行 對于我們這些小白而講,shell腳本無疑是最令人頭疼的事了,我再這里講一下shell腳本運行要注意的哪些。 shell腳本就好像c++,java代碼一樣,按照從上到下然后從左到右的順序執行。就像我們日常讀書一樣。如果shell命令遇見了子進程(嵌套代碼),程序就會跟著順序進入子進程。當子進程完成后,回到父進程,并且把父進程所需要的參數提交…

    2017-06-05
  • 【26期】Linux第九周學習小總結

    本周帶來的是慢慢的技術分享,有關于計劃任務的分享,涉及的知識點主要是at和cron,crontab的詳解,計劃任務可以將任何腳本、程序或文檔安排在某個最方便的時間運行,有利于我們的自動化運維,當某項任務多次重復,或者某個指定的時間點多次執行時,就可以使用計劃任務方便我們的工作。

    2017-09-09
欧美性久久久久