共用方式為


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 時,整個叢集會包含在虛擬網路中。 在此虛擬網路中,您的控制平面節點和背景工作角色節點都位於自己的子網路中。 每個子網路都會使用內部負載平衡器和公用負載平衡器。

備註

如需最新變更的相關資訊,請參閱 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"
  • 埃羅

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

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

    • 微軟內部提供並使用的容器註冊表。 這是唯讀的,不適合供 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 網路外掛程式的專用叢集,可以設定輸出 IP。 如需詳細資訊,請參閱設定輸出 IP 位址

網路設定

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

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

網路安全性群組

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

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

網域轉送

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

後續步驟

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