kubernets 架構設計 第3章 網絡

1. kubernets 的網絡模型

kubernets 的網絡是從Docker 默認的模型中獨立出來形成自己的一套網絡模型,該網絡模型的目標是每一個pod 都擁有一個扁平化、共享網絡空間的IP,通過該IP,pod就能夠跨網絡與其他物理機或者pod進行網絡通信。一個pod一個IP 模型創建了一個乾淨、反向兼容的模型,在該模型中,從端口分配、網絡、域名解析、服務發現、負載均衡、應用配置和遷移等角度,pod都能被看成虛擬機和物理機  -----> 這基本是環境隔離的最高境界


在一個pod 一個IP 的模型中,從網絡角度看,在一個pod裏面的容器像是在一個宿主機上;相互之間可以通過不同的端口來通信,可以在本地相互訪問彼此的端口進行通信【所以這裏的pod 類似於一般調度裏面裏面的物理機器,可以用同一個IP地址多個port 提供服務或者進行通信


2. pod、pod裏面的容器、外部的互聯網進行通信的原理

  1. 容器->容器或容器<->虛擬機。該場景需要直接使用以10.開頭的地址(10.x.x.x),並且不需要用到NAT;
  2. 容器->因特網。容器IP需要映射到主宿主機IP好讓GCE知道如何向外發送這些流量。這裏就有兩層NAT:容器IP->內部宿主機IP->外部主機IP。第一層結合IP表發生在客戶容器上,第二層則是GCE網絡的一部分。第一層(容器IP->內部宿主機IP)進行了動態端口分配,而第二層的端口映射是1:1的;
  3. 因特網->容器。該場景的流量必須通過主宿主機IP而且理想狀態下也擁有兩層NAT。但是,目前的流量路徑是:外部主機IP -> 內部主機IP -> Docker) -> (Docker -> 容器IP),即Docker是中間代理。一旦(issue #15)被解決,那麼就應該是:外部主機IP -> 內部主機IP -> 容器IP。但是,爲了實現後者,就必須爲每個管理的端口建立端口轉發的防火牆(iptables)。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章