規劃你的叢集網路以支援 Azure Red Hat OpenShift,並使用託管控制平面(預覽)

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,則預設機器 CIDR 10.0.0.0/16 會涵蓋所有子網。
  • Pod 網路使用不可路由的 IP 位址,僅在叢集的軟體定義網路內使用。

私有叢集連接

如果你選擇私有 API 伺服器、私有預設入口,或兩者兼有,必須在部署叢集前,先建立使用者網路與叢集虛擬網路之間的私有網路連線。 沒有這種連線,管理員、CI/CD 管線和終端使用者無法連接到私有端點。

常見的連接方式包括:

  • Azure VNet 對等連線 - 連接兩個 Azure 虛擬網路,讓每個網路中的資源能夠彼此通訊。
  • Azure VPN 閘道 - 透過站對站 VPN 隧道,將你的本地網路連接到叢集的虛擬網路。
  • Azure ExpressRoute - 透過連線供應商,從你的本地網路建立一個私人專用的 Azure 連線。

規劃私有網路連線時,請確保對等或連接網路的 IP 位址範圍不會與叢集機器的 CIDR、Pod CIDR 或服務 CIDR 範圍重疊。

下一步