欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

haproxy+keepalived如何搭建高可用負載均衡器-創(chuàng)新互聯(lián)

這篇文章給大家介紹haproxy+keepalived如何搭建高可用負載均衡器,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

創(chuàng)新互聯(lián)長期為超過千家客戶提供的網站建設服務,團隊從業(yè)經驗10年,關注不同地域、不同群體,并針對不同對象提供差異化的產品和服務;打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網生態(tài)環(huán)境。為托克托企業(yè)提供專業(yè)的網站設計、成都網站設計,托克托網站改版等技術服務。擁有十多年豐富建站經驗和眾多成功案例,為您定制開發(fā)。

企業(yè)業(yè)務量比較小的時候,單臺服務器就可以滿足業(yè)務需要了。但是隨著業(yè)務發(fā)展,單服務器的問題就凸顯出來了:

  • 當服務器掛掉時,業(yè)務就會中斷

  • 當業(yè)務量增加,單臺服務器性能變差,如何透明的擴展服務器和帶寬,增加服務器吞吐量

負載均衡器可以解決以上問題

1 負載均衡器拓撲圖

根據(jù)拓撲圖,用haproxy和keepalived搭建一個負載均衡器

2 準備

2.1 準備環(huán)境

準備5臺CentOS7.3主機和一個VIP地址:

  • 準備一個可用IP用作虛擬IP(VIP):

    • VIP: 192.168.1.100

  • 負載均衡器會用到2臺主機,一主一備的架構

    • lb1(默認為主): 192.168.1.101

    • lb2(默認為備): 192.168.1.102

  • 后端服務器集群中主機的IP地址

    • s1: 192.168.1.2

    • s2: 192.168.1.3

    • s3: 192.168.1.4

2.2 主機配置

2.2.1 所有主機上關閉防火墻
systemctl stop firewalld
systemctl disable firewalld
2.2.2 所有主機關閉selinux
setenforce 0
vi /etc/selinux/config
SELINUX=disabled

2.3 安裝haproxy和keepalived

lb1和lb2上安裝haproxy和keepalived

yum install haproxy keepalived -y

2.4 安裝nginx(有其他后端測程序,可省略此步)

s1 s2 s3上安裝nginx,目的是把nginx作為后端,如果有其他后端程序,這一步可以省略

yum install epel-release -y
yum install nginx -y

2.3 配置keepalived

KeepAlived是基于VRRP(Virtual Router Redundancy Protocol,虛擬路由冗余協(xié)議)實現(xiàn)的一個高可用方案,通過VIP(虛擬IP)和心跳檢測來實現(xiàn)高可用

Keepalived有兩個角色,Master和Backup。一般會是1個Master,多個Backup。

Master會綁定VIP到自己網卡上,對外提供服務。Master和Backup會定時確定對方狀態(tài),當Master不可用的時候,Backup會通知網關,并把VIP綁定到自己的網卡上,實現(xiàn)服務不中斷,高可用

2.3.1 配置Master

編輯lb1(192.168.1.101)上的/etc/keepalived/keepalived.conf

