亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

Rancher v1.2:網(wǎng)絡(luò)架構(gòu)解讀

tinysun1234 / 680人閱讀

摘要:在之前的版本上,用戶時常抱怨的網(wǎng)絡(luò)只有,沒有其他選擇。而容器社區(qū)的發(fā)展是十分迅猛的,各種容器網(wǎng)絡(luò)插件風(fēng)起云涌,欲在江湖中一爭高下。同樣是基于,使用提供的,網(wǎng)絡(luò)配置信息以方式注入。

在之前的Rancher版本上,用戶時常抱怨Rancher的網(wǎng)絡(luò)只有IPsec,沒有其他選擇。而容器社區(qū)的發(fā)展是十分迅猛的,各種容器網(wǎng)絡(luò)插件風(fēng)起云涌,欲在江湖中一爭高下。Rancher v1.2版本中與時俱進(jìn),對之前的網(wǎng)絡(luò)實現(xiàn)進(jìn)行了改造,支持了CNI標(biāo)準(zhǔn),除IPsec之外又實現(xiàn)了呼聲比較高的VXLAN網(wǎng)絡(luò),同時增加了CNI插件管理機制,讓我們可以hacking接入其他第三方CNI插件。本文將和大家一起解讀一下Rancher v1.2中網(wǎng)絡(luò)的實現(xiàn)。

Rancher-net CNI化

以最簡單最快速方式部署Rancher并添加Host,以默認(rèn)的IPsec網(wǎng)絡(luò)部署一個簡單的應(yīng)用后,進(jìn)入應(yīng)用容器內(nèi)部看一看網(wǎng)絡(luò)情況,對比一下之前的Rancher版本:

我們最直觀的感受便是,網(wǎng)卡名從eth0到eth0@if8有了變化,原先網(wǎng)卡多IP的實現(xiàn)也去掉了,變成了單純的IPsec網(wǎng)絡(luò)IP。這其實就引來了我們要探討的內(nèi)容,雖然網(wǎng)絡(luò)實現(xiàn)還是IPsec,但是rancher-net組件實際上是已經(jīng)基于CNI標(biāo)準(zhǔn)了。最直接的證明就是看一下,rancher-net鏡像的Dockerfile:

熟悉CNI規(guī)范的伙伴都知道/opt/cni/bin目錄是CNI的插件目錄,bridge和loopback也是CNI的默認(rèn)插件,這里的rancher-bridge實際上和CNI原生的bridge沒有太大差別,只是在冪等性健壯性上做了增強。而在IPAM也就是IP地址管理上,Rancher實現(xiàn)了一個自己的rancher-cni-ipam,它的實現(xiàn)非常簡單,就是通過訪問rancher-metadata來獲取系統(tǒng)給容器分配的IP。Rancher實際上Fork了CNI的代碼并做了這些修改,https://github.com/rancher/cni。這樣看來實際上,rancher-net的IPsec和Vxlan網(wǎng)絡(luò)其實就是基于CNI的bridge基礎(chǔ)上實現(xiàn)的。

在解釋rancher-net怎么和CNI融合之前,我們需要了解一下CNI bridge模式是怎么工作的。舉個例子,假設(shè)有兩個容器nginx和mysql,每個容器都有自己的eth0,由于每個容器都是在各自的namespace里面,所以互相之間是無法通信的,這就需要在外部構(gòu)建一個bridge來做二層轉(zhuǎn)發(fā),容器內(nèi)的eth0和外部連接在容器上的虛擬網(wǎng)卡構(gòu)建成對的veth設(shè)備,這樣容器之間就可以通信了。其實無論是docker的bridge還是cni的bridge,這部分工作原理是差不多的,如圖所示:

那么我們都知道CNI網(wǎng)絡(luò)在創(chuàng)建時需要有一個配置,這個配置用來定義CNI網(wǎng)絡(luò)模式,讀取哪個CNI插件。在這個場景下也就是cni bridge的信息,這個信息rancher是通過rancher-compose傳入metadata來控制的。查看ipsec服務(wù)的rancher-compose.yml可以看到,type使用rancher-bridge,ipam使用rancher-cni-ipam,bridge網(wǎng)橋則復(fù)用了docker0,有了這個配置我們甚至可以隨意定義ipsec網(wǎng)絡(luò)的CIDR,如下圖所示:

ipsec服務(wù)實際上有兩個容器:一個是ipsec主容器,內(nèi)部包含rancher-net服務(wù)和ipsec需要的charon服務(wù);另一個sidekick容器是cni-driver,它來控制cni bridge的構(gòu)建。兩端主機通過IPsec隧道網(wǎng)絡(luò)通信時,數(shù)據(jù)包到達(dá)物理網(wǎng)卡時,需要通過Host內(nèi)的Iptables規(guī)則轉(zhuǎn)發(fā)到ipsec容器內(nèi),這個Iptables規(guī)則管理則是由network-manager組件來完成的,https://github.com/rancher/pl...。其原理如下圖所示(以IPsec為例):

整體上看cni ipsec的實現(xiàn)比之前的ipsec精進(jìn)了不少,而且也做了大量的解耦工作,不單純是走向社區(qū)的標(biāo)準(zhǔn),之前大量的Iptables規(guī)則也有了很大的減少,性能上其實也有了很大提升。

Rancher-net vxlan的實現(xiàn)

