keepalived+haproxy安裝(高可用)

keepalived是定一個沒有機器再用的ip(也就是ping不通的地址)托修,做虛擬ip来破,這個ip下面綁定幾個真實node的ip徙歼,當(dāng)請求這個虛擬ip的時候就會被轉(zhuǎn)發(fā)到某個子ip機器上蜂大,來實現(xiàn)高可用健提。


Haproxy是類似于nginx的轉(zhuǎn)發(fā)的軟件扎狱。當(dāng)你請求我這里一個端口侧到,我把他轉(zhuǎn)發(fā)到幾個其他的機器的端口勃教。


上面兩個配合使用,keepalived定義一個虛擬ip匠抗,當(dāng)請求過來后到某一個當(dāng)選的節(jié)點故源,然后這個節(jié)點把請求再轉(zhuǎn)發(fā)到這幾個節(jié)點上,來實現(xiàn)高可用汞贸。



yum install -ykeepalived

vim /etc/keepalived/keepalived.conf

修改方法(參考文件在最下面):

-------------------------------------------------------------------

關(guān)鍵的是virtual_ipaddress? 這里需要寫一個虛擬ip地址 找一個你ping 不同的也就是不用的,建議在同一網(wǎng)段绳军,也就是差距不大的比較靠近的如:我的節(jié)點是172.20.0.68,我找了一個這個范圍靠后的172.20.0.251

易錯點interface? 目前ip地址所在的網(wǎng)口

Priority??????? 權(quán)限依次排列不能超過250

State?? ??????? 一個MASTER 其他都是BACKUP

K8s的每個master節(jié)點都要部署

---------------------------------------------------------------

啟動語句:

systemctl daemon-reload && systemctl enable keepalived && systemctl start keepalived && systemctl status keepalived

啟動后矢腻,在master節(jié)點輸入ip address? 查看是否有172.20.0.251/32(注意只有一個節(jié)點能競爭到门驾,其他的節(jié)點就沒有,你可以重啟該節(jié)點多柑,你就會在別的節(jié)點ip address 下看到)

重啟語句:

systemctldaemon-reload && systemctl enable keepalived && systemctlrestart keepalived && systemctl status keepalived


yum install -yhaproxy

vim/etc/haproxy/haproxy.cfg

參考修改:

-------------------------------------------------------------

bind 后面的填入代表了匹配所有發(fā)送到該端口的數(shù)據(jù)包?*:19900?? 但是我們需要它來轉(zhuǎn)發(fā)虛擬ip的數(shù)據(jù)包時奶是,發(fā)往真實地址的數(shù)據(jù)包就不適合被接受所以需要寫成172.20.0.251:19900? 但是這樣需要添加一個配置?讓節(jié)點忽略不需要的數(shù)據(jù)包

cat <? /etc/sysctl.d/k8s.conf

net.ipv4.ip_nonlocal_bind = 1

EOF

sysctl --system


易錯點

Frontend下面的default_backend 需要和backend 一一對應(yīng)同名

我這里配置了兩個端口轉(zhuǎn)發(fā)規(guī)則,一般要一個16443就好顷蟆,19900不需要

對應(yīng)的6443是自己的master節(jié)點

K8s的每個master節(jié)點都要部署

------------------------------------------------------------

啟動語句:

systemctl daemon-reload && systemctl enable haproxy && systemctl start haproxy && systemctl status haproxy

重啟語句

systemctl daemon-reload && systemctl enable haproxy && systemctl restart haproxy && systemctl status haproxy


keepalived.conf

=胗纭!U寿恕V鹞场!O鞣;砩!B辍5橄洹!Q钙辍I种场!G疵铩M憧ァ!RАG远恪!G账5僦稀!!H髯痢Q肀!N撤铩8U辍!MJ俊M诹薄!

! Configuration File for keepalived

global_defs {

? router_id LVS_k8s

}

