為啥Underlay才是容器網路的最佳落地選擇
-
服務部署在Kubernetes叢集內部(如圖:服務1、服務2);
-
資料庫、註冊中心、Redis、MQ等元件部署在叢集之外;
-
部分服務也可能部署在叢集之外, 比如容器平臺試用階段(如圖:服務3)
-
特定用途的Kubernetes叢集對外提供服務。比如專門用作提供PaaS中介軟體服務的Kubernetes叢集、專門用作CI/CD服務的Kubernetes叢集、專門用作提供大資料服務的Kubernetes叢集等;
-
跨多叢集的服務/元件互聯互通;
-
為了在試點階段降低風險,部分服務跑在叢集內、部分服務跑在叢集外 等場景。
導語:
幾年前,當博雲啟動自研容器網路研發的時候,除了技術選型的考慮,我們對於先做 Underlay 還是 Overlay 網路也有過深度的 討論 。當時的開源社群以及主流容器廠商,多數還是以 Overlay 網路方案為主,但在我們對眾多客戶真正需求的深入瞭解之後,發現部分客戶對容器內外網路直通有著非常強烈的需求。思慮再三,我們決定還是先做 Underlay 網路(後來又做了Overlay)。隨著行業與公司自身的發展,我們建設實施的專案越來越多,這讓我們對容器網路的思考也越來越深入,從而觀點也越來越清晰:
內外直通的Underlay網路才是容器網路的正確開啟方式。
01
從需求出發,考慮容器網路方案
如上圖所示,這是目前企業微服務容器化部署的典型場景,也是驅動我們做 Underlay網路的直接原因:
這些服務和元件,需要能直接互聯互通。
如若需要滿足以上需求,最簡單有效的方案就是直接把 Kubernetes 內外網路打通,也就是採用 Underlay 網路模式。
當然,如上需求也有別的辦法可以解決。比如,細化分析服務和元件間的流量,採用ingress、egress,包括改寫應用程式碼等方式,在特定情況下,這也是可以用的。然而,一方面,這些都是特定場景下的特定解決方案,缺乏一定的通用性;另一方面,容易出現配置複雜、引入額外風險、出錯難以定位等問題。遠遠沒有透過Underlay網路直接將內外網打通這麼簡單有效。
還有另外的辦法就是將所有服務和元件都放入Kubernetes叢集內部,但是這種方案仍是針對特定場景的非通用方案,很難保證企業所有的應用都在一個Kubernetes叢集裡。
同樣,對於容器內外網路直接互聯互通的需求場景還有:
02
與虛擬機器對比,從容器本質考慮容器網路方案
在容器的應用實踐過程中,除了應用場景,我們也從底層基礎設施的角度對容器進行了持續的思考。
從基礎設施的角度看容器: 容器和虛擬機器的本質都是一樣的,是上層應用的承載基礎設施。
因此,從底層角度看,對容器網路的需求跟虛擬機器是一致的。那麼,虛擬機器網路的落地模式是怎樣的呢?
如上圖右側部分所示,IaaS層的落地網路方案可以認為是有行業標準的,不管是基於VMware 還是 OpenStack,基本都是採用OVS(或類似OVS)的二層 Underlay 網路方案。
因此,從基礎設施的角度往上看,容器網路採用跟 IaaS 類似的方案,即將虛擬機器和容器放到同一個網路層面上,是最合理的選擇。
PS:在公有云上,虛擬機器都在VPC裡,因此目前公有云的容器網路方案,也是主要採用將容器和虛擬機器放到同一個VPC中,可以直接互聯互通的方案。這也是對上述判斷的典型證明。
同時,對於部分客戶反饋的 Unberlay 網路佔用 IP 地址過多的問題,從虛擬機器和容器的對比角度,也可以獲得合理的解釋:如果使用虛擬機器部署,佔用 IP 地址數量與容器 Underlay 網路是一樣的。IP 地址的數量是由應用數量決定的,使用容器並沒有引入多餘 IP 地址佔用。另外,Ipv6已經開始規模落地,在Ipv6時代,IP 地址數量將不會是問題。
03
技術方案選型
容器典型的開源 Unberlay 網路選型方案有 Calico 和 MACVLAN,這兩個方案的問題也比較明顯:
Calico :需要在資料中心路由器(或三層交換機)開啟 BGP 路由協議,而 BGP 是廣域網的路由協議,一般在資料中心內部不會啟動,低端三層交換機/路由器對齊的支援情況也有風險。
MACVLAN: 幾年前有部分客戶採用此容器網路方案,MACVLAN最大的問題就是社群活躍度已經很低,一些問題長期沒有在社群中解決。同時,面向未來的擴充套件性也比較差。
以上也是博雲基於 OVS 自研 Underlay(也支援Overlay)網路的原因。
04
總結
在容器網路方案中,Overlay網路方案有著對底層網路要求低(落地過程不需要跟網路部門打交道)、落地容易、IP地址佔用少等特點,也有自己適用的特性需求場景。但是隨著越來越多的客戶將 Kubernetes 和容器大規模應用到生產環境中,博雲客戶中選擇使用 Underlay 網路模式的比例也越來越高。這讓我們更加明確認識到:
內外直通的Underlay網路才是容器網路的正確開啟方式。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69923336/viewspace-2705147/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 如何為您的網路抓取選擇最佳代理伺服器?伺服器
- 0-overlay和underlay,這兩種容器網路你分得清嗎
- 都會網路最佳選擇:CWDM/DWDM-VeCloudCloud
- 我們為何選擇 Cilium 作為 Kubernetes 的網路介面
- mysql索引為啥要選擇B+樹 (下)MySql索引
- mysql索引為啥要選擇B+樹 (上)MySql索引
- Ubuntu linux 為啥要開始選擇ubuntu LINUXUbuntuLinux
- 企業如何選擇北京網路輿情最佳化公司?
- 新加坡為什麼是ICO的最後選擇,同時也是最佳選擇?
- 面試 (MySQL 索引為啥要選擇 B+ 樹)面試MySql索引
- IT/網際網路為何會成為大學生求職的第一選擇?求職
- 如何選擇最佳物聯網平臺?
- 為 Capped CRF 編碼選擇最佳 CRF 值APPCRF
- 如何為資料庫選擇最佳加密方法資料庫加密
- 容器技術在企業落地的最佳實踐
- mysql 為什麼很多網際網路公司選擇了讀可提交MySql
- 深度 | 容器規模化落地企業的最佳途徑
- 從容器映象的選擇-alpine 說起
- Java列舉:為什麼它是單例模式的最佳選擇?Java單例模式
- 【人工神經網路基礎】為什麼神經網路選擇了“深度”?神經網路
- 為什麼他們選擇阿里雲容器服務 ACK阿里
- 市面這麼多網路管理系統,為什麼選擇OpManager?
- 為什麼很多人會選擇學網路安全?前景如何?
- 網際網路企業如何選擇網路安全防護公司?
- 網站seo最佳化選擇RAKsmart伺服器的原因網站伺服器
- 網際網路架構,究竟為啥要做服務化?架構
- 網際網路公司為啥都不用MySQL分割槽表?MySql
- 怎麼更好的選擇網站關鍵詞最佳化方式網站
- ubuntu系統怎麼選擇最佳伺服器?ubuntu系統選擇最佳伺服器的教程Ubuntu伺服器
- 網路安全技能有哪些可以選擇的就業方向?就業
- 《衛星與網路》分析孫宇晨為什麼選擇藍色起源
- 誰才是這場網際網路中的弄潮兒
- 網路IO模型-非同步選擇模型(Delphi版)模型非同步
- 如何快速為網站選擇合適的SSL證書網站
- 如何為自己的個人網站選擇SSL證書?網站
- 小程式容器技術,該如何選擇?
- 最佳途徑 | 容器規模化落地如何四步走?
- 銀行家們將貿易融資視為區塊鏈的最佳選擇區塊鏈