! Configuration File for keepalived
global_defs {   # 通知郵件服務器的配置
   notification_email {     # 當master失去VIP或則VIP的時候,會發(fā)一封通知郵件到y(tǒng)our-email@qq.com
     your-email@qq.com
   }   # 發(fā)件人信息
   notification_email_from keepalived@qq.com   # 郵件服務器地址
   smtp_server 127.0.0.1   # 郵件服務器超時時間
   smtp_connect_timeout 30   # 郵件TITLE
   router_id LVS_DEVEL
}
vrrp_instance VI_1 {    # 主機: MASTER
    # 備機: BACKUP
    state MASTER    # 實例綁定的網卡, 用ip a命令查看網卡編號
    interface eno16777984    # 虛擬路由標識,這個標識是一個數(shù)字(1-255),在一個VRRP實例中主備服務器ID必須一樣
    virtual_router_id 88    # 優(yōu)先級,數(shù)字越大優(yōu)先級越高,在一個實例中主服務器優(yōu)先級要高于備服務器
    priority 100    # 主備之間同步檢查的時間間隔單位秒
    advert_int 1    # 驗證類型和密碼
    authentication {        # 驗證類型有兩種 PASS和HA
        auth_type PASS        # 驗證密碼,在一個實例中主備密碼保持一樣
        auth_pass 11111111
    }    # 虛擬IP地址,可以有多個,每行一個
    virtual_ipaddress {
        192.168.1.100
    }
}
virtual_server 192.168.1.100 443 {    # 健康檢查時間間隔
    delay_loop 6    # 調度算法
    # Doc: http://www.keepalived.org/doc/scheduling_algorithms.html
    # Round Robin (rr)
    # Weighted Round Robin (wrr)
    # Least Connection (lc)
    # Weighted Least Connection (wlc)
    # Locality-Based Least Connection (lblc)
    # Locality-Based Least Connection with Replication (lblcr)
    # Destination Hashing (dh)
    # Source Hashing (sh)
    # Shortest Expected Delay (seq)
    # Never Queue (nq)
    # Overflow-Connection (ovf)
    lb_algo rr
    lb_kind NAT
    persistence_timeout 50
    protocol TCP    # 通過調度算法把Master切換到真實的負載均衡服務器上
    # 真實的主機會定期確定進行健康檢查,如果MASTER不可用,則切換到備機上
    real_server 192.168.1.101 443 {
        weight 1
        TCP_CHECK {            # 連接超端口
            connect_port 443            # 連接超時時間
            connect_timeout 3
        }
    }
    real_server 192.168.1.102 443 {
        weight 1
        TCP_CHECK {
            connect_port 443
            connect_timeout 3
        }
    }
}
2.3.2 配置BACKUP

編輯lb2(192.168.1.102)上的/etc/keepalived/keepalived.conf

! Configuration File for keepalived
global_defs {   # 通知郵件服務器的配置
   notification_email {     # 當master失去VIP或則VIP的時候,會發(fā)一封通知郵件到y(tǒng)our-email@qq.com
     your-email@qq.com
   }   # 發(fā)件人信息
   notification_email_from keepalived@qq.com   # 郵件服務器地址
   smtp_server 127.0.0.1   # 郵件服務器超時時間
   smtp_connect_timeout 30   # 郵件TITLE
   router_id LVS_DEVEL
}
vrrp_instance VI_1 {    # 主機: MASTER
    # 備機: BACKUP
    state BACKUP    # 實例綁定的網卡, 用ip a命令查看網卡編號
    interface eno16777984    # 虛擬路由標識,這個標識是一個數(shù)字(1-255),在一個VRRP實例中主備服務器ID必須一樣
    virtual_router_id 88    # 優(yōu)先級,數(shù)字越大優(yōu)先級越高,在一個實例中主服務器優(yōu)先級要高于備服務器
    priority 99    # 主備之間同步檢查的時間間隔單位秒
    advert_int 1    # 驗證類型和密碼
    authentication {        # 驗證類型有兩種 PASS和HA
        auth_type PASS        # 驗證密碼,在一個實例中主備密碼保持一樣
        auth_pass 11111111
    }    # 虛擬IP地址,可以有多個,每行一個
    virtual_ipaddress {
        192.168.1.100
    }
}
virtual_server 192.168.1.100 443 {    # 健康檢查時間間隔
    delay_loop 6    # 調度算法
    # Doc: http://www.keepalived.org/doc/scheduling_algorithms.html
    # Round Robin (rr)
    # Weighted Round Robin (wrr)
    # Least Connection (lc)
    # Weighted Least Connection (wlc)
    # Locality-Based Least Connection (lblc)
    # Locality-Based Least Connection with Replication (lblcr)
    # Destination Hashing (dh)
    # Source Hashing (sh)
    # Shortest Expected Delay (seq)
    # Never Queue (nq)
    # Overflow-Connection (ovf)
    lb_algo rr
    lb_kind NAT
    persistence_timeout 50
    protocol TCP    # 通過調度算法把Master切換到真實的負載均衡服務器上
    # 真實的主機會定期確定進行健康檢查,如果MASTER不可用,則切換到備機上
    real_server 192.168.1.101 443 {
        weight 1
        TCP_CHECK {            # 連接超端口
            connect_port 443            # 連接超時時間
            connect_timeout 3
        }
    }
    real_server 192.168.1.102 443 {
        weight 1
        TCP_CHECK {
            connect_port 443
            connect_timeout 3
        }
    }
}

