日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Keepalived配置文件详解

發(fā)布時(shí)間:2023/12/20 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Keepalived配置文件详解 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
keepalivedkeepalived是集群管理中保證集群高可用的一個(gè)服務(wù)軟件,其功能類似于heartbeat,用來防止單點(diǎn)故障。keepalived工作原理keepalived是以VRRP(Virtual Router Redundancy Protocol,即虛擬路由冗余協(xié)議)協(xié)議為實(shí)現(xiàn)基礎(chǔ)的。虛擬路由冗余協(xié)議,可以認(rèn)為是實(shí)現(xiàn)路由器高可用的協(xié)議,即將N臺(tái)提供相同功能的路由器組成一個(gè)路由器組,這個(gè)組里面有一個(gè)master和多個(gè)backup,master上面有一個(gè)對(duì)外提供服務(wù)的vip(該路由器所在局域網(wǎng)內(nèi)其他機(jī)器的默認(rèn)路由為該vip),master會(huì)發(fā)組播,當(dāng)backup收不到vrrp包時(shí)就認(rèn)為master宕掉了,這時(shí)就需要根據(jù)VRRP的優(yōu)先級(jí)選舉一個(gè)backup當(dāng)master。這樣的話就可以保證路由器的高可用了。keepalived主要有三個(gè)模塊,分別是core、check和vrrp。core模塊為keepalived的核心,負(fù)責(zé)主進(jìn)程的啟動(dòng)、維護(hù)以及全局配置文件的加載和解析。check負(fù)責(zé)健康檢查,包括常見的各種檢查方式。vrrp模塊是來實(shí)現(xiàn)VRRP協(xié)議的。keepalived的配置文件keepalived只有一個(gè)配置文件keepalived.conf,里面主要包括以下幾個(gè)配置區(qū)域,分別是global_defs、(static_ipaddress、static_routes)、vrrp_script、vrrp_instance和virtual_server。
配置前提:(1) 各節(jié)點(diǎn)時(shí)間必須同步;(2) 確保iptables及selinux不會(huì)成為阻礙;
配置文件詳解#全局定義塊global_defs { # 郵件通知配置 notification_email { # 故障發(fā)生時(shí)給誰發(fā)郵件通知 email1 email2 } notification_email_from email # 通知郵件從哪個(gè)地址發(fā)出 smtp_server host ????????# 通知郵件的smtp地址 smtp_connect_timeout num # 連接smtp服務(wù)器的超時(shí)時(shí)間 lvs_id string ????????????????????????# lvs負(fù)載均衡器標(biāo)識(shí),在一個(gè)網(wǎng)絡(luò)內(nèi),它的值應(yīng)該是唯一的 router_id string ????????????????????????# 標(biāo)識(shí)本節(jié)點(diǎn)的字條串,通常為hostname,故障發(fā)生時(shí),郵件通知會(huì)用到}
#本節(jié)點(diǎn)的IP和路由信息,一般不用配置static_ipaddress {? ? 10.210.214.163/24 brd 10.210.214.255 dev eth0? ? ...}static_routes {? ? 10.0.0.0/8 via 10.210.214.1 dev eth0? ? ...}

