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

歡迎訪問(wèn) 生活随笔!

生活随笔

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

编程问答

DockerCon 2016 深度解读: Citrix 服务发现解决方案 —— Nitrox

發(fā)布時(shí)間:2025/3/20 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 DockerCon 2016 深度解读: Citrix 服务发现解决方案 —— Nitrox 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

說(shuō)起Citrix公司的NetScaler這款硬件負(fù)載均衡器大家可能不熟悉,它的競(jìng)爭(zhēng)對(duì)手F5,在運(yùn)維界可能比較多人了解。硬件負(fù)載均衡器通常作為網(wǎng)絡(luò)入口流量分流的設(shè)備,例如像淘寶網(wǎng)的流量特別大,可能只有幾個(gè)入口IP,在淘寶網(wǎng)的流量的最前端就會(huì)部署像F5或者NetScaler這樣的硬件負(fù)載均衡器作為分流。

隨著云計(jì)算越來(lái)越深入人心,像Citrix這種硬件設(shè)備商越來(lái)越賣(mài)不動(dòng)了,因?yàn)榻^大部分中小企業(yè)都直接跟云計(jì)算公司采購(gòu)所需的虛擬設(shè)備,這樣的設(shè)備可定制,可按需動(dòng)態(tài)分配。Citrix也是積極跟云計(jì)算公司,例如AWS合作,推廣自己的虛擬版本的NetScaler。

容器化大潮和微服務(wù)概念的推廣下,系統(tǒng)被拆分成了一個(gè)個(gè)只有單一職責(zé)的微服務(wù),服務(wù)的擴(kuò)容通過(guò)增加容器的數(shù)量來(lái)解決,服務(wù)之間的調(diào)用關(guān)系越來(lái)越復(fù)雜,像一張密密麻麻的網(wǎng)。當(dāng)一個(gè)服務(wù)啟動(dòng),擴(kuò)容或者縮容之后,需要迅速被依賴(lài)它的服務(wù)感知到,即發(fā)現(xiàn),所以發(fā)現(xiàn)的過(guò)程必須是自動(dòng)的,且現(xiàn)有大部分的C/S模式的代碼都沒(méi)有提供client服務(wù)發(fā)現(xiàn)的能力,因此服務(wù)發(fā)現(xiàn)最好是對(duì)client來(lái)說(shuō)是透明的。通過(guò)負(fù)載均衡器配合server端實(shí)現(xiàn)服務(wù)發(fā)現(xiàn)管理的功能正是基于容器的微服務(wù)架構(gòu)特別需要的方案。由上述可見(jiàn),通過(guò)負(fù)載均衡器的方式來(lái)解決服務(wù)發(fā)現(xiàn)的問(wèn)題是微服務(wù)架構(gòu)中一個(gè)特別重要的問(wèn)題,而且該問(wèn)題目前沒(méi)有特別好的解決方案。Citrix推出的Nitrox正是試圖解決這個(gè)問(wèn)題。總結(jié)下Citrix推出Nitrox的原因:

  • 通過(guò)提供NetScaler CPX負(fù)載均衡軟件進(jìn)軍容器市場(chǎng)
  • 解決容器架構(gòu)中容器與容器之間服務(wù)發(fā)現(xiàn)的問(wèn)題
  • Nitrox中使用的NetScaler CPX與硬件負(fù)載均衡設(shè)備的API接口保持一致,方便其現(xiàn)有用戶從其他架構(gòu)遷移到容器架構(gòu)

