本申請涉及通信技術領域,尤其涉及一種路由反射模式的切換方法及網(wǎng)絡架構。
背景技術:
云計算是一種計算模式,它將計算任務分布在大量計算機構成的資源池,使各種業(yè)務系統(tǒng)能夠根據(jù)不同需要獲取計算力、存儲空間和信息服務。容器云環(huán)境下calico默認使用全節(jié)點互聯(lián)模式(node-to-nodemesh),所有節(jié)點通過建立bgp(bordergatewayprotocol:邊界網(wǎng)關協(xié)議)連接進行互聯(lián),每個節(jié)點需要維護(n-1)個bgp連接,隨著集群規(guī)模不斷增加,節(jié)點維護的bgp連接數(shù)相應增加,如果某節(jié)點的bgp連接中斷,就會出現(xiàn)跨節(jié)點訪問不通的情況,因此集群需要在規(guī)模達到一定程度后改用rr(routereflector:路由反射)模式建立bgp連接。
在一些容器云環(huán)境下切換路由反射模式的實現(xiàn)中,通常在集群外搭建rr容器,然后集群內節(jié)點與集群外rr容器建立bgp連接,從而實現(xiàn)rr模式。
然而,在集群外搭建rr容器,需要增加關注rr容器健康狀態(tài)的工作量,集群內監(jiān)控告警機制不能兼顧到集群外的rr容器、rr容器在低穩(wěn)定性低的情況下會影響整個集群的訪問,并且集群服務需要做改動,節(jié)點之間仍存在大量的bgp連接需要進行維護。
技術實現(xiàn)要素:
為了解決容器云環(huán)境下切換路由反射模式帶來的rr容器穩(wěn)定下差、節(jié)點維護復雜的問題,本申請?zhí)峁┝艘环N路由反射模式的切換方法及網(wǎng)絡架構。
本申請的實施例是這樣實現(xiàn)的:
本申請實施例第一方面提供一種網(wǎng)絡架構,配置為在容器云環(huán)境下實現(xiàn)切換路由反射模式,包括:
包含第一交換機、第二交換機的bgp對等體,所述bgp對等體用作路由反射器;
第一機房集群各個節(jié)點至所述bgp對等體的交叉連接,所述交叉連接包含第一節(jié)點至第一交換機的默認路由,所述默認路由用于從所述第一交換機學習第一節(jié)點至第二節(jié)點的路由信息;
第一機房交換機至第二機房交換機的路由;
其中,所述第一節(jié)點被配置為所述第一交換機、第二交換機的路由反射客戶端。
根據(jù)本申請中一些實施例的網(wǎng)絡架構,其中,所述bgp對等體包含的交換機之間可同步路由信息。
根據(jù)本申請中一些實施例的網(wǎng)絡架構,其中,還包括第一過濾器,所述第一過濾器配置于所述第一節(jié)點,用于濾除第一節(jié)點發(fā)送至第一交換機的默認路由。
根據(jù)本申請中一些實施例的網(wǎng)絡架構,其中,還包括:第一交換機、第二交換機至第一節(jié)點的第二路由,用于交換機重新建立bgp連接時發(fā)送數(shù)據(jù)至第一節(jié)點。
根據(jù)本申請中一些實施例的網(wǎng)絡架構,其中,所述第二路由被配置為靜態(tài)路由。
根據(jù)本申請中一些實施例的網(wǎng)絡架構,其中,在切換路由反射模式后,刪除所述第二路由。
根據(jù)本申請中一些實施例的網(wǎng)絡架構,其中,在所述第二節(jié)點位于第一機房集群內時,所述路由信息包括第一節(jié)點至第二節(jié)點的路由;在所述第二節(jié)點位于第二機房集群內時,所述路由信息包括默認路由、第一機房交換機至第二機房交換機的路由。
根據(jù)本申請中一些實施例的網(wǎng)絡架構,其中,所述第一交換機為第一機房的網(wǎng)關;在所述第一交換機故障時,所述網(wǎng)關自動切換至第二交換機。
本申請實施例第二方面提供一種路由反射模式的切換方法,配置為在容器云環(huán)境下實現(xiàn)切換路由反射模式,所述方法包括:
添加第一機房集群第一節(jié)點至bgp對等體中第一交換機的默認路由,所述默認路由用于從所述第一交換機學習第一節(jié)點至第二節(jié)點的路由信息,所述bgp對等體還包括第二交換機;
將所述第一節(jié)點配置為所述第一交換機、第二交換機的路由反射客戶端;
禁用集群的全節(jié)點互聯(lián)模式,得到集群的路由反射模式。
根據(jù)本申請中一些實施例中路由反射模式的切換方法,其中,所述bgp對等體包含的交換機之間可同步路由信息。
根據(jù)本申請中一些實施例中路由反射模式的切換方法,其中,所述第一節(jié)點配置了第一過濾器,所述第一過濾器用于濾除第一節(jié)點發(fā)送至第一交換機的默認路由。
根據(jù)本申請中一些實施例中路由反射模式的切換方法,其中,將所述第一節(jié)點配置為所述第一交換機、第二交換機的路由反射客戶端之前,還包括:添加第一交換機、第二交換機至第一節(jié)點的第二路由,所述第二路由用于交換機重新建立bgp連接時發(fā)送數(shù)據(jù)至第一節(jié)點。
根據(jù)本申請中一些實施例中路由反射模式的切換方法,其中,所述第二路由被配置為靜態(tài)路由。
根據(jù)本申請中一些實施例中路由反射模式的切換方法,其中,得到集群的路由反射模式后,刪除所述第二路由。
根據(jù)本申請中一些實施例中路由反射模式的切換方法,其中,在所述第二節(jié)點位于第一機房集群內時,所述路由信息包括第一節(jié)點至第二節(jié)點的路由;在所述第二節(jié)點位于第二機房集群內時,所述路由信息包括默認路由、第一機房交換機至第二機房交換機的路由。
根據(jù)本申請中一些實施例中路由反射模式的切換方法,其中,所述第一交換機為第一機房的網(wǎng)關;在所述第一交換機故障時,所述網(wǎng)關自動切換至第二交換機。
本申請實施例第三方面提供一種回滾方法,配置為在容器云環(huán)境下實現(xiàn)全節(jié)點互聯(lián)模式的回滾,所述方法包括:
開啟全節(jié)點互聯(lián)模式,集群所有節(jié)點兩兩之間重新建立bgp連接,并同步路由信息;
移除第一交換機、第二交換機的路由反射客戶端;
移除第一機房集群節(jié)點至bgp對等體中第一交換機的默認路由。
本申請實施例第四方面提供一種計算機可讀存儲介質,所述計算機可讀存儲介質存儲有計算機指令,當所述計算機指令中的至少部分指令被處理器執(zhí)行時,實現(xiàn)如本申請實施例第二方面提供發(fā)明內容的方法。
本申請?zhí)峁┑募夹g方案包括以下有益效果:通過構建第一交換機、第二交換機作為路由反射器,可以提高rr模式中路由反射器的穩(wěn)定性;進一步通過構建默認路由,可以實現(xiàn)集群節(jié)點從交換機學習至其它節(jié)點的路由信息;進一步通過同步第一交換機和第二交換機的路由信息,可以實現(xiàn)機房網(wǎng)關故障時備用網(wǎng)關的自動切換;進一步通過構建第一過濾器,可以避免集群節(jié)點無效學習默認路由;進一步通過構建第二路由,可以實現(xiàn)配置路由反射客戶端瞬間交換機仍可有效轉發(fā)數(shù)據(jù)至集群節(jié)點,可以簡化、降低集群節(jié)點bgp連接的維護數(shù)量、僅維護集群節(jié)點至交換機的bgp連接、避免集群節(jié)點之間的bgp連接維護、實現(xiàn)容器云生產(chǎn)環(huán)境下不中斷業(yè)務無縫切換rr模式。
附圖說明
為了更清楚地說明本申請的技術方案,下面將對實施例中所需要使用的附圖作簡單地介紹,顯而易見地,對于本領域普通技術人員而言,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1是本申請實施例提供的一種服務系統(tǒng)的結構示意圖;
圖2示出了本申請一實施例在容器云環(huán)境下實現(xiàn)切換路由反射模式的網(wǎng)絡架構;
圖3示出了本申請另一實施例在容器云環(huán)境下實現(xiàn)切換路由反射模式的網(wǎng)絡架構;
圖4示出了本申請實施例交換機高可用設計示意圖;
圖5示出了本申請實施例一種路由反射模式切換方法的流程示意圖;
圖6示出了本申請實施例一種網(wǎng)絡構架中切換路由反射模式的時序圖;
圖7示出了本申請實施例一種回滾方法的流程示意圖。
具體實施方式
下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整的描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例。基于本發(fā)明中的實施例,本領域普通技術人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
本說明書通篇提及的″多個實施例″、″一些實施例″、″一個實施例″或″實施例″等,意味著結合該實施例描述的具體特征、結構或特性包括在至少一個實施例中。因此,本說明書通篇出現(xiàn)的短語″在多個實施例中″、″在一些實施例中″、″在至少另一個實施例中″或″在實施例中″等并不一定都指相同的實施例。此外,在一個或多個實施例中,具體特征、結構或特性可以任何合適的方式進行組合。因此,在無限制的情形下,結合一個實施例示出或描述的具體特征、結構或特性可全部或部分地與一個或多個其他實施例的特征、結構或特性進行組合。這種修改和變型旨在包括在本申請的范圍之內。
圖1是本申請實施例提供的一種服務系統(tǒng)的結構示意圖。
如圖1所示,該服務系統(tǒng)10可以由多個設備a組成,該多個設備a之間可以通過網(wǎng)絡進行通信。本申請實施例中所述的設備a可以為服務器或者服務器集群。該服務系統(tǒng)10可以為一個云服務系統(tǒng),云服務系統(tǒng)指將企業(yè)或個人所需的軟硬件和資料均上傳至網(wǎng)絡,在任何時間或地點均可以使用接入網(wǎng)絡的設備實現(xiàn)數(shù)據(jù)存取和運算的服務系統(tǒng)。
服務系統(tǒng)10根據(jù)其中的各個設備a所在的地理位置可以劃分為多個區(qū)域101,每個區(qū)域101包括位于一個地理區(qū)域中的多個設備a,不同區(qū)域101中的設備a位于不同的地理區(qū)域。示例地,亞洲地區(qū)的設備a可以組成一個區(qū)域101,非洲地區(qū)的設備a可以組成另一個區(qū)域101。服務系統(tǒng)10還可以包括管理設備100,該管理設備可以與各個區(qū)域101連接。
服務系統(tǒng)10中的每個區(qū)域101可以包括多個可用區(qū)1011。不同的可用區(qū)1011之間相互獨立,每個可用區(qū)有獨立的供電以及獨立的網(wǎng)絡等。當某個可用區(qū)出現(xiàn)問題時,其他可用區(qū)不會受到影響。同一區(qū)域101內的可用區(qū)1011可以通過高速網(wǎng)絡連接,以保證可用區(qū)之間通信的時延較低。
在一些實施例中,云服務系統(tǒng)可以包括公有云和私有云,在公有云中不同的企業(yè)或個人用戶可以共享資源,而私有云僅供其所屬的用戶使用。在公有云上可以自定義邏輯隔離網(wǎng)絡空間,該邏輯隔離網(wǎng)絡空間可以被稱為vpc(virtualprivatecloud:虛擬私有云)。且用戶可以在vpc內托管私有云上的服務資源,如云主機和負載等,且可以自定義vpc中的網(wǎng)段劃分、ip地址和路由策略等。
在一些實施例中,本申請實施例提供的服務系統(tǒng)10中可以具有虛擬私有云102,該虛擬私有云102可以包括一個或多個子網(wǎng)1021,虛擬私有云102中的云資源(例如云服務器、云數(shù)據(jù)庫等)需要部署在子網(wǎng)1021內。每個虛擬私有云102可以歸屬于一個區(qū)域101,每個子網(wǎng)1021可以歸屬于一個可用區(qū)1011。當虛擬私有云102包括多個子網(wǎng)1021時,該多個子網(wǎng)1021可以均歸屬于同一可用區(qū)1011,或者也可以歸屬于不同的可用區(qū)1011。圖1以虛擬私有云包括歸屬于不同可用區(qū)1011的多個子網(wǎng)1021為例進行示意。每個子網(wǎng)1021包括多個設備a,虛擬私有云102中的所有設備a共同提供vpc服務。同一虛擬私有云102中的各個子網(wǎng)1021內的設備a無論是否在同一可用區(qū)1011內,均可以通過內網(wǎng)互相連通,也即是可以直接使用內網(wǎng)ip地址進行互相訪問。另外,可以將彈性ip(elasticip,eip)地址添加至子網(wǎng)中的設備中,以完成子網(wǎng)中安全組和路由的配置,彈性ip地址也可稱為彈性公網(wǎng)ip地址。在將eip地址添加至子網(wǎng)中的設備后,該設備可以被公網(wǎng)訪問。
在一些實施例中,虛擬私有云102可以包括主設備和一個或多個備設備,主設備用于為客戶端提供服務。為了實現(xiàn)虛擬私有云102提供的服務的高可用性,當主設備宕機時,需進行主備切換,也即是將提供服務的設備切換為備設備,避免為客戶端提供的服務中斷。其中,主設備與備設備可以位于不同的子網(wǎng)中,如主設備可以位于第一子網(wǎng)中,備設備可以位于第二子網(wǎng)中。
其中,服務系統(tǒng)10中的每個能夠連接至網(wǎng)絡的設備a都有對應的真實內網(wǎng)ip地址,每個設備a在網(wǎng)絡中的位置可以通過其對應的真實內網(wǎng)ip地址表征。虛擬私有云102中向用戶提供服務的主設備除了真實內網(wǎng)ip地址還具有虛擬ip(virtualip,vip)地址,通過該真實內網(wǎng)ip地址與該虛擬ip地址中的任意一個都可以連接該主設備。在虛擬私有云102中使用該虛擬ip地址配置向通過內網(wǎng)連通的客戶端提供服務的主設備,當正在提供服務的主設備發(fā)生故障而無法對外提供服務時,可以動態(tài)地將該虛擬ip地址切換到備設備,以使得原備設備作為主設備繼續(xù)為客戶端提供服務。
圖2示出了本申請一實施例在容器云環(huán)境下實現(xiàn)切換路由反射模式的網(wǎng)絡架構。
機房集群節(jié)點之間通過bgp連接進行路由通信,例如,第一機房集群第一節(jié)點與第一機房集群的第二節(jié)點通過bgp連接進行路由通信,所述第一節(jié)點例如可實施為node1,所述第二節(jié)點可實施為node2。
又例如,第一機房集群第一節(jié)點與第二機房集群的第二節(jié)點通過bgp連接進行路由通信,所述第二節(jié)點可實施為node3、或node4。
第一機房集群外第一交換機、第二交換機作為路由反射器,其中交換機分別與第一機房集群各個焦點交叉連接,進行路由通信,以實現(xiàn)路由反射模式。
圖3示出了本申請另一實施例在容器云環(huán)境下實現(xiàn)切換路由反射模式的網(wǎng)絡架構。
網(wǎng)絡架構配置為在容器云環(huán)境下可實現(xiàn)切換路由反射模式,所述網(wǎng)絡架構包括至少1個機房,機房內設置有集群節(jié)點、bgp對等體及用于通信的交叉連接。
bgp對等體包含第一交換機、第二交換機,所述bgp對等體用作路由反射器。rr模式中系統(tǒng)指定一個或多個bgpspeaker(bgp發(fā)言者)作為路由反射器,它與網(wǎng)絡架構中其他bgp發(fā)言者建立連接,每個bgp發(fā)言者只要與路由反射器建立bgp連接就可以獲得全網(wǎng)的路由信息,所述bgp發(fā)言者具體可實施為機房內的集群節(jié)點。
在一些實施例中,bgp對等體包含的交換機之間可同步路由信息。第一機房可實施為機房a,在第一交換機上設置第二交換機為本機bgppeer(bgp對等體),在第二交換機上設置第一交換機為本機bgppeer,從而在第一交換機、第二交換機之間建立bgp連接,實現(xiàn)交換機路由信息的同步,即bgppeer中所有的交換機可相互交換路由信息。
在一些實施例中,第一交換機為第一機房的網(wǎng)關;在所述第一交換機故障時,所述網(wǎng)關自動切換至第二交換機。
圖4示出了本申請實施例交換機高可用設計示意圖。
每個機房內將第一交換機、第二交換機作為路由反射器,上述這兩臺交換機采用類似堆疊的方式工作。
第一交換機和第二交換機之間建立bgp連接同步路由信息。機房集群各個節(jié)點都添加到本機房交換機網(wǎng)關的默認路由,如果網(wǎng)關所在交換機出現(xiàn)問題,所述網(wǎng)關會自動漂到另外的交換機上,所有數(shù)據(jù)請求通過另外一臺交換機進行轉發(fā),使得網(wǎng)絡請求不會中斷。
繼續(xù)參考圖3,本申請?zhí)峁┑木W(wǎng)絡架構還包括第一機房集群各個節(jié)點至所述bgp對等體的交叉連接,所述交叉連接包含第一節(jié)點至第一交換機的默認路由,所述默認路由用于從所述第一交換機學習第一節(jié)點至第二節(jié)點的路由信息。
其中,第一節(jié)點可實施為第一機房集群內任一節(jié)點,例如node1、或node2,如圖所示。第一節(jié)點連接至第一交換機、第二交換機,并且所述交叉連接還包括第一節(jié)點至第一交換機的默認路由,所述默認路由用于第一節(jié)點從所述第一交換機學習第一節(jié)點至第二節(jié)點的路由信息。
在一些實施例中,在所述默認路由可實施為在機房集群的第一節(jié)點添加″10.168.0.0/16via第一交換機虛擬ip″,設置為默認路由。
需要說明的是,calico維護的網(wǎng)絡在切換為rr模式、同時關閉node-to-node-mesh模式后,第一機房集群內節(jié)點無法從其他第二節(jié)點學習到路由信息,只能從本機房bgppeer所在的交換機學習路由信息,也不能學習到第二機房集群第二節(jié)點的路由信息。因此第一節(jié)點對于不在本機路由表中路由下一跳地址需要指定為第一交換機。第一機房集群中每個節(jié)點、即第一節(jié)點被配置為指定交換機,即第一交換機的rrclient(routereflectorclient:路由反射客戶端),并且第一節(jié)點還需要配置連接至第一交換機的默認路由。
在一些實施例中,網(wǎng)絡架構還包括第一過濾器,所述第一過濾器配置于所述第一節(jié)點用于濾除第一節(jié)點發(fā)送至第一交換機的默認路由。
基于第一機房集群各個節(jié)點添加的所述默認路由,第一交換機可以從集群各個節(jié)點學習路由并將學習到的路由同步到bgppeer所在的第二交換機,以及同步到bgppeer所在交換機的rrclient、即機房內的其他集群節(jié)點。
為了避免第二交換機、集群其他節(jié)點學習到第一節(jié)點的默認路由,例如,calico維護的網(wǎng)絡可通過etcd組件添加自定義過濾器,即第一過濾器,所述自定義過濾器可避免第一機房集群內第一節(jié)點發(fā)布其配置的默認路由至第一交換機,引起不必要的無效學習。
在一些實施例中,網(wǎng)絡架構還包括第一交換機、第二交換機至第一節(jié)點的第二路由,用于交換機重新建立bgp連接時發(fā)送數(shù)據(jù)至第一節(jié)點,在一些實施例中,所述第二路由被配置為靜態(tài)路由。
當路由反射器交換機設置集群節(jié)點為rrclient時,交換機的bgp連接需要重新建立,在重新建立的過程中路由丟失會導致跨網(wǎng)段訪問出現(xiàn)短時間的中斷,因此可通過手動在交換機配置其到所有集群節(jié)點pod(容器)的第二路由,所述第二路由可配置為靜態(tài)路由。當bgp連接重新建立過程中,交換機對于接收到的數(shù)據(jù)請求還可以通過所述第二路由轉到相應的集群節(jié)點。
在一些實施例中,在切換路由反射模式后刪除所述第二路由。在集群切換rr模式完成后,之前為了保證業(yè)務不中斷臨時在路由反射器交換機上添加的第二路由不再需要,可以通過管理工具在路由反射器交換機上刪除這些靜態(tài)路由。
繼續(xù)參考圖3,第一機房集群第一節(jié)點被配置為第一交換機、第二交換機的路由反射客戶端,其中,第一節(jié)點可實施為第一機房集群內任一節(jié)點,例如node1或node2。
繼續(xù)參考圖3,在第二節(jié)點位于第一機房集群內時,所述路由信息包括第一節(jié)點至第二節(jié)點的路由,所述第二節(jié)點例如可實施為node2;在第二節(jié)點位于第二機房集群內時,所述路由信息包括默認路由、第一機房交換機至第二機房交換機的路由,所述第二節(jié)點例如可實施為node3、或node4。
在一些實施例中,在路由反射器交換機上將其所在機房集群各個節(jié)點配置成rrclient后,可查看第一節(jié)點的bird(即bgp客戶端)路由、交換機路由。
第一節(jié)點配置為rrclient后,第一節(jié)點只可以從路由反射器交換機學習到與配置前同樣的路由信息,因此節(jié)點路由沒有變化;通過bird查看具體路由學習詳情,可以發(fā)現(xiàn)對于同機房節(jié)點,每個節(jié)點都能從nodebgppeer交換機學習到相應第一機房集群第二節(jié)點的路由,對于跨機房的bird路由,需要從配置的跨機房nodebgppeer交換機學習到第二機房集群第二節(jié)點的路由,在路由學習過程中,網(wǎng)絡的業(yè)務訪問也不會出現(xiàn)中斷。其中,第一機房和第二機房通過跨機房的bgppeer交換機進行連接。
需要說明的是,通過交換機在硬件層面支持路由反射的特點,選擇第一交換機、第二交換機作為機房集群的路由反射器,并同時在第一交換機、第二交換機之間建立bgp連接,用于交換路由信息。
機房集群內所有節(jié)點作為rrclient與路由反射器建立bgp連接,即每個節(jié)點或每個bgpspeaker只需要與路由反射器交換路由信息,就可以得到全網(wǎng)路由信息。
第一機房、第二機房是兩套獨立的路由反射集群,集群節(jié)點之間不再之間建立bgp連接進行交換路由,集群節(jié)點增加″10.168.0.0/16via本機房第一交換機虛擬ip″的默認路由,每個集群節(jié)點或bgpspeaker只需要與路由反射器交換路由信息,就可以得到全網(wǎng)路由信息,實現(xiàn)和第二節(jié)點的互聯(lián)。
基于本申請上文中提供的網(wǎng)絡架構內容,下文將就在容器云環(huán)境下實現(xiàn)切換路由反射模式的方法進行闡述。
圖5示出了本申請實施例一種路由反射模式切換方法的流程示意圖。
在步驟501中,添加第一機房集群第一節(jié)點至bgp對等體中第一交換機的默認路由,所述默認路由用于從所述第一交換機學習第一節(jié)點至第二節(jié)點的路由信息,所述bgp對等體還包括第二交換機。
其中,第一節(jié)點可實施為第一機房集群內任一節(jié)點,例如node1、或node2;第一機房內將第一交換機、第二交換機作為路由反射器,上述這兩臺交換機采用類似堆疊的方式工作,如圖3中所示。
在第一節(jié)點配置連接至第一交換機的默認路由,所述默認路由用于第一節(jié)點從第一交換機學習第一節(jié)點至第二節(jié)點的路由信息。例如,在第一機房集群的第一節(jié)點添加″10.168.0.0/16via第一交換機虛擬ip″作為默認路由。
在一些實施例中,bgp對等體包含的交換機之間可同步路由信息,并作為路由反射器。在第一交換機上設置第二交換機為本機bgppeer(bgp對等體),在第二交換機上設置第一交換機為本機bgppeer,從而在第一交換機、第二交換機之間建立bgp連接,實現(xiàn)交換機路由信息的同步,即bgppeer中所有的交換機可相互交換路由信息。
在一些實施例中,在第二節(jié)點位于第一機房集群內時,所述第一節(jié)點學習的路由信息包括第一節(jié)點至第二節(jié)點的路由,所述第二節(jié)點例如可實施為node2,或第一機房集群內任一節(jié)點。
在一些實施例中,在第二節(jié)點位于第二機房集群內時,所述第一節(jié)點學習的路由信息包括默認路由、第一機房交換機至第二機房交換機的路由,所述第二節(jié)點例如可實施為node3、或node4,或第二機房集群內任一節(jié)點。
在一些實施例中,第一節(jié)點配置了第一過濾器,所述第一過濾器用于濾除第一節(jié)點發(fā)送至第一交換機的默認路由。第一交換機可以從集群各個節(jié)點學習路由并將學習到的路由同步到bgppeer所在的第二交換機,以及同步到bgppeer所在交換機的rrclient、即機房內的其他集群節(jié)點。為了避免第二交換機、集群其他節(jié)點學習到第一節(jié)點的默認路由,通過第一過濾器可避免第一機房集群內第一節(jié)點發(fā)布其配置的默認路由至第一交換機,引起不必要的無效學習。
繼續(xù)參考圖5,在步驟502中,將所述第一節(jié)點配置為所述第一交換機、第二交換機的路由反射客戶端。
在路由反射器的第一交換機、第二交換機上將其所在機房集群各個節(jié)點配置成rrclient,從而可查看第一節(jié)點的bird(即bgp客戶端)路由、交換機路由。
通過bird查看第一節(jié)點具體路由學習詳情,可以發(fā)現(xiàn)對于同機房節(jié)點,每個節(jié)點都能從nodebgppeer交換機學習到相應第一機房集群第二節(jié)點的路由,對于跨機房的bird路由,需要從配置的跨機房nodebgppeer交換機學習到第二機房集群第二節(jié)點的路由,在路由學習過程中,網(wǎng)絡的業(yè)務訪問也不會出現(xiàn)中斷。其中,第一機房和第二機房通過跨機房的bgppeer交換機進行連接。
在一些實施例中,將第一節(jié)點配置為第一交換機、第二交換機的路由反射客戶端之前,還包括步驟:添加第一交換機、第二交換機至第一節(jié)點的第二路由,所述第二路由用于交換機重新建立bgp連接時發(fā)送數(shù)據(jù)至第一節(jié)點。在一些實施例中,所述第二路由被配置為靜態(tài)路由。
當路由反射器交換機設置集群節(jié)點為rrclient時,交換機的bgp連接需要重新建立,在重新建立的過程中路由丟失會導致跨網(wǎng)段訪問出現(xiàn)短時間的中斷,因此可通過手動在交換機配置其到所有集群節(jié)點pod(容器)的第二路由,所述第二路由可配置為靜態(tài)路由。當bgp連接重新建立過程中,交換機對于接收到的數(shù)據(jù)請求還可以通過所述第二路由轉到相應的集群節(jié)點。
繼續(xù)參考圖5,在步驟503中,禁用集群的全節(jié)點互聯(lián)模式,得到集群的路由反射模式。
通過在配置有calicoctl管理工具的集群節(jié)點禁用默認的全節(jié)點互聯(lián)模式,則得到集群的路由反射模式。
例如,通過管理工具calicoctl執(zhí)行以下代碼:
calicoctlconfigsetnodetonodemeshoff;
calico維護的網(wǎng)絡關閉node-to-node-mesh。查看集群節(jié)點路由、bird路由的學習詳情、交換機路由,此時集群各個節(jié)點上路由表中沒有到跨機房節(jié)點的路由、交換機上路由沒有變化;通過bird查看路由學習詳情可以發(fā)現(xiàn)此時節(jié)點只從交換機學習到同機房其他節(jié)點路由,無法學習到直接跨機房集群節(jié)點的路由。
在一些實施例中,得到集群的路由反射模式后,刪除所述第二路由。在集群切換rr模式完成后,之前為了保證業(yè)務不中斷臨時在路由反射器交換機上添加的第二路由不再需要,可以通過管理工具在路由反射器交換機上刪除這些靜態(tài)路由。
在一些實施例中,第一交換機為第一機房的網(wǎng)關,在所述第一交換機故障時,所述網(wǎng)關自動切換至第二交換機。作為bgp對等體第一交換機和第二交換機之間可同步路由信息,并且機房集群各個節(jié)點都添加到本機房交換機網(wǎng)關的默認路由,如果網(wǎng)關所在交換機出現(xiàn)問題,所述網(wǎng)關會自動漂到另外的交換機上,所有數(shù)據(jù)請求通過另外一臺交換機進行轉發(fā),使得網(wǎng)絡請求不會中斷。
圖6示出了本申請實施例一種網(wǎng)絡構架中切換路由反射模式的時序圖。
在步驟601中,節(jié)點添加″10.168.0.0/16via交換機虛ip″作為默認路由。
添加第一機房集群第一節(jié)點至bgp對等體中第一交換機的默認路由,所述默認路由用于從所述第一交換機學習第一節(jié)點至第二節(jié)點的路由信息。
在步驟602中,兩個交換機之間設置bgppeer。
bgp對等體包含的交換機之間可同步路由信息,并作為路由反射器。在第一交換機上設置第二交換機為本機bgppeer(bgp對等體),在第二交換機上設置第一交換機為本機bgppeer,從而在第一交換機、第二交換機之間建立bgp連接,實現(xiàn)交換機路由信息的同步,即bgppeer中所有的交換機可相互交換路由信息。
在步驟603中,節(jié)點添加過濾器避免發(fā)布默認路由。
第一節(jié)點配置了第一過濾器,所述第一過濾器用于濾除第一節(jié)點發(fā)送至第一交換機的默認路由,可避免第二交換機、集群其他節(jié)點學習到第一節(jié)點的默認路由,通過第一過濾器可避免第一機房集群內第一節(jié)點發(fā)布其配置的默認路由至第一交換機,引起不必要的無效學習。
在步驟604中,添加至節(jié)點的靜態(tài)路由。
添加第一交換機、第二交換機至集群第一節(jié)點的靜態(tài)路由,也稱為第二路由,所述第二路由用于交換機重新建立bgp連接時發(fā)送數(shù)據(jù)至第一節(jié)點。
在步驟605中,設置節(jié)點為rrclient。
在路由反射器的第一交換機、第二交換機上將其所在機房集群各個節(jié)點配置成rrclient,從而可查看第一節(jié)點的bird(即bgp客戶端)路由、交換機路由。
在步驟606中,關閉集群noed-to-node-mesh。
通過在配置有calicoctl管理工具的集群節(jié)點禁用默認的全節(jié)點互聯(lián)模式,則得到集群的路由反射模式。
在步驟607中,刪除步驟604中的靜態(tài)路由。
得到集群的路由反射模式后,刪除所述第二路由。在集群切換rr模式完成后,之前為了保證業(yè)務不中斷臨時在路由反射器交換機上添加的第二路由不再需要,可以通過管理工具在路由反射器交換機上刪除這些靜態(tài)路由。
基于本申請上文中提供的網(wǎng)絡架構、容器云環(huán)境下實現(xiàn)切換路由反射模式的方法,下文將就在容器云環(huán)境下實現(xiàn)回滾全節(jié)點互聯(lián)模式的方法進行闡述。
圖7示出了本申請實施例一種回滾方法的流程示意圖。
如果切換rr模式有問題,需要將集群回滾到node-to-node-mesh模式,則執(zhí)行如下回滾步驟。
在步驟701中,開啟全節(jié)點互聯(lián)模式,集群所有節(jié)點兩兩之間重新建立bgp連接,并同步路由信息。
通過在配置有calicoctl管理工具的集群節(jié)點開啟默認的全節(jié)點互聯(lián)模式,則得到集群的路由反射模式。全節(jié)點互聯(lián)模式的每個bgpspeaker都需要和其他bgpspeaker建立bgp連接。
在步驟702中,移除第一交換機、第二交換機的路由反射客戶端。
在路由反射器的第一交換機、第二交換機上移除所在機房集群之前設置的各個rrclient。
在步驟703中,移除第一機房集群節(jié)點至bgp對等體中第一交換機的默認路由。
例如,可實施為集群各個節(jié)點上刪除″10.168.0.0/16via交換機虛擬ip″的默認路由。全節(jié)點互聯(lián)模式中,節(jié)點通過bgp連接至其他節(jié)點學習集群節(jié)點至其他節(jié)點的路由信息。
本申請還提供了一種計算機可讀存儲介質,所述計算機可讀存儲介質存儲有計算機指令,當所述計算機指令中的至少部分指令被處理器執(zhí)行時,實現(xiàn)如路由反射模式切換方法,其具體操作方法在本申請前文的方法內容已經(jīng)做了詳細的闡述,此處不再贅述。
本申請?zhí)峁┑募夹g方案包括以下有益效果在于,通過構建第一交換機、第二交換機作為路由反射器,可以提高rr模式中路由反射器的穩(wěn)定性;進一步通過構建默認路由,可以實現(xiàn)集群節(jié)點從交換機學習至其它節(jié)點的路由信息;進一步通過同步第一交換機和第二交換機的路由信息,可以實現(xiàn)機房網(wǎng)關故障時備用網(wǎng)關的自動切換;進一步通過構建第一過濾器,可以避免集群節(jié)點無效學習默認路由;進一步通過構建第二路由,可以實現(xiàn)配置路由反射客戶端瞬間交換機仍可有效轉發(fā)數(shù)據(jù)至集群節(jié)點,可以簡化、降低集群節(jié)點bgp連接的維護數(shù)量、僅維護集群節(jié)點至交換機的bgp連接、避免集群節(jié)點之間的bgp連接維護、實現(xiàn)容器云生產(chǎn)環(huán)境下不中斷業(yè)務無縫切換rr模式。
此外要意識到,本申請所述的各種組件、節(jié)點能夠包括(一個或多個)電路,其能夠包括適當值的組件和電路元件,以便實現(xiàn)本創(chuàng)新的方面。此外能夠意識到,各種組件的許多組件能夠在一個或多個集成電路(ic)芯片上實現(xiàn)。在一個示范實現(xiàn)中,組件集合能夠在單個ic芯片上實現(xiàn)。在其它示范實現(xiàn)中,相應組件的一個或多個在單獨ic芯片上制作或實現(xiàn)。
以上已經(jīng)描述的包括本發(fā)明的實現(xiàn)的示例。為了描述要求保護主題的目的,當然不可能描述組件或方法的每一個可設想組合,但是要意識到,本創(chuàng)新的許多另外組合和置換是可能的。相應地,要求保護主題打算包含全部這類改變、修改和變化,其落入所附權利要求的精神和范圍之內。此外,包括″摘要″中所述的事物的本申請的所示實現(xiàn)的以上描述并不是要詳細列舉或者將所公開實現(xiàn)局限于所公開的精確形式。雖然本申請中為了說明目的而描述具體實現(xiàn)和示例,但是如相關領域的技術人員能夠認識的,被認為在這類實現(xiàn)和示例的范圍之內的各種修改是可能的。
具體來說并且關于由上述組件、裝置、電路、系統(tǒng)等所執(zhí)行的各種功能,除非另加指示,否則用來描述這類組件的術語打算對應于執(zhí)行所述組件的所指定功能(例如,功能等效)的任何組件,即使不是在結構上等效于所公開結構(其執(zhí)行要求保護主題的本申請所示示范方面的功能)。在這方面,還將會認識到,創(chuàng)新包括系統(tǒng)以及計算機可讀存儲介質,其具有計算機可執(zhí)行指令,以用于執(zhí)行要求保護主題的各種方法的動作和/或事件。
已經(jīng)針對若干組件/塊之間的交互描述了上述系統(tǒng)/電路/模塊。能夠意識到,這類系統(tǒng)/電路和組件/塊能夠包括那些組件或者所指定子組件、所指定組件或者子組件的一些和/或附加組件,并且按照以上述各種置換和組合。子組件還能夠實現(xiàn)為通信地耦合到其它組件而不是包括在父組件(分級)內的組件。另外,應當注意,一個或多個組件可組合為提供聚合功能性的單個組件或者分為若干單獨子組件,以及可提供任何一個或多個中間層(例如管理層),以通信地耦合到這類子組件,以便提供綜合功能性。本申請所述的任何組件還可與本申請中沒有具體描述但是本領域的技術人員已知的一個或多個其它組件進行交互。
雖然闡明本發(fā)明的廣義范圍的數(shù)值范圍和參數(shù)是近似值,但是具體示例中闡明的數(shù)值盡可能準確地報導。但是,任何數(shù)值固有地合有必然產(chǎn)生于其相應測試測量中找到的標準偏差的某些誤差。此外,本申請所公開的全部范圍要被理解為包含其中所包含的任何和全部子范圍。例如,″小于或等于11″的范圍能夠包括零的最小值與11的最大值之間(并且包含該最小值與最大值)的任何和全部子范圍,即,任何和全部子范圍具有等于或大于零的最小值以及等于或小于11的最大值(例如1至5)。在某些情況下,如對參數(shù)所述的數(shù)值能夠具有負值。
另外,雖然可能已經(jīng)僅針對若干實現(xiàn)之一公開了本創(chuàng)新的特定特征,但是這種特征可如對任何給定或特定應用可預期和有利的與其它實現(xiàn)的一個或多個其它特征相組合。此外,在詳細描述或者權利要求中使用術語″包括(include、including)″、″具有″、″合有″及其變體和其它類似詞語的意義上,這些術語打算采用與作為開放過渡詞語的術語″包含″相似的方式是包含的,而沒有排除任何附加或其它元件。
遍及本說明書中提到″一個實現(xiàn)″或″一實現(xiàn)″表示結合該實現(xiàn)所述的特定特征、結構或特性包含在至少一個實現(xiàn)中。因此,短語″在一個實現(xiàn)中″或者″在一實現(xiàn)中″在遍及本說明書中的各個位置的出現(xiàn)不一定全部指相同實現(xiàn)。此外,具體特征、結構或特性可采用任何適當方式結合在一個或多個實現(xiàn)中。
此外,遍及本說明書中提到″項″或″文件″意味著結合實現(xiàn)所述的特定結構、特征或對象不一定指相同對象。此外,″文件″或″項″能夠指各種格式的對象。
如本申請中使用的術語″節(jié)點″、″組件″、″模塊″、″系統(tǒng)″等一般打算指作為硬件(例如電路)、硬件和軟件的組合的計算機相關實體或者與具有一個或多個特定功能性的操作機器相關的實體。例如,組件可以是(但不限于)在處理器(例如數(shù)字信號處理器)上運行的進程、處理器、對象、可執(zhí)行、執(zhí)行線程、程序和/或計算機。作為說明,在控制器上運行的應用和控制器兩者均能夠是組件。一個或多個組件可駐留在進程和/或執(zhí)行線程中,以及組件可定位在一個計算機上和/或分布在兩個或更多計算機之間。雖然在各個實現(xiàn)中描繪單獨組件,但是要意識到,組件可采用一個或多個公共組件來表示。此外,各個實現(xiàn)的設計能夠包括不同組件放置、組件選擇等,以實現(xiàn)最佳性能。此外,″裝置″能夠采取專門設計硬件;通過其上的軟件(其使硬件能夠執(zhí)行特定功能)的執(zhí)行被專門化的一般化硬件;計算機可讀介質上存儲的軟件;或者其組合的形式。
此外,詞語″示例″或″示范″在本申請中用來表示″用作示例、實例或說明″。本申請中描述為″示范″的任何方面或設計不一定被理解為相對其它方面或設計是優(yōu)選或有利的。相反,詞語″示例″或″示范″的使用打算以具體方式呈現(xiàn)概念。如本申請所使用的,術語″或者″打算表示包含″或″而不是互斥″或″。即,除非另加說明或者從上下文清楚地知道,否則″x采用a或b″打算表示自然包含置換的任一個。即,如果x采用a;x采用b;或者x采用a和b兩者,則在上述實例的任何實例下均滿足″x采用a或b″。另外,如本申請和所附權利要求中所使用的冠詞″一(a和an)″應當一般地理解為表示″一個或多個″,除非另加說明或者從上下文清楚地知道針對單數(shù)形式。