詳解Docker負(fù)載均衡和服務(wù)發(fā)現(xiàn)

2021-01-27    分類: 網(wǎng)站建設(shè)

Docker 是一個開源項(xiàng)目,誕生于 2013 年初,最初是 dotCloud 公司內(nèi)部的一個業(yè)余項(xiàng)目,自開源后受到廣泛的關(guān)注和討論,以至于dotCloud 公司后來都改名為 Docker Inc。

Docker 是一個使用Go語言開發(fā)的開源的應(yīng)用容器引擎,是PaaS提供商dotCloud開源的一個容器引擎。Docker 遵從 Apache 2.0 協(xié)議,項(xiàng)目代碼在 GitHub 上進(jìn)行維護(hù)。

簡單講,Docker就是一個可以分配資源的進(jìn)程隔離模型。Docker 項(xiàng)目的目標(biāo)是實(shí)現(xiàn)輕量級的操作系統(tǒng)虛擬化解決方案。

相關(guān)術(shù)語解釋

  • Dubbo:阿里巴巴公司開源的一個高性能優(yōu)秀的服務(wù)框架,使得應(yīng)用可通過高性能的 RPC 實(shí)現(xiàn)服務(wù)的輸出和輸入功能,可以和Spring框架無縫集成。
  • LVS:Linux Virtual Server的簡寫,意即Linux虛擬服務(wù)器,是一個虛擬的服務(wù)器集群系統(tǒng)。
  • Ipvs:IP虛擬服務(wù)器(IP Virtual Server,簡寫為IPVS)。是運(yùn)行在LVS下的提供負(fù)載平衡功能的一種技術(shù)
  • Nginx:一款輕量級的Web 服務(wù)器/反向代理服務(wù)器及電子郵件(IMAP/POP3)代理服務(wù)器。
  • HAProxy:一個使用C語言編寫的自由及開放源代碼軟件[1],其提供高可用性、負(fù)載均衡,以及基于TCP和HTTP的應(yīng)用程序代理。
  • 南北通信:指的是整個容器集群入口的通信。南北通信的特點(diǎn)往往是通信量比較大,因此我們首先用SLB將流量分散到各個
  • SLB做到動態(tài)綁定的原理:Swarm監(jiān)管容器的狀態(tài),如果容器正常運(yùn)行,則把容器加入到SLB的后端,如果容器發(fā)現(xiàn)異常,則把容器從SLB的后端摘下來。

    HAProxy實(shí)現(xiàn)動態(tài)服務(wù)發(fā)現(xiàn)的原理:HAProxy容器內(nèi)除了有HAProxy軟件,還有腳本程序監(jiān)管容器的狀態(tài),根據(jù)容器的健康狀況重新生成負(fù)載均衡信息,然后重新加載(reload)HAProxy,使得新的負(fù)載均衡信息生效。

    實(shí)現(xiàn)不停服rolling_update原理:平滑升級的關(guān)鍵在于每一時刻均有至少一個容器還能正常提供服務(wù)。

    1)需要部署多個容器,將容器分為A、B兩批更新。

    2)更新容器時,先將A批容器的路由從SLB或者HAProxy上面摘下來。

    3) 更新A批容器

    4)A批容器健康檢查正常后,重新加入路由

    5)摘下B批容器的路由

    6)更新B批容器。

    實(shí)現(xiàn)灰度發(fā)布原理:不通版本的服務(wù)可以共享同一路由信息,通過調(diào)整SLB或者HAProxy權(quán)重的方式來做到灰度發(fā)布。

    根據(jù)場景提供服務(wù)形態(tài)

    簡單路由服務(wù):基于HAProxy,我們加了一層Wrapper,做到動態(tài)發(fā)現(xiàn)處于運(yùn)行狀態(tài)的容器,加入到負(fù)載均衡中,我們稱之為簡單路由服務(wù)(Routing service),其公網(wǎng)IP通過一個SLB對外進(jìn)行暴露。主要解決如下需求:

    7層服務(wù)端點(diǎn)對公網(wǎng)暴露,即承接公網(wǎng)訪問集群內(nèi)使用7層協(xié)議的服務(wù)的流量。

    7層服務(wù)端點(diǎn)對內(nèi)網(wǎng)暴露,即容器集群內(nèi)的負(fù)載均衡和服務(wù)發(fā)現(xiàn):如下圖所示,集群內(nèi)的服務(wù)發(fā)現(xiàn)利用了Docker自帶的DNS resolver配合了HAProxy的負(fù)載均衡和健康檢查。圖中的LB即為簡單路由服務(wù)下的HAProxy容器。

    1)首先通過Docker自帶的DNSresolver將

    我們根據(jù)不同的通信形式和協(xié)議層提供不同的服務(wù)來滿足用戶的需求,例如對應(yīng)南北通信,如果是使用7層協(xié)議的服務(wù),我們推薦用戶使用集群的SLB進(jìn)行流量轉(zhuǎn)發(fā),最終的流量會轉(zhuǎn)發(fā)到每個主機(jī)的HAProxy容器上面,然后在分發(fā)到相應(yīng)的處理請求的服務(wù)上。

    網(wǎng)站欄目:詳解Docker負(fù)載均衡和服務(wù)發(fā)現(xiàn)
    當(dāng)前鏈接:http://www.muchs.cn/news19/97669.html

    成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供動態(tài)網(wǎng)站云服務(wù)器、電子商務(wù)企業(yè)網(wǎng)站制作、手機(jī)網(wǎng)站建設(shè)、網(wǎng)站排名

    廣告

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

    成都網(wǎng)頁設(shè)計(jì)公司