Azure Red Hat OpenShift 搭配託管控制平面,會將工作節點部署到你的 Azure 虛擬網路中,並使用專用子網路建立託管控制平面與工作節點之間的私有連線。 你必須在建立叢集前規劃好虛擬網路配置、子網和 IP 位址範圍。
規劃運算容量
節點池提供運算容量。 節點池是一組共用相同虛擬機大小、磁碟配置及可用性區域的工作節點。 你可以在單一叢集中建立多個節點池,以便在不同硬體上執行不同類型的工作負載。 關於支援的工作節點虛擬機大小,請參見 支援的虛擬機大小。 多個節點池決策直接影響你的網路配置,因此你必須在擴展網路前規劃好運算容量。
回答以下問題有助於你規劃叢集的子網路和 IP 位址範圍:
- 你會運行多少個節點池? 節點池的數量決定了你需要多少子網。 如果所有池共用叢集的預設工作子網,一個子網就足夠了。 如果你將不同的子網指派給不同的集區,每個子網都會額外增加你的虛擬網路和機器 CIDR 需求。
- 你會跨可用區域部署嗎? 每個節點池部署於單一可用區域。 為了在不同區域間分配工作負載以達到高可用性,你需要一個獨立的節點池,甚至可能為每個區域設置獨立的子網路。 更多的區域代表更多的子網路和更大的機器 CIDR。
- 每個節點池會使用自己的子網嗎? 除非你指定不同的子網,否則節點池會部署到叢集的預設工作者子網。 獨立子網能讓你在節點池間保持網路隔離,但每個子網必須符合你的機器 CIDR 範圍和虛擬網路位址空間。
- 你會在峰值時運行多少節點? 最大節點數(包括自動縮放最大值)決定每個子網必須有多大。 叢集在所有池中最多支援 500 個節點。
- 之後會新增更多節點池嗎? 叢集的 CIDR 範圍在創建後無法更改。 如果你未來計畫新增節點池和新的子網,你的機器 CIDR 和虛擬網路必須有足夠的位址空間來容納這些子網。
小提示
尺寸範例:一個擁有 3 個可用區域、每個區域最多 50 個節點,且每個區域有獨立子網的叢集,需要三個/26子網(每個 64 個位址,容納 50 個節點加上 Azure 保留位址)和一個 /29 VNet 整合子網路。
這四個子網都落在一個 /24 機器 CIDR(256 個位址)的範圍內。
如果你打算之後新增更多節點集區,請使用較大的機器 CIDR,例如 /22 或 /16,為其他子網預留空間。
子網路需求
您的虛擬網路必須包含以下元件:
- 工作者子網 - 叢集工作節點部署的預設子網路。 當你建立節點池時,除非你指定不同的子網,否則它會部署到這個子網路。 如果你打算在多個可用區域部署節點池,可以為每個區域建立獨立的子網路。 所有節點池子網必須與叢集處於同一虛擬網路中。 根據你計畫執行的工作節點數量來規劃每個子網的大小。
-
VNet 整合子網 - 一個專用子網路,能在託管控制平面(運行於 Red Hat 的 Azure 帳號)與你訂閱中的工作節點之間保持私密連線。 必須符合以下要求:
-
/29的最小尺寸 - 位於與工作者子網相同的虛擬網路中
- 未與工作節點子網或任何節點集區子網共用
-
- 網路安全群組 - 若您將網路安全群組(NSG)與工作者、節點池或 VNet 整合子網關聯,請檢視其規則與 必要網路安全群組流量中所述的流量。 你直接將 NSG 指派給子網。
必須的網路安全群組流量
與節點池及VNet整合子網相關的網路安全群組(NSG)必須允許以下流量:
| NSG協會 | 方向 | Source | Destination | 目的地連接埠 |
|---|---|---|---|---|
| 工作節點或節點集區子網路 | 輸出 | 工作節點或節點集區子網路 | 上層叢集子網路 | TCP 443 與 6443 |
| VNet 整合子網 | Inbound | 工作節點或節點集區子網路 | VNet 整合子網 | TCP 443 與 8443 |
這些連線允許工作節點抵達託管的 kube-apiserver 及託管控制平面。 如果 NSG 拒絕規則阻擋了必要的流量,你就無法建立節點池。
要修正阻擋所需流程的拒絕規則,請採取以下其中一項操作:
- 移除拒絕規則。
- 縮小 Deny 規則的範圍,使其不會比對到所需的來源、目的地和連接埠。
- 新增一條允許規則,該規則符合所需的來源、目的地和埠,且優先權高於拒絕規則。 在 NSG 中,數值優先權較低的優先權較高。
使用託管控制平面的 Azure Red Hat OpenShift 會評估包含所需連接埠的 TCP 規則和萬用字元規則。 針對不相關的連接埠、UDP 流量或不相關的目的地所設定的拒絕規則,不會影響此驗證。 不過,這些規則仍可能阻擋其他流量。
CIDR 要求
下表說明虛擬網路與CIDR需求:
| 網路需求 | 預設值 | Description |
|---|---|---|
| 主機 CIDR 範圍 | 10.0.0.0/16 |
運算節點的 IP 位址範圍。 它必須涵蓋虛擬網路子網的所有 CIDR 位址範圍,包括你計劃用於額外節點池的任何子網路。 子網路必須是連續的。 單一可用區部署支援至少 128 個位址(/25)。 多重可用性區部署時,至少支援 256 個位址/24()。 |
| 服務 CIDR 範圍 | 172.30.0.0/16 |
Kubernetes 服務 IP 的 IP 位址範圍。 範圍必須足夠大以容納您的工作負載,且不得與叢集內外部服務重疊。 |
| Pod CIDR 範圍 | 10.128.0.0/14 |
Pods 的 IP 位址範圍。 範圍必須足夠大以容納您的工作負載,且不得與叢集內外部服務重疊。 |
| 主機前綴 | 23 |
分配給每個節點、供其 Pod 使用的子網路前綴長度。 將值設為 23 時,會根據 Pod CIDR 範圍,為每個節點指派一個 /23 子網路(512 個 IP 位址)。 |
除非預設值不符合你的要求,否則就用預設值。 如果你需要更改這些數值,請遵循以下指引:
- 艙、服務與機器的CIDR不得重疊。
- Pod 與服務的 CIDR 不得與網路上使用的任何位址範圍或叢集內存取的外部服務重疊。
- 機器 CIDR 必須涵蓋叢集所使用的所有虛擬網路子網,包括工作者子網、任何額外的節點池子網,以及 VNet 整合子網。 如果你未來打算新增帶有獨立子網的節點池,請確保機器 CIDR 足夠大以包含這些子網。 例如,如果您的 VNet 使用
10.0.0.0/16,則預設機器 CIDR10.0.0.0/16會涵蓋所有子網。 - Pod 網路使用不可路由的 IP 位址,僅在叢集的軟體定義網路內使用。
私有叢集連接
如果你選擇私有 API 伺服器、私有預設入口,或兩者兼有,必須在部署叢集前,先建立使用者網路與叢集虛擬網路之間的私有網路連線。 沒有這種連線,管理員、CI/CD 管線和終端使用者無法連接到私有端點。
常見的連接方式包括:
- Azure VNet 對等連線 - 連接兩個 Azure 虛擬網路,讓每個網路中的資源能夠彼此通訊。
- Azure VPN 閘道 - 透過站對站 VPN 隧道,將你的本地網路連接到叢集的虛擬網路。
- Azure ExpressRoute - 透過連線供應商,從你的本地網路建立一個私人專用的 Azure 連線。
規劃私有網路連線時,請確保對等或連接網路的 IP 位址範圍不會與叢集機器的 CIDR、Pod CIDR 或服務 CIDR 範圍重疊。