本文分享自華為雲社群《【理解雲容器網路】0-overlay和underlay容器網路》,作者:可以交個朋友。
underlay容器網路
在容器的上下文環境下,underlay容器網路代表承載容器的虛擬機器或者物理機網路環境能夠識別、轉發容器ip。
- 開源網路外掛方案如Flannel的host-gw模式、calico的bgp模式,容器網路可以不透過隧封裝,依託於網路外掛只能功能(增加路由表)和網路要求(kubernetes管理的節點在同一子網,不跨三層)。
- 雲廠商致力於將容器網路和VPC網路扁平化,一般有兩種方式:
方式一:將每個節點容器小子網注入VCP路由表中,透過注入路由表方式,使得VPC內的ECS、容器可以訪問容器ip
方式二:直接從VPC中分配ip給容器,
overlay容器網路
在容器的上下文環境下,overlay容器網路代表承載容器的虛擬機器或者物理機網路環境本身不能夠識別、轉發容器ip,需要透過每個虛擬機器或者物理機上的封包、解包程序處理再轉發給容器。
開源網路外掛方案如Flannel的vxlan模式、calico的ipip模式,容器網路透過隧道封裝,只要求kubernetes管理的節點三層網路可達。
可以簡單看一下flannel vxlan的報文體會一下封裝。
物理機上看到的就是標準的二層包:mac層、ip層、資料包內容,只不過物理機看到的資料包裡面又有一個完整的二層包,這個二層包。客戶端容器在發出請求後,客戶端物理機上的flanneld程序,會對這個報文進行封包(至於如何獲取到對端的容器的mac地址、如何得知對端容器所在的節點ip,暫時不用糾結)變成vxlan報文,物理機網路卡裝置和底層網路三層可達使得報文可以傳送到對端物理機。服務端物理機網路卡收到報後,根據UDP預設埠,網路協議棧將資料包丟給本無物理機上flanneld程序處理。flanneld拆包後,根據真是對端容器ip,將報文轉到服務端容器中。
區別
overlay容器網路只要求節點網路三層互通即可,但是存在封裝、解封裝過程,帶來一定效能損耗。雲廠商均大力發展underlay容器網路,使得容器網路具有直通能力,比如ELB直通容器,容器直接綁eip等。
點選關注,第一時間瞭解華為雲新鮮技術~