共用方式為


Azure Red Hat OpenShift 的網路概念

本指南說明 OpenShift 4 叢集上的 Azure Red Hat OpenShift 網路功能概觀,以及重要端點的圖表和清單。 如需關於核心 OpenShift 網路功能概念的詳細資訊,請參閱 Azure Red Hat OpenShift 4 網路功能文件

Azure Red Hat OpenShift 網路功能的圖表。

當您在 OpenShift 4 上部署 Azure Red Hat OpenShift 時,整個叢集會包含在虛擬網路中。 在此虛擬網路中,您的控制平面節點和背景工作角色節點都位於自己的子網路中。 每個子網路都會使用內部負載平衡器和公用負載平衡器。

注意

如需 ARO 最新變更的相關信息,請參閱 Azure Red Hat OpenShift 的新功能

網路連接元件

下列清單涵蓋 Azure Red Hat OpenShift 叢集中的重要網路功能元件。

  • aro-pls

    • 這是 Microsoft 和 Red Hat 網站可靠性工程師用來管理叢集的 Azure Private Link 端點。
  • aro-internal

    • 此端點會平衡 API 伺服器的流量和內部服務流量。 控制平面節點和背景工作角色節點均位於後端集區中。
    • 依預設不會建立此負載平衡器。 在您使用正確的註釋建立類型為 LoadBalancer 的服務之後,就會建立負載平衡器。 例如:service.beta.kubernetes.io/azure-load-balancer-internal: "true"。
  • aro

    • 此端點會用於任何公用流量。 當您建立應用程式和路由時,此端點就是輸入流量的路徑。
    • 此端點也會路由傳送並平衡 API 伺服器的流量 (如果 API 是公用的)。 此端點會指派公用傳出 IP,讓控制平面可以存取 Azure Resource Manager 並回報叢集健康情況。
    • 此負載平衡器也會透過 Azure Load Balancer 輸出規則,涵蓋來自執行於背景工作角色節點中任何 Pod 的輸出網際網路連線能力。
      • 輸出規則目前無法設定。 其會將 1,024 個 TCP 通訊埠配置到每個節點。
      • LB 規則中未設定 DisableOutboundSnat,因此 Pod 可以取得此 ALB 中所設定的任何公用 IP 做為輸出 IP。
      • 這兩個先前的重點會因此將公用的 LoadBalancer-type 服務新增到 ARO,此為新增暫時 SNAT 連接埠的唯一方法。
  • aro-nsg

    • 當您公開服務時,API 會在此網路安全性群組中建立規則,讓流量透過連接埠 6443 流經並到達控制平面和節點。
    • 根據預設,此網路安全性群組會允許所有輸出流量。 目前,輸出流量只能限制為 Azure Red Hat OpenShift 控制平面。
  • Azure Container Registry

    • 這是 Microsoft 內部所提供及使用的容器登錄。 這是唯讀的,不適合供 Azure Red Hat OpenShift 使用者使用。
      • 此登錄提供主機平台映像和叢集元件。 例如,監視或記錄容器。
      • 此登錄的連線會透過服務端點 (Azure 服務之間的內部連線) 發生。
      • 根據預設,此內部登錄在叢集外部無法使用。
  • 私人連結

    • Private Link 允許從管理平面到叢集的網路連線。 Microsoft 和 Red Hat 網站可靠性工程師可用來協助管理您的叢集。

網路原則

  • 輸入:輸入網路原則被視為 OpenShift SDN 的一部分而受到支援。 依預設會啟用此網路原則,而由使用者強制執行。 雖然輸入網路原則符合 V1 NetworkPolicy 規範,但並不支援輸出和 IPBlock 類型。

  • 輸出:使用 OpenShift 中的輸出防火牆功能可支援輸出網路原則。 每個命名空間/專案只有一個輸出原則。 「預設」命名空間不支援輸出原則,且會依序加以評估 (從第一個到最後一個)。

OpenShift 中的網路功能基本概念

OpenShift 軟體定義網路 (SDN) 是用來設定使用 Open vSwitch (OVS) 的重疊網路,這是以容器網路介面 (CNI) 規格為基礎的 OpenFlow 實作。 SDN 支援不同的外掛程式。 網路原則是 OpenShift 4 上的 Azure Red Hat 中使用的外掛程式。 所有網路通訊都是由 SDN 管理,因此您的虛擬網路上不需要額外的路由,即可達到 Pod 對 Pod 的通訊。

Azure Red Hat OpenShift 的網路功能

以下是 Azure Red Hat OpenShift 特有的網路功能:

  • 使用者可在現有的虛擬網路中建立其 Azure Red Hat OpenShift 叢集,或在建立其叢集時建立新的虛擬網路。
  • Pod 和服務網路 CIDR 是可設定的。
  • 節點和控制平面位於不同的子網路中。
  • 節點和控制平面虛擬網路子網路的最小值應設為 /27。
  • 預設 Pod CIDR 為 10.128.0.0/14。
  • 預設服務 CIDR 為 172.30.0.0/16。
  • Pod 和服務網路 CIDR 不應與網路上使用的其他位址範圍重疊。 它們不得在叢集的虛擬網路 IP 位址範圍內。
  • Pod CIDR 的最小大小應設為 /18。 (Pod 網路是無法路由傳送的 IP,並且僅在 OpenShift SDN 內使用。)
  • 每個節點會為其 Pod 配置 /23 個子網 (512 個 IP)。 此值無法變更。
  • 您無法將一個 Pod 附加至多個網路。
  • 對於使用 OVN-Kubernetes 網路外掛程式的私人 ARO 叢集,可以設定輸出 IP。 如需詳細資訊,請參閱設定輸出 IP 位址

網路設定

以下是適用於 Azure Red Hat OpenShift 4 叢集的網路設定:

  • API 可見度 - 在執行 az aro create command 時,設定 API 可見度。
    • 「公用」- API 伺服器可由外部網路存取。
    • 「私人」- API 伺服器已從控制平面子網路指派私人 IP,只能使用連線的網路 (對等互連虛擬網路和叢集中的其他子網路) 進行存取。
  • 輸入可見度 - 在執行 az aro create command 時,設定 API 可見度。
    • 「公用」路由預設為公用 Standard Load Balancer。 (預設值可以變更。)
    • 「私人」路由預設為內部負載平衡器。 (預設值可以變更。)

網路安全性群組

網路安全性群組建立於節點的資源群組中,會對使用者鎖定。 網路安全性群組會直接指派給不在節點 NIC 上的子網路。 網路安全性群組是不可變的。 使用者沒有進行變更的權限。

使用公開可見的 API 伺服器時,您無法建立網路安全性群組,並將其指派給 NIC。

網域轉送

Azure Red Hat OpenShift 會使用 CoreDNS。 您可以設定網域轉送。 您無法將自己的 DNS 導入您的虛擬網路。 如需詳細資訊,請參閱關於使用 DNS 轉送的文件。

下一步

如需輸出流量的詳細資訊,以及 Azure Red Hat OpenShift 針對輸出所支援的功能,請參閱支援原則文件。