#VRRP健康檢查,當(dāng)時(shí)檢查失敗時(shí)會(huì)將vrrp_instance的priority減少相應(yīng)的值?vrrp_script?check_nginx?{???? ????????????????????script?"/root/check_nginx.sh"?? #定義監(jiān)控nginx的腳本????interval?2???????????????????????????? #監(jiān)控時(shí)間間隔??????weight?2????????????????????????????? #失敗之后減少2點(diǎn)}?#VRRP實(shí)例定義塊#用來定義vrrp_intance組,使得這個(gè)組內(nèi)成員動(dòng)作一致vrrp_sync_group string { group { string string }notify_master /path/xx.sh #指定當(dāng)切換到master時(shí),執(zhí)行的腳本netify_backup /path/xx.sh #指定當(dāng)切換到backup時(shí),執(zhí)行的腳本notify_fault "path/xx.sh VG_1" #故障時(shí)執(zhí)行的腳本notify /path/xx.sh?smtp_alert #使用global_defs中提供的郵件地址和smtp服務(wù)器發(fā)送郵件通知}vrrp_instance string { #vrrp實(shí)例名,可以配置多個(gè),至少要需要修改id,即vrrp組名 state MASTER|BACKUP #實(shí)例狀態(tài),MASTER 和 BACKUP兩種,全部大寫。搶占模式下,其中MASTER為工作狀態(tài),BACKUP為備用狀態(tài)。當(dāng)MASTER所在的服務(wù)器失效時(shí),BACKUP所在的服務(wù)會(huì)自動(dòng)把它的狀態(tài)由BACKUP切換到MASTER狀態(tài)。當(dāng)失效的MASTER所在的服務(wù)恢復(fù)時(shí),BACKUP從MASTER恢復(fù)到BACKUP狀態(tài),如果設(shè)置了nopreempt這個(gè)值不起作用,主備考priority決定 virtual_router_id num #vrrp組名,每個(gè)節(jié)點(diǎn)設(shè)置必須一樣,可選擇IP最后一段使用? interface string #對(duì)外提供服務(wù)的網(wǎng)卡接口,實(shí)例綁定網(wǎng)卡 ???????dont_track_primary ??????#忽略vrrp的interface錯(cuò)誤(默認(rèn)不設(shè)置)???????? mcast_src_ip @IP ??????#發(fā)送多播包的地址,如果不設(shè)置默認(rèn)使用綁定網(wǎng)卡的primary ip???????? priority num ??????#節(jié)點(diǎn)優(yōu)先級(jí),取值范圍0~254,MASTER比BACKUP高???????? advert_int num ??????#MASTER與BACKUP節(jié)點(diǎn)間同步檢查的時(shí)間間隔,單位為秒? ??????nopreempt ???? #禁止搶占服務(wù)。MASTER從掛掉到恢復(fù),不再將服務(wù)搶占過來 smtp_alert ??????#有故障時(shí)是否激活郵件通知? ??????preempt_delay ??????#搶占延時(shí),默認(rèn)5分鐘??? ??? debug ??????#debug級(jí)別??????? lvs_sync_daemon_interface string #負(fù)載均衡器之間的監(jiān)控接口,類似于 HA HeartBeat 的心跳線。但它的機(jī)制優(yōu)于 Heartbeat,因?yàn)樗鼪]有“裂腦”這個(gè)問題,它是以優(yōu)先級(jí)這個(gè)機(jī)制來規(guī)避這個(gè)麻煩的。在 DR 模式中,lvs_sync_daemon_inteface與服務(wù)接口interface使用同一個(gè)網(wǎng)絡(luò)接口。一般不調(diào) authentication { ????#驗(yàn)證類型和驗(yàn)證密碼,兩節(jié)點(diǎn)必須一致。類型有 PASS、AH ,通常使用PASS,據(jù)說AH使用時(shí)有問題。驗(yàn)證密碼為明文,同一vrrp 實(shí)例使用相同的密碼才能正常通信 auth_type PASS|AH auth_pass string } virtual_ipaddress { ????????????????????????# 虛擬IP地址池,可有多個(gè)IP,每個(gè)IP占一行,不需要指定子網(wǎng)掩碼。注意:這個(gè)IP必須與我們的設(shè)定的vip保持一致。 IP IP }}#虛擬服務(wù)器定義塊virtual_server (IP PORT)|(fwmark num) { 定義一個(gè)虛擬服務(wù)器,這個(gè)ip是virtual_ipaddress中定義的其中一個(gè),后面一個(gè)空格,然后加上虛擬服務(wù)的端口號(hào) delay_loop num 健康檢查時(shí)間間隔,單位:秒? lb_algo rr|wrr|lc|wlc|sh|dh|lblc 負(fù)載均衡調(diào)度算法,互聯(lián)網(wǎng)應(yīng)用常用方式為wlc或rr? lb_kind NAT|DR|TUN 負(fù)載均衡轉(zhuǎn)發(fā)規(guī)則。DR|NAT|TUN 3種,一般使用路由(DR) persistence_timeout num http服務(wù)會(huì)話保持時(shí)間,單位:秒? protocol TCP|UDP 轉(zhuǎn)發(fā)協(xié)議,分為TCP和UDP兩種 persistence_granularity <NETMASK> lvs會(huì)話保持粒度??? virtualhost <string> 檢查的web服務(wù)器的虛擬主機(jī)(host:頭)??????? sorry_server<IPADDR> <port> 備用機(jī),所有realserver失效后啟用 real_server @IP PORT { 真實(shí)服務(wù)器IP和端口,可以定義多個(gè) weight num ????????負(fù)載權(quán)重,值越大,轉(zhuǎn)發(fā)的優(yōu)先級(jí)越高? notify_down /path/script.sh 服務(wù)停止后執(zhí)行的腳本
TCP_CHECK { ????????TCP服務(wù)有效性檢測(cè)? connect_port num 服務(wù)健康檢查的端口 nb_get_retry 3 重連次數(shù)??????????? delay_before_retry 3 重連間隔時(shí)間 connect_timeout num 服務(wù)連接超時(shí)時(shí)長(zhǎng),單位:秒? }
HTTP_GET|SSL_GET { ????????HTTP健康檢查 url { 檢查url,可指定多個(gè) path /??? ???? digest <string> 頁面的MD5值,不能亂寫??? ???? status_code 200 檢查的返回狀態(tài)碼 } connect_port num 服務(wù)健康檢查的端口 connect_timeout num 服務(wù)連接超時(shí)時(shí)長(zhǎng),單位:秒 nb_get_retry num 服務(wù)連接失敗重試次數(shù)? delay_before_retry num 重試連接間隔,單位:秒 }
MISC_CHECK{ ????????????MISC健康檢查,調(diào)用腳本檢查??? misc_path <string> | <quoted-string> 外部腳本路徑??? misc_timeout 腳本執(zhí)行超時(shí)時(shí)間?? misc_dynamic 如設(shè)置該項(xiàng),則退出狀態(tài)碼會(huì)用來動(dòng)態(tài)調(diào)整服務(wù)器的權(quán)重,返回0 正常,不修改;返回1,檢查失敗,權(quán)重改為0;返回2-255,正常,權(quán)重設(shè)置為:返回狀態(tài)碼-2????}}
進(jìn)階:keepalived+LVS安裝keeplived和lvs在keeplived中配置虛擬服務(wù)器模塊簡(jiǎn)單說一下DR原理: ?假設(shè)A為前端負(fù)載均衡服務(wù)器, B,C為后端真實(shí)服務(wù)器。 A接收到數(shù)據(jù)包以后,會(huì)把數(shù)據(jù)包的MAC地址改成B的(根據(jù)調(diào)度算法,假設(shè)發(fā)給B服務(wù)器),然后把數(shù)據(jù)包重新發(fā)出去,交換機(jī)收到數(shù)據(jù)包根據(jù)MAC地址找到B,把數(shù)據(jù)包交給B。 這時(shí)B會(huì)收到數(shù)據(jù)包,同時(shí)驗(yàn)證請(qǐng)求IP地址,由于數(shù)據(jù)包里的IP地址是給A的,所以正常情況下B會(huì)丟棄數(shù)據(jù)包,為了防止這種情況,需要在B機(jī)器的回環(huán)網(wǎng)卡上配置A的IP地址。并設(shè)置ARP壓制。在真是服務(wù)器上運(yùn)行腳本#!/bin/bash #description : start realserverVIP=192.168.1.110/etc/rc.d/init.d/functionscase "$1" instart)echo " start LVS of REALServer"/sbin/ifconfig lo:0 $VIP broadcast $VIP netmask 255.255.255.255 upecho "1" >/proc/sys/net/ipv4/conf/lo/arp_ignoreecho "2" >/proc/sys/net/ipv4/conf/lo/arp_announceecho "1" >/proc/sys/net/ipv4/conf/all/arp_ignoreecho "2" >/proc/sys/net/ipv4/conf/all/arp_announce;;stop)/sbin/ifconfig lo:0 downecho "close LVS Directorserver"echo "0" >/proc/sys/net/ipv4/conf/lo/arp_ignoreecho "0" >/proc/sys/net/ipv4/conf/lo/arp_announceecho "0" >/proc/sys/net/ipv4/conf/all/arp_ignoreecho "0" >/proc/sys/net/ipv4/conf/all/arp_announce;;*)echo "Usage: $0 {start|stop}"exit 1esac 需要修改為你自己的VIP,然后檢查虛擬網(wǎng)卡是否已綁定到回環(huán)網(wǎng)卡即可


總結(jié)

以上是生活随笔為你收集整理的Keepalived配置文件详解的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。