2.4 配置haproxy

編輯lb1(192.168.1.101)和lb2(192.168.1.102)上的/etc/haproxy/haproxy.cfg
把后端服務器IP(192.168.1.2, 192.168.1.3, 192.168.1.4)加到backend里

#---------------------------------------------------------------------# Global settings#---------------------------------------------------------------------global    log         127.0.0.1 local2
    chroot      /var/lib/haproxy
    pidfile     /var/run/haproxy.pid
    maxconn     4096
    user        haproxy
    group       haproxy
    daemon    # turn on stats unix socket
    stats socket /var/lib/haproxy/stats
listen stats    bind    *:9000
    mode    http
    stats   enable
    stats   hide-version
    stats   uri       /stats
    stats   refresh   30s
    stats   realm     Haproxy\ Statistics
    stats   auth      admin:admin
frontend  k8s-api    bind *:443
    mode tcp
    option tcplog
    tcp-request inspect-delay 5s
    tcp-request content accept if { req_ssl_hello_type 1 }
    default_backend k8s-api-backend
backend k8s-api-backend
    mode tcp
    option tcplog
    option tcp-check
    balance roundrobin
    server master1 192.167.1.2:80 maxconn 1024 weight 5 check
    server master2 192.167.1.3:80 maxconn 1024 weight 5 check
    server master3 192.167.1.4:80 maxconn 1024 weight 5 check

2.5 配置nginx

給nginx添加SSL證書,配置過程略

vi /usr/share/nginx/html/index.html

把index.html里面字符串Welcome to nginx改成Welcome to nginx HA

3 啟動服務

3.1 啟動nginx

sudo systemctl start nginx
sudo systemctl enable nginx

3.2 啟動haproxy

sudo systemctl start haproxy
sudo systemctl enable haproxy

3.3 啟動keepalived

sudo systemctl start keepalived
sudo systemctl enable keepalived

在MASTER上運行ip a

 eno16777984: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000
    link/ether 00:xx:xx:xx:3d:0c brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.101/24 brd 192.168.1.255 scope global eno16777984
       valid_lft forever preferred_lft forever
    inet 192.168.1.100/32 scope global eno16777984
       valid_lft forever preferred_lft forever
    inet6 eeee:eeee:1c9d:2009:250:56ff:fe9c:3d0c/64 scope global noprefixroute dynamic
       valid_lft 7171sec preferred_lft 7171sec
    inet6 eeee::250:56ff:eeee:3d0c/64 scope link
       valid_lft forever preferred_lft forever

會發(fā)現(xiàn)VIP(192.168.1.100)已經綁定好了

inet 192.168.1.100/32 scope global eno16777984
       valid_lft forever preferred_lft forever

如果發(fā)現(xiàn)VIP無法綁定

vi /etc/sysctl.conf

添加兩行

net.ipv4.ip_forward = 1
net.ipv4.ip_nonlocal_bind = 1

讓新配置生效

sysctl -p

4 驗證

4.1 查看狀態(tài)

1. 在瀏覽器輸入 http://192.168.1.100:9000/stats 查看haproxy狀態(tài)2. 在瀏覽器輸入 https://192.168.1.100 查看服務狀態(tài)
   是否成功顯示為nginx歡迎頁面

4.2 主備切換

1. 在瀏覽器輸入 https://192.168.1.100 查看是否成功顯示nginx歡迎頁面2. lb1(192.168.1.101)關機,查看是否還可以訪問https://192.168.1.100, 如果成功,則說明VIP成功切換到備機3. 在lb2(192.168.1.102)上執(zhí)行ip a,查看網卡是否綁定VIP(192.168.1.100)3. 啟動lb1(192.168.1.101)   目的是為了驗證VIP是否切回MASTER主機(因為MASTER端的配置文件中priority為100,而BACKUP為99,heal

關于haproxy+keepalived如何搭建高可用負載均衡器就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

新聞標題:haproxy+keepalived如何搭建高可用負載均衡器-創(chuàng)新互聯(lián)
標題來源:http://www.chinadenli.net/article36/dcccpg.html

成都網站建設公司_創(chuàng)新互聯(lián),為您提供定制網站App開發(fā)企業(yè)網站制作服務器托管關鍵詞優(yōu)化品牌網站建設

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

成都網站建設公司