總覽
扁平模式網路模型分為兩種:靜態模式網路和動態模式網路 (使用邊界閘道通訊協定)。當節點跨越單一第 2 層網域時,可以使用靜態平面模式。如要跨越多個第 2 層網域的節點,請使用 BGP 的扁平 IP 模式。
在扁平模式網路模型中,Pod 在叢集間具有不重複的 IP 位址。確認指派的 Pod CIDR 是獨一無二,且不會與任何其他子網路重疊。舉例來說,IP 位址不得與節點使用的 IP 位址重疊,也不得與其他叢集中的其他 Pod CIDR 重疊。這些 IP 位址可從外部存取,因此任何節點上的 Pod 都能與所有其他節點上的 Pod 通訊。Pod 與任何外部 IP 位址之間的通訊都不需要網路位址轉譯 (NAT)。如要進一步瞭解扁平模式網路模型,以及與預設島嶼模式網路模型的比較,請參閱「扁平模式與島嶼模式網路模型」。
如果 IP 位址空間很大,且可以為叢集指派專屬的 Pod CIDR,請使用扁平模式網路模型。您可以使用 ClusterCIDRConfigs 動態設定 Pod CIDR。叢集建立後,您可以新增或刪除 ClusterCIDRConfigs。如要進一步瞭解 ClusterCIDRConfig,以及如何使用這項資源的範例,請參閱「瞭解 ClusterCIDRConfig 自訂資源」。
如要進一步瞭解使用 BGP 的扁平模式,請參閱「實作支援 BGP 的扁平模式網路模型」。
瞭解 Pod IP 位址可連線性
在 IPv4 的靜態扁平網路模式中,Pod IP 位址可連線能力是以位址解析通訊協定 (ARP) 封包為準。因此,只有當 Pod 位於相同的第 2 層網域時,才能連線至 Pod 的 IP 位址。節點必須屬於同一個第 2 層網域。您為 Pod 指定的 IP 位址 (使用 ClusterCIDRConfigs) 必須與叢集節點位於相同的子網路。設定的 Pod CIDR 必須來自節點的子網路。舉例來說,如果叢集中的節點使用 222.1.0.0/16 子網路,請為 Pod 選取子網路中較小的子網路,例如 222.1.2.0/24。確認叢集中的其他資源未使用為 Pod 分配的 IP 位址範圍。
以下章節說明 IPv4 的扁平模式網路設定。
如何導入靜態平面模式網路
根據預設,Google Distributed Cloud 叢集會以孤島模式網路建立。本節說明如何為叢集設定扁平模式網路。
如要部署採用扁平模式網路模型的叢集,請對叢集設定檔進行下列變更:
只有在建立叢集時,才能為叢集啟用扁平模式網路。 如要建立採用扁平模式網路的新叢集,請按照下列步驟操作:
編輯叢集設定檔,新增
clusterNetwork.flatIPv4
並設為true
。啟用扁平模式網路時,系統會忽略叢集設定檔 (
clusterNetwork.pods.cidrBlocks
) 中指定的 Pod CIDR。將 ClusterCIDRConfig 資訊清單附加至叢集設定檔。
在 ClusterCIDRConfig 資訊清單中,加入下列資訊:
metadata.namespace
:叢集的命名空間。spec.ipv4.cidr
:以 CIDR 區塊格式表示的 IP 位址範圍,用於叢集中的 Pod。這個範圍必須與叢集節點位於相同的子網路。perNodeMaskSize
:叢集建立前置檢查會驗證perNodeMaskSize
值是否足以佈建maxPodsPerNode
中指定的 Pod 數量。nodeSelector
:如果沒有任何節點標籤與nodeSelector
值相符,節點協調程序會維持待處理狀態,叢集建立作業也不會完成。
下列叢集設定檔摘錄內容顯示如何實作不支援 BGP 的扁平模式網路。這段摘錄內容中顯示的 CIDR 只是範例,您必須將其替換為自己的 CIDR。以您自己的 CIDR 取代時,請確保這些 CIDR 符合 Pod 可連線性的條件,如「瞭解 Pod IP 位址可連線性」一文所述。
---
apiVersion: baremetal.cluster.gke.io/v1
kind: Cluster
metadata:
name: flat-mode
namespace: cluster-flat-mode
spec:
... (other cluster config omitted)
...
# Cluster networking configuration
clusterNetwork:
flatIPv4: true
services:
cidrBlocks:
- 10.96.0.0/12
... (other cluster config omitted)
...
---
apiVersion: baremetal.cluster.gke.io/v1alpha1
kind: ClusterCIDRConfig
metadata:
name: cluster-wide-1
namespace: cluster-flat-mode
spec:
ipv4:
cidr: "222.1.0.0/16"
perNodeMaskSize: 24
限制
Google Distributed Cloud 的靜態扁平模式網路有下列限制:
使用扁平模式網路的 Pod 可以在單一第 2 層網域內連線。如果其他機器不在叢集中,但位於同一第 2 層網域,也可以連線至 Pod。建立雙重堆疊叢集,以及 IPv6 處於無 BGP 的扁平模式時,也會有這項限制。詳情請參閱瞭解 Pod IP 位址可連線性。
Google Distributed Cloud IPAM 控制器會追蹤已設定的 Pod CIDR 內可用的 IP 位址。不會追蹤其他裝置已使用的 IP。因此,第 2 層網域中的任何其他 IP 不得干擾 POD CIDR。詳情請參閱瞭解 Pod IP 位址可連線性。