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 規範,但不支援 Egress 和 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 位址範圍內。
  • PodCIDR 的大小應至少為 /18。 (Pod 網路是不可路由傳送的 IP,而且僅用於 OpenShift SDN.)
  • 每個節點會為其 Pod 配置 /23 個子網 (512 個 IP)。 無法變更此值。
  • 您無法將 Pod 連結至多個網路。
  • 您無法設定輸出靜態 IP。 (這項限制是 OpenShift 功能。如需詳細資訊,請參閱 設定輸出 IP) 。

網路設定

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

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

網路安全性群組

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

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

網域轉送

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

後續步驟

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