vrrp_script CheckK8sMaster {

? ? script "killall -0 haproxy"

? ? interval 2

}

vrrp_instance VI_1 {

? ? state MASTER

? ? interface macvlan

? ? virtual_router_id 51

? ? # 主節(jié)點權(quán)重最高 依次減少

? ? priority 150

? ? advert_int 1

? ? #修改為本地IP

? ? #mcast_src_ip 172.20.0.68

? ? authentication {

? ? ? ? auth_type PASS

? ? ? ? auth_pass 1111

? ? }

? ? virtual_ipaddress {

? ? ? ? 172.20.0.251

? ? }

? ? track_script {

? ? ? ? CheckK8sMaster

? ? }

}

A导肌D匆ā!r叩住=颈馈!1「āR鳌!U境M讯琛!A骸@弧!>善颉N等蟆!3咂堋5站馈!Q佣摹;踽恪!Fず!I统佟B藕亍!!Kφ弧P合伞!A棵弧S褡!E固恪>孔ァ!O啤刺下!

haproxy.cfg

!;i佘浴!R陶伞3┳俊!s瘛N膛恕!=钕帧L拼 !7伞R慌颉!H髀佟1鳌!I暄邸B鹘颉!@ㄊO矧健!1舴Fò亍@材ぁ!L视鳌I摇!B闵尽0斯啊!Q乃<〉尽!I怂5破肌!每聪!

global

? ? log? ? ? ? 127.0.0.1 local2

? ? chroot? ? ? /var/lib/haproxy

? ? pidfile? ? /var/run/haproxy.pid

? ? maxconn? ? 4000

? ? user? ? ? ? haproxy

? ? group? ? ? haproxy

? ? daemon

? ? # turn on stats unix socket

? ? stats socket /var/lib/haproxy/stats

#---------------------------------------------------------------------

# common defaults that all the 'listen' and 'backend' sections will

# use if not designated in their block

#---------------------------------------------------------------------

defaults

? ? mode? ? ? ? ? ? ? ? ? ? http

? ? log? ? ? ? ? ? ? ? ? ? global

? ? option? ? ? ? ? ? ? ? ? httplog

? ? option? ? ? ? ? ? ? ? ? dontlognull

? ? option http-server-close

? ? option forwardfor? ? ? except 127.0.0.0/8

? ? option? ? ? ? ? ? ? ? ? redispatch

? ? retries? ? ? ? ? ? ? ? 3

? ? timeout connect? ? ? ? 10s

? ? timeout client? ? ? ? ? 1m

? ? timeout server? ? ? ? ? 1m

? ? timeout http-keep-alive 10s

? ? timeout check? ? ? ? ? 10s

? ? maxconn? ? ? ? ? ? ? ? 3000

#---------------------------------------------------------------------

# kubernetes apiserver frontend which proxys to the backend

#---------------------------------------------------------------------

frontend kubernetes-apiserver

? ? mode? ? ? ? ? ? ? ? tcp

? ? bind? ? ? ? ? ? ? ? 172.20.0.251:16443

? ? option? ? ? ? ? ? ? tcplog

? ? default_backend? ? ? kubernetes-apiserver

#---------------------------------------------------------------------

# round robin balancing between the various backends

#---------------------------------------------------------------------

backend kubernetes-apiserver

? ? mode? ? ? ? tcp

? ? balance? ? roundrobin

? ? server? sz-pg-oam-k8snode-010 172.20.0.71:6443 check

#? ? server? sz-pg-oam-k8snode-009 172.20.0.70:6443 check

? ? server? sz-pg-oam-k8snode-007 172.20.0.68:6443 check

#---------------------------------------------------------------------

# kubernetes apiserver frontend which proxys to the backends

#---------------------------------------------------------------------

frontend ipallocator-server

? ? mode? ? ? ? ? ? ? ? tcp

? ? bind? ? ? ? ? ? ? ? *:19900

