在云容器引擎創建集群時,需要根據具體業務需求規劃VPC大小和數量、子網大小和數量、容器網段和服務網段。本文介紹集群各類地址作用,以及如何規劃地址段。
約束與限制
使用VPN方式訪問集群時,需注意VPN網絡與集群所在的VPC網段、容器網段和服務網段不能沖突。
集群各網段基本概念
VPC網段
虛擬私有云(Virtual Private Cloud,VPC)是隔離的、私密的網絡環境,可以自定義網絡地址、路由表、安全組等。同時,虛擬私有云提供豐富的網絡連接,可以滿足云上虛擬私有云互訪、公網訪問、通過專線或者VPN與線下IDC互通等網絡場景。
子網網段
云資源(例如云服務器、數據庫服務等)須部署在子網內,同子網內網絡默認互通,同VPC下不同子網之間默認互通。子網網段創建后無法修改,請合理規劃網絡。
下圖所示,VPC網段結構:
容器網段(Pod網段)
訂購集群時,可指定容器網段(即Pod網段)。針對選擇的網絡插件,容器網段有不同限制:
1、Calico IPIP隧道網絡:
可指定一個私有地址段作為容器網段,該地址段僅在集群內有效。網段大小影響后續可添加節點數及可創建Pod數上線,建議使用大網段,例如172.16.0.0/16,如下所示:
| VPC網段 | 容器網段 | Service網段 | 最大可分配Pod地址數 |
|---|---|---|---|
| 192.168.0.0/16 | 172.16.0.0/16 | 10.96.0.0/16 | 65536 |
容器網段不能與節點所在的VPC網段重疊。例如節點使用子網網段192.168.1.0/24,所屬VPC網段為192.168.0.0/16,則不能使用與192.168.0.0/16重疊的網段作為容器網段。
2、Cubecni VPC網絡:
使用Cubecni網絡插件時,容器直接從VPC子網中獲取IP地址,此時容器網段為VPC子網網段。請注意該容器子網的大小決定了該集群可創建Pod數上限,如下所示:
| VPC網段 | 容器網段 | Service網段 | 最大可分配Pod地址數 |
|---|---|---|---|
| 192.168.0.0/16 | 192.168.0.0/20 | 10.96.0.0/16 | 4090 |
服務網段
訂購集群時,可指定Service地址段(即服務網段)。Service可為一個或一組Pod提供固定的IP地址,并為這些Pod做負載均衡。每個Service都有自己的地址,Service地址及域名只能在集群內部使用。服務網段不能和節點所屬VPC網段及容器網段重疊。
單VPC下單集群場景
Calico IPIP隧道網絡
使用Calico網絡插件的集群,網絡地址段規劃如下圖所示:
VPC網段:集群所在的VPC網段,該網段大小影響可創建的子網大小和數量;
節點子網網段:集群節點所在的子網網段,該網段大小直接影響后續可新增的節點數;
容器網段:容器網段不能和VPC網段、服務網段重疊;
服務網段:服務網段不能和VPC網段、容器網段重疊。
Cubecni VPC網絡
使用Cubecni網絡插件的集群,網絡地址段規劃如下圖所示:
VPC網段:集群所在的VPC網段,該網段大小影響可創建的子網大小和數量;
節點子網網段:集群節點所在的子網網段,該網段大小直接影響后續可新增的節點數;
容器子網網段:是VPC的子網,Pod直接從對應子網分配IP。因為子網可用IP數直接決定了Pod數上限,建議選擇一個大子網專用于容器子網網段,以免出現子網可用IP不足的情況,例如訂購時選擇子網192.168.64.0/18,則有16380個可用IP為Pod提供地址;
服務網段:服務網段不能和VPC網段重疊;
單VPC下多集群場景
Calico IPIP隧道網絡
使用Calico網絡插件的集群,網絡地址段規劃如下圖所示:
VPC網段:集群所在的VPC網段,該網段大小影響可創建的子網大小和數量;
節點子網網段:集群節點所在的子網網段,該網段大小直接影響后續可新增的節點數;
容器網段:容器網段不能和VPC網段、服務網段重疊;多個集群的容器網段可以重疊,但不同集群的Pod無法直接通過容器IP通信,Pod的跨集群訪問需借助LoadBlance類型的Service等方式;
服務網段:同一集群的服務網段不能和VPC網段、容器網段重疊;不同集群的服務網段可以重疊,因為服務網段地址只在集群內部有效;
Cubecni VPC網絡
使用Cubecni網絡插件的集群,網絡地址段規劃如下圖所示:
VPC網段:集群所在的VPC網段,該網段大小影響可創建的子網大小和數量,影響集群可創建的節點數與Pod數之和;
節點子網網段:集群節點所在的子網網段,該網段大小直接影響后續可新增的節點數;
容器子網網段:是VPC的子網,Pod直接從該子網分配IP,因為子網可用IP數直接決定了Pod數上限,建議選擇一個大子網專用于容器子網網段;不同集群的Pod之間可以直接通過IP訪問;
服務網段:同一集群的服務網段不能和VPC網段重疊;不同集群的服務網段可以重疊,因為服務網段地址只在集群內部有效;
集群跨VPC互聯場景
不同VPC之間網絡不通,為打通同一個區域不同VPC的網絡互聯,可通過對等連接實現。配了對等連接的兩個VPC,可進一步配置對等連接的本端路由和對端路由,以確保網絡流量能夠正確地傳輸,詳見:對等連接產品介紹
Calico IPIP隧道網絡
不同VPC使用Calico網絡插件的兩個集群,在創建對等連接后,需要進一步配置VPC路由表才能使兩個VPC互通。跨VPC互聯如下圖所示:
需要注意如下幾點:
兩端集群節點子網網段需避免重疊;為簡化配置避免潛在的地址沖突,建議VPC地址段不重疊;
兩端集群的容器網段可以重疊,服務網段也可以重疊;
一個集群的節點可以訪問另一個集群的節點,但需注意兩端安全組是否放通;
不同集群的Pod之間不能通過容器IP直接訪問,跨集群Pod訪問需通過LoadBlance類型Service等方式訪問;
對等連接本端和對端VPC均需配置路由表,以確保網絡流量能夠正確地傳輸;
在對等連接的本端路由添加對端集群節點子網網段,在對端路由添加本端集群節點子網網段,以實現兩端集群節點互訪:
Cubecni VPC網絡
不同VPC使用Cubecni網絡插件的兩個集群,在創建對等連接后,需要進一步配置VPC路由表才能使兩個VPC互通。跨VPC互聯如下圖所示:
需要注意如下幾點:
兩端集群節點子網網段需避免重疊,容器子網網段需避免重疊;為簡化配置避免潛在的地址沖突,建議VPC地址段不重疊;
兩端集群的節點及Pod均可直接互訪,但需注意兩端安全組是否放通;
對等連接的路由表需添加對端集群節點子網網段和容器子網網段或者整個VPC網段,該操作在兩側的VPC路由表中均要執行。