通用抽象網路邏輯介紹
這世界上沒有完美的架構,只有權衡後的辦法,但…
來一個圖文不符的 RHEL 網路線路圖,架構圖百百種,每個角色跟角度看的樣子都會不太一樣,這張圖目的是要呈現 OS 上的網卡跟網段對應的關係,算是蠻常見的網路架構表示法,一般習慣上我都是畫成像是五線譜ㄧ樣,比較好清楚表示每個角色的相呼關係,大家可以參考參考
但今天要特別講一下關於 OpenShift 本身的角度,我是怎麼看待這些抽象網路邏輯的,這跟如果要整第三方 SDN 解決方案有直接的關係
RHEL 網路流量抽象邏輯
其實因為他本身就是一台 VM 你加多少網卡,決定該網卡要幹嘛,他就是什麼角色,就像上面那張圖一樣,這比較沒什麼特別的
OpenShift 網路流量抽象邏輯
以一個 OpenShift 的 Networking
為觀點出發的話,針對網路的流量分類,常見會分為下面 3 + 1 種但不限於之類型
- 資料層 (Data Plane, DP):有時候有會被叫做轉發層 (Forwarding Plane, FP) 或 User Plane (UP),主要講的就是實際上資料封包傳輸所流經的路線
1 | $ oc get daemonset.apps/ovs -n openshift-sdn |
如果更詳細要講的話,其實就是透過基於 CNI 定義下實做出來的網路模組,如預設的 ovs-networkpolicy
,裡面就是節點間建立歸屬能辦到 L2 over L3 的 VXLAN 進行 Pod to Pod 或 Pod to Services 等 Kubernetes 內建之機制溝通
- 控制層 (Control Plane, CP):主要是針對 Data Plane 的資料流控制進行能管理和上一些規範,在 OpenShift 角度上來說就是
1 | $ oc get daemonset.apps/sdn-controller -n openshift-sdn |
- 管理層 (Management Plane, MP):能夠管理和監視 Control Plane 的路線,譬如透過 SSH / SNMP / Telnet 登入管理皆屬此類
1 | $ ssh [email protected] -i ~/.ssh/id_rsa_ocp4_vcenter.pub |
- 儲存層 (Storage Plane, SP):嚴格來說,這個不算在常見的網路架構中,連 OpenShift 網路都沒有特別定義,這是從 Data Plane 拆分一個角色出來,特別針對 OS 跟儲存設備中間拉一個專門的網路,譬如你的 nfs mount point
通常
都不會跟你的一般流量混在一起
所以?
正常 OpenShift 架構下,其實 CP/MP/DP 都是透過同一個 IP 出去溝通的,有特別要拆開的話就會跟其他家的 SDN 廠商合作了,譬如像
如果想要了解更多 CNI 的話,可以參考一下這份列表 容器平台強固化保護思路
後話
最後啊…要比較留意就是
不同的設備觀點,對於 CP / DP / MP 會有不一樣的解釋,所以要講架構前一定要很清楚知道是從哪個設備觀點出發
譬如說以我比較熟的 SDN 架構來說,對照如下
- DP: SDN Switch,實際轉發跟處理封包的路線
- CP: SDN Controller,負責決定 SDN Switch 內部資料流量的走向
- MP: SDN Switch 內建的 SNMP / Telnet / SSH 等標準協定可供日常管理的路線
當然啦,現在大多數的架構,都還是混合在一起的,總是有利有弊
我開頭講了一段好像很有道理的話,但後面缺了一小段,有興趣知道的可以當面找我聊 XD