那么rancher-net的另外一個backend vxlan又是如何實現(xiàn)的呢?我們需要創(chuàng)建一套VXLAN網(wǎng)絡(luò)環(huán)境來一探究竟,默認(rèn)的Cattle引擎網(wǎng)絡(luò)是IPsec,如果修改成VXLAN有很多種方式,可以參考我下面使用的方式。

首先,創(chuàng)建一個新的Environment Template,把Rancher IPsec禁用,同時開啟Rancher VXLAN,如下圖所示:

然后,我們創(chuàng)建一個新的ENV,并使用剛才創(chuàng)建的模版Cattle-VXLAN,創(chuàng)建完成后,添加Host即可使用。如下圖所示:

以分析IPsec網(wǎng)絡(luò)實現(xiàn)方式來分析VXLAN,基本上會發(fā)現(xiàn)其原理大致相同。同樣是基于CNI bridge,使用rancher提供的rancher-cni-bridge、rancher-cni-ipam,網(wǎng)絡(luò)配置信息以metadata方式注入。區(qū)別就在于rancher-net容器內(nèi)部,rancher-net激活的是vxlan driver,它會生成一個vtep1042設(shè)備,并開啟udp 4789端口,這個設(shè)備基于udp 4789構(gòu)建vxlan overlay的兩端通信,對于本機的容器通過eth0走bridge通信,對于其他Host的容器,則是通過路由規(guī)則轉(zhuǎn)發(fā)到vtep1042設(shè)備上,再通過overlay到對端主機,由對端主機的bridge轉(zhuǎn)發(fā)到相應(yīng)的容器上。整個過程如圖所示:

總結(jié)

容器網(wǎng)絡(luò)是容器云平臺中很重要的一環(huán),對于不同的規(guī)模、不同的安全要求,會有不同的選型。Rancher的默認(rèn)網(wǎng)絡(luò)改造成了CNI標(biāo)準(zhǔn),同時也會支持其他第三方CNI插件,結(jié)合Rancher獨有的Environment Template功能,用戶可以在一個大集群中的每個隔離環(huán)境內(nèi),創(chuàng)建不同的網(wǎng)絡(luò)模式,以滿足各種業(yè)務(wù)場景需求,這種管理的靈活性是其他平臺沒有的。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/11755.html

相關(guān)文章

  • Rancher v1.2網(wǎng)絡(luò)架構(gòu)解讀

    摘要:在之前的版本上,用戶時常抱怨的網(wǎng)絡(luò)只有,沒有其他選擇。而容器社區(qū)的發(fā)展是十分迅猛的,各種容器網(wǎng)絡(luò)插件風(fēng)起云涌,欲在江湖中一爭高下。同樣是基于,使用提供的,網(wǎng)絡(luò)配置信息以方式注入。 在之前的Rancher版本上,用戶時常抱怨Rancher的網(wǎng)絡(luò)只有IPsec,沒有其他選擇。而容器社區(qū)的發(fā)展是十分迅猛的,各種容器網(wǎng)絡(luò)插件風(fēng)起云涌,欲在江湖中一爭高下。Rancher v1.2版本中與時俱進(jìn),...

    0x584a 評論0 收藏0
  • Rancher v1.2基礎(chǔ)設(shè)施引擎整體架構(gòu)分析

    摘要:官方于月日發(fā)布了其容器部署與管理平臺的最新版本,。架構(gòu)總覽在版本的整體架構(gòu)圖如下圖所示上,引擎向下深入演化成了基礎(chǔ)設(shè)施引擎,這一點上在時代也早有體現(xiàn)。基礎(chǔ)設(shè)施引擎初次安裝版本,會發(fā)現(xiàn)多了如下圖所示的明顯標(biāo)識,默認(rèn)的引擎需要安裝等服務(wù)。 Rancher Labs官方于12月1日發(fā)布了其容器部署與管理平臺Rancher的最新版本,Rancher v1.2。Rancher v1.2可以說是一...

    Sike 評論0 收藏0
  • Rancher v1.2基礎(chǔ)設(shè)施引擎整體架構(gòu)分析

    摘要:官方于月日發(fā)布了其容器部署與管理平臺的最新版本,。架構(gòu)總覽在版本的整體架構(gòu)圖如下圖所示上,引擎向下深入演化成了基礎(chǔ)設(shè)施引擎,這一點上在時代也早有體現(xiàn)。基礎(chǔ)設(shè)施引擎初次安裝版本,會發(fā)現(xiàn)多了如下圖所示的明顯標(biāo)識,默認(rèn)的引擎需要安裝等服務(wù)。 Rancher Labs官方于12月1日發(fā)布了其容器部署與管理平臺Rancher的最新版本,Rancher v1.2。Rancher v1.2可以說是一...

    tianhang 評論0 收藏0
  • Rancher v1.3發(fā)布:Windows Container來了!

    摘要:年月初,當(dāng)我們發(fā)布時,就定下了未來更頻繁的迭代的計劃。就在上周,正式發(fā)布啦除了對中一些的修復(fù)之外,它還有幾個新的功能用戶界面修復(fù)引擎的更改及其相關(guān)工具的改進(jìn)。并且,在可預(yù)見的未來之中,這一情況并不會改變。目前,僅支持在特定主機上創(chuàng)建容器。 2016年12月初,當(dāng)我們發(fā)布Rancher v1.2時,就定下了未來「更頻繁的迭代」的計劃。就在上周,Rancher v1.3正式發(fā)布啦!除了對v...

    you_De 評論0 收藏0

發(fā)表評論

0條評論

tinysun1234

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<