? ? option? ? ? ? ? ? ? tcplog

? ? default_backend? ? ? ipallocator-server

#---------------------------------------------------------------------

# round robin balancing between the various backends

#---------------------------------------------------------------------

backend ipallocator-server

? ? mode? ? ? ? tcp

? ? balance? ? roundrobin

? ? server? k8snode-010 172.20.0.71:9900 check

#? ? server? k8snode-009 172.20.0.70:9900 check

? ? server? k8snode-007 172.20.0.68:9900 check

#---------------------------------------------------------------------

# collection haproxy statistics message

#---------------------------------------------------------------------

listen stats

? ? bind? ? ? ? ? ? ? ? *:1080

? ? stats auth? ? ? ? ? admin:awesomePassword

? ? stats refresh? ? ? ? 5s

? ? stats realm? ? ? ? ? HAProxy\ Statistics

? ? stats uri? ? ? ? ? ? /admin?statseck

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末旦棉,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子药薯,更是在濱河造成了極大的恐慌绑洛,老刑警劉巖,帶你破解...
    沈念sama閱讀 210,978評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件童本,死亡現(xiàn)場離奇詭異真屯,居然都是意外死亡,警方通過查閱死者的電腦和手機穷娱,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,954評論 2 384
  • 文/潘曉璐 我一進店門绑蔫,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人泵额,你說我怎么就攤上這事配深。” “怎么了嫁盲?”我有些...
    開封第一講書人閱讀 156,623評論 0 345
  • 文/不壞的土叔 我叫張陵篓叶,是天一觀的道長。 經(jīng)常有香客問我羞秤,道長缸托,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,324評論 1 282
  • 正文 為了忘掉前任瘾蛋,我火速辦了婚禮俐镐,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘哺哼。我一直安慰自己佩抹,他們只是感情好奇唤,可當(dāng)我...
    茶點故事閱讀 65,390評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著匹摇,像睡著了一般。 火紅的嫁衣襯著肌膚如雪甲葬。 梳的紋絲不亂的頭發(fā)上廊勃,一...
    開封第一講書人閱讀 49,741評論 1 289
  • 那天,我揣著相機與錄音经窖,去河邊找鬼坡垫。 笑死,一個胖子當(dāng)著我的面吹牛画侣,可吹牛的內(nèi)容都是我干的冰悠。 我是一名探鬼主播,決...
    沈念sama閱讀 38,892評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼配乱,長吁一口氣:“原來是場噩夢啊……” “哼溉卓!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起搬泥,我...
    開封第一講書人閱讀 37,655評論 0 266
  • 序言:老撾萬榮一對情侶失蹤桑寨,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后忿檩,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體尉尾,經(jīng)...
    沈念sama閱讀 44,104評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,451評論 2 325
  • 正文 我和宋清朗相戀三年燥透,在試婚紗的時候發(fā)現(xiàn)自己被綠了沙咏。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,569評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡班套,死狀恐怖肢藐,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情孽尽,我是刑警寧澤窖壕,帶...
    沈念sama閱讀 34,254評論 4 328
  • 正文 年R本政府宣布,位于F島的核電站杉女,受9級特大地震影響瞻讽,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜熏挎,卻給世界環(huán)境...
    茶點故事閱讀 39,834評論 3 312
  • 文/蒙蒙 一速勇、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧坎拐,春花似錦烦磁、人聲如沸养匈。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,725評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽呕乎。三九已至,卻和暖如春陨晶,著一層夾襖步出監(jiān)牢的瞬間猬仁,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,950評論 1 264
  • 我被黑心中介騙來泰國打工先誉, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留湿刽,地道東北人。 一個月前我還...
    沈念sama閱讀 46,260評論 2 360
  • 正文 我出身青樓褐耳,卻偏偏與公主長得像诈闺,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子铃芦,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,446評論 2 348

推薦閱讀更多精彩內(nèi)容