我們先來(lái)看看Nitrox的重要部分,即NetScaler CPX負(fù)載均衡軟件,該軟件是一款收費(fèi)的軟件。
NetScaler的部署模式如下圖所示:

  • 通過(guò)硬件設(shè)備N(xiāo)etScaler MPX來(lái)解決網(wǎng)絡(luò)進(jìn)入容器集群的入口流量的負(fù)載均衡,就是圖中所說(shuō)的南北的流量(N-S traffic)。
  • 通過(guò)軟件設(shè)備N(xiāo)etScaler CPX來(lái)解決容器集群內(nèi),不通服務(wù)之間通信負(fù)載均衡的問(wèn)題,就是圖中所說(shuō)的東西的流量(W-E traffic)。
  • 通過(guò)與編排系統(tǒng)配合(Mesos/Kubernetes/Swarm)來(lái)解決自動(dòng)化服務(wù)發(fā)現(xiàn),動(dòng)態(tài)變更負(fù)載均衡配置的問(wèn)題,圖右側(cè)底層的支持平臺(tái)。
  • Citrix的軟負(fù)載設(shè)備和硬負(fù)載設(shè)備是統(tǒng)一的api接口Nitro,保證了遷移的平滑和接口的一致性,對(duì)于Citrix已有的硬件負(fù)載設(shè)備用戶來(lái)說(shuō),架構(gòu)的遷移很簡(jiǎn)單。
  • 接下來(lái)看看Citrix推出的整體的容器集群的服務(wù)發(fā)現(xiàn)解決方案Nitrox。Citrix開(kāi)源了該解決方案,地址是Nitrox,該方案同時(shí)支持基于Mesos/Kubernetes/Swarm等多個(gè)編排系統(tǒng)的服務(wù)發(fā)現(xiàn)。其基本原理,如下圖所示:

    Nitrox作為一個(gè)容器,跑在容器集群內(nèi),同時(shí)有偵聽(tīng)編排系統(tǒng)(Mesos/Kubernetes/Swarm)事件,以及讀取編排系統(tǒng)信息的能力,當(dāng)各主機(jī)上的容器狀態(tài)發(fā)生變化時(shí),變化上報(bào)到編排系統(tǒng)(Mesos/Kubernetes/Swarm),編排系統(tǒng)再把事件通知到各個(gè)偵聽(tīng)的客戶端。Nitrox作為客戶端接收到事件后,重新獲取當(dāng)前容器集群中各個(gè)容器的狀態(tài)。根據(jù)最新的集群狀態(tài)來(lái)更新各個(gè)容器的路由。除了初始化基本的配置,上面說(shuō)的負(fù)載均衡動(dòng)態(tài)配置,都是通過(guò)腳本自動(dòng)完成的,最終做到了服務(wù)的自動(dòng)發(fā)現(xiàn)。

    現(xiàn)在我們來(lái)總結(jié)下Docker容器架構(gòu)通過(guò)動(dòng)態(tài)負(fù)載均衡來(lái)實(shí)現(xiàn)服務(wù)發(fā)現(xiàn)的方法

    • 在容器里面實(shí)現(xiàn)負(fù)載均衡通常采用以下思路

      • 負(fù)載均衡設(shè)備

        • 4層包括IPVS,各大云計(jì)算廠商的負(fù)載均衡設(shè)備,例如aliyun的SLB, AWS的ELB等,以及本文中提到的F5,NetScaler
        • 既包含4層又包含7層的負(fù)載均衡軟件,目前最流行的包括Haproxy,Nginx(以及衍生出來(lái)的國(guó)內(nèi)的Tengine)
        • 通過(guò)DNS來(lái)做負(fù)載均衡,問(wèn)題比較多,例如DNS有本地緩存,容易導(dǎo)致數(shù)據(jù)不一致,且對(duì)某些client端有要求,某些client端不會(huì)每次請(qǐng)求都去DNS拿最新的路由信息,因此一般很少將DNS作為負(fù)載均衡的方案。
    • 獲取負(fù)載均衡信息的API(從swarm,kubernetes,mesos獲取)或者注冊(cè)中心獲取,即registry,包括 Zookeeper,etcd,Consul等
    • 通過(guò)腳本監(jiān)聽(tīng)registry或者編排系統(tǒng)的事件,某些事件如果導(dǎo)致負(fù)載均衡發(fā)生變化,便將最新的負(fù)載均衡信息更新到負(fù)載均衡設(shè)備中

    最后,從幾個(gè)角度來(lái)對(duì)比類(lèi)似負(fù)載均衡實(shí)現(xiàn)的差異。

    對(duì)比NitroxDockercloud/haproxyDocker1.12內(nèi)置負(fù)載均衡能力
    負(fù)載均衡能力4層主要是7層,兼具4層4層,實(shí)現(xiàn)是IPVS
    支持方式每個(gè)節(jié)點(diǎn)需要安裝兩個(gè)容器每個(gè)節(jié)點(diǎn)一個(gè)Dockercloud/haproxy容器不需要額外的容器
    負(fù)載均衡技術(shù)實(shí)現(xiàn)未知用戶態(tài)內(nèi)核態(tài)
    支持動(dòng)態(tài)負(fù)載能力
    實(shí)現(xiàn)地址 Nitrox,NetScaler為收費(fèi)軟件Dockercloud-haproxyDocker 1.12 內(nèi)置

    預(yù)測(cè)最終Docker官方會(huì)逐步推出自己的服務(wù)發(fā)現(xiàn)完整方案,我們?cè)贒ocker 1.12中應(yīng)該能看到該方面的跡象,其他公司在解決服務(wù)發(fā)現(xiàn)方面的提供的產(chǎn)品會(huì)是一個(gè)很重要的補(bǔ)充。

    總結(jié)

    以上是生活随笔為你收集整理的DockerCon 2016 深度解读: Citrix 服务发现解决方案 —— Nitrox的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

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