瞭解 VPC 叢集網路

建立叢集時,必須選擇網路設定,以便特定叢集元件可以相互通訊,並且能與叢集外部的網路或服務進行通訊。

使用 VPC 子網進行工作節點間的通訊

在首次建立 VPC 叢集之前,您必須在每個欲部署工作節點的區域中 建立一個 VPC 子網。 VPC 子網是一個指定的私有 IP 位址範圍(CIDR 區塊),其配置方式可讓一組工作節點和 Pod 彷彿連接在同一條實體線路上一般運作。

建立叢集時,您需為每個區域指定一個現有的 VPC 子網。 在叢集裡新增的每個工作者節點都將使用該區域中 VPC 子網路中的專用 IP 位址進行部署。 佈建工作者節點後,工作者節點 IP 位址會在 reboot 作業之後持續保存,但工作者節點 IP 位址在 replaceupdate 作業之後會變更。

子網路提供了一個頻道,用於連線功能叢集內的工作者節點。 此外,任何連接至相同 VPC 中任何專用子網路的系統都可以與工作者節點進行通訊。 例如,一個 VPC 中的所有子網路都可以透過專用第 3 層遞送與內建 VPC 路由器進行通訊。 如果您有多個叢集必須相互通訊,則可以在相同 VPC 中建立這些叢集。 不過,如果您的叢集無需相互通訊,您可以透過在不同的 VPC 中建立叢集,來實現更完善的網路分段。 此外,還可以為 VPC 子網路建立存取控制清單 (ACL),以調解專用網路上的資料流量。 ACL 由入埠和出埠規則組成,這些規則定義了每個 VPC 子網路允許的 Ingress 和 Egress。

當您建立 VPC 叢集並在叢集建立期間同時啟用公用及專用雲端服務端點時,依預設會使用公用雲端服務端點來存取叢集的元件,例如 Red Hat OpenShift Web 主控台。 為了讓主控台 Pod 透過公用服務端點透過網際網路建立安全的公用連線,您必須在工作者節點部署至的每一個 VPC 子網路上啟用公用閘道。

當您建立 VPC 叢集並在叢集建立期間僅啟用專用雲端服務端點時,依預設會使用專用雲端服務端點來存取 Red Hat OpenShift 元件,例如 Red Hat OpenShift Web 主控台或 OperatorHub。 您必須連接至專用 VPC 網路 (例如透過 VPN 連線),才能在叢集上存取這些元件或執行 kubectl 指令。

VPC 子網路的預設 IP 位址範圍是 10.0.0.0- 10.255.255.255。 如需各 VPC 區域的 IP 位址範圍清單,請參閱 VPC 預設位址前綴

如果您在建立 VPC 時啟用標準存取權,則 標準存取預設位址字首 會自動決定您所建立任何子網路的 IP 範圍。 不過,標準存取 VPC 子網路的預設 IP 範圍與 Red Hat OpenShift on IBM Cloud 控制平面的子網路相衝突。 相反地,您必須 建立不含自動預設位址字首的 VPC,然後為叢集建立自己的位址字首及那些範圍內的子網路

是否需要使用自訂範圍的子網路來建立叢集? 請查看有關自訂位址字首的指引。 如果您對工作者節點使用自訂範圍子網路,則必須 確保工作者節點子網路不會與叢集的 Pod 子網路重疊

在建立叢集期間或在區域中新增工作者節點時,請勿刪除您連接至叢集的子網路。 如果您刪除叢集使用的 VPC 子網路,則使用子網路中 IP 位址的任何負載平衡器可能會遇到問題,而且您可能無法建立新的負載平衡器。

為叢集建立 VPC 子網路時,請記住下列特性和限制。 如需 VPC 子網路的相關資訊,請參閱 VPC 中子網路的性質

  • 每個 VPC 子網路的預設 CIDR 大小為 /24,最多可支援 253 個工作者節點。 如果計劃在一個叢集裡每個區域部署 250 個以上的工作者節點,請考慮建立更大的子網路。
  • 建立 VPC 子網後,您將無法調整其大小或變更其 IP 範圍。
  • 相同 VPC 中的多個叢集可以共用子網路。
  • VPC 子網區會綁定至單一區域的單一區域,且無法橫跨多個區域或區域。
  • 建立子網後,您無法將其移至其他區域、區域或 VPC。
  • 若您有工作節點已連接到某個區域中的現有子網,則無法在叢集中變更該區域的子網。
  • 禁止使用 172.16.0.0/16172.18.0.0/16172.19.0.0/16172.20.0.0/16 範圍。

使用虛擬專用端點或雲端服務端點的工作者節點至主節點及使用者至主節點通訊

Red Hat OpenShift on IBM Cloud 使用不同類型的服務端點,從授權的群集使用者和工作節點建立連線到 Kubernetes master。 授權的群集使用者透過雲端服務端點與 Kubernetes master 進行通訊。 根據您的群集版本,工作節點透過雲端服務端點或 VPC 虛擬專用端點與 Kubernetes master 進行通訊。

在建立叢集之前,您必須啟用帳戶以使用服務端點。 若要啟用服務端點,請執行 ibmcloud account update --service-endpoint-enable true

在 Red Hat OpenShift on IBM Cloud 中的 VPC 叢集中,您無法停用私有雲服務端點,也無法僅使用公有雲服務端點來建立叢集。

依預設,會使用公用及專用雲端服務端點來建立 VPC 叢集。 若要使用僅連接至專用網路的工作者節點來建立叢集,您必須在叢集建立期間僅啟用專用服務端點。 請勿啟用公用服務端點。 例如,若要 在 CLI 中 建立僅具有專用雲端服務端點的 VPC 叢集,請包含 --disable-public-service-endpoint 選項。 如果您包括此選項,則會使用依預設僅在專用網路上公開應用程式的路由器及 Ingress 控制器來建立叢集。 如果您稍後想要將應用程式公開至公用網路,則必須手動建立公用路由器及 Ingress 控制器。

VPC 叢集裡的工作者節點至主節點通訊

工作節點與 Kubernetes 主節點之間的通訊,預設會使用 VPC 虛擬私有端點(VPE)。 您的叢集所使用的 VPE 閘道,會根據區域的不同,採用以下兩種主機名稱格式之一:CLUSTERID.vpe.private.REGION.containers.cloud.ibm.comCLUSTERID.private.REGION.containers.cloud.ibm.com。 所有從工作節點到主節點的流量均透過此私有 VPE 閘道進行路由。

若 VPE 閘道連線失敗,且您的叢集已停用外發流量保護功能,工作節點將回退至公有雲服務端點。 此備用機制僅在無法連線至 VPE 閘道時才會觸發,正常運作期間則不會發生。 若已啟用出站流量保護,則不會回退至公共端點。

為了保護透過公用及專用雲端服務端點或 VPE 的通訊安全,Red Hat OpenShift on IBM Cloud 會在建立叢集時自動設定 Kubernetes 主節點與工作者節點之間的 Konnectivity 連線。 工作節點透過 TLS 憑證與主節點進行安全通訊,而主節點則透過Konnectivity連線與工作節點進行通訊。

VPC 叢集裡的使用者至主要通訊

您可以透過啟用公有雲與私有雲服務端點,或僅啟用私有雲服務端點,來允許經授權的叢集使用者與 Kubernetes 主節點進行通訊。

  • 公有雲與私有雲服務端點:預設情況下,所有由經授權的叢集使用者發起的對主節點的呼叫,都會透過公有雲服務端點進行路由。 若授權的叢集使用者位於您的 VPC 網路中,或透過 VPC VPN 連線 進行連線,則可透過私有雲服務端點私有存取主節點。
  • 僅限專用雲端服務端點: 若要透過專用雲端服務端點存取主節點,授權叢集使用者必須在 VPC 網路中或透過 VPC VPN 連線 連接。

您可以使用基於上下文的限制來保護對叢集服務端點的網路存取。 只有源自白名單中子網段、且針對您的叢集主節點的授權請求,才允許透過叢集的服務端點進行傳輸。 使用基於上下文的限制有助於防止未經授權的掃描活動。 有關詳細信息,請參閱 使用基於上下文的限制

工作者節點與其他服務或網路的通訊

容許工作者節點安全地與其他 IBM Cloud 服務、內部部署網路、其他 VPC 和 IBM Cloud 標準基礎架構資源進行通訊。

透過專用或公用網路與其他 IBM Cloud 服務通訊

工作者節點可以透過專用網路自動且安全地與其他 支援專用雲端服務端點的 IBM Cloud 服務(例如 IBM Cloud® Container Registry) 進行通訊。 如果 IBM Cloud 服務不支援專用雲端服務端點,則工作者節點可以透過子網路的公用閘道,安全地透過公用網路與服務進行通訊。

請注意,如果對 VPC 子網路使用存取控制清單 (ACL),則必須建立入埠或出埠規則,以容許工作者節點與這些服務進行通訊。

與內部部署資料中心的資源進行通訊

若要將叢集與內部部署資料中心連接,您可以使用 IBM Cloud® Virtual Private Cloud VPN 或 IBM Cloud® Direct Link。

如果您計劃將叢集連接至內部部署網路,請參閱下列有用資訊:

  • 您可能有與 IBM提供的預設 172.30.0.0/16 範圍 (適用於 Pod) 及 172.21.0.0/16 範圍 (適用於服務) 的子網路衝突。 當您透過 CLI 建立叢集時 ,可透過在 --pod-subnet 選項中為 Pod 指定自訂子網 CIDR,以及在 --service-subnet 選項中為服務指定自訂子網 CIDR,來避免子網衝突。
  • 如果 VPN 解決方案保留要求的來源 IP 位址,您可以 建立自訂靜態路徑,以確保工作者節點可以將回應從叢集遞送回內部部署網路。
  • 請注意,禁止使用 172.16.0.0/16172.18.0.0/16172.19.0.0/16172.20.0.0/16 子網路範圍,因為它們保留用於 Red Hat OpenShift on IBM Cloud 控制平面功能。

與其他 VPC 中的資源進行通訊

若要將整個 VPC 連接到您帳戶中的另一個 VPC,您可以使用 IBM Cloud VPC VPN 或 IBM Cloud® Transit Gateway。

  • 若要開始使用 IBM Cloud VPC VPN,請遵循 使用 VPN 連接兩個 VPC 中的步驟,在每個 VPC 中的子網路上建立 VPC 閘道,並在兩個 VPC 閘道之間建立 VPN 連線。 請注意,如果已在 VPC 中自訂存取控制清單 (ACL) 或安全群組,則必須確保 ACL 及安全群組容許工作者節點與其他 VPC 中的工作者節點進行通訊。
  • 若要開始使用 IBM Cloud Transit Gateway,請參閱 Transit Gateway 文件。Transit Gateway 實例可以配置成在相同地區 (本端遞送) 或不同地區 (廣域遞送) 的 VPC 之間遞送。

與 IBM Cloud 標準資源進行通訊

如果您需要將叢集連接至 IBM Cloud 標準基礎架構中的資源,您可以設定具有標準存取權的 VPC 或使用 IBM Cloud Transit Gateway。

  • 若要開始使用具有標準存取權的 VPC,請參閱 設定標準基礎架構的存取權。 請注意,您必須在建立 VPC 時啟用「經典存取」模式,且無法將現有的 VPC 轉換為使用「經典存取」模式。 此外,您只能為每個地區設定一個 VPC 的標準基礎架構存取權,並且無法在一個地區中設定多個具有標準基礎架構存取權的 VPC。
  • 若要開始使用 IBM Cloud Transit Gateway,請參閱 Transit Gateway 文件。 您可以將多個 VPC 連接至標準基礎架構,例如使用 IBM Cloud Transit Gateway 來管理多個地區中 VPC 與 IBM Cloud 標準基礎架構中資源之間的存取權。

與在工作者節點上執行的應用程式的外部通訊

容許從叢集外部向在工作者節點上執行的應用程式發出專用或公用資料流量要求。

叢集應用程式的專用資料流量

當您在叢集中部署應用程式時,您可能希望僅允許與叢集位於同一私有網路中的使用者和服務存取該應用程式。 專用負載平衡適用於讓叢集外的要求使用您的應用程式,而不將應用程式公開給一般大眾使用。 您也可以先使用專用負載平衡來測試應用程式的存取、要求遞送及其他配置,稍後再使用公用網路服務將應用程式公開給大眾使用。

若要容許從叢集外部到應用程式的專用網路資料流量要求,您可以使用專用 Kubernetes 網路服務,例如建立 LoadBalancer 服務。 例如,當您在叢集裡建立 Kubernetes LoadBalancer 服務時,會在叢集外的 VPC 自動建立 VPC 的負載平衡器。 VPC 負載平衡器是多區域負載平衡器,透過在工作者節點上自動開啟的專用 NodePort 來遞送應用程式的要求。 對於 VPC ALB 和 NLB,一個以 kube-lbaas-<cluster-id> 命名的 安全群組會 自動附加到您的負載平衡器。

如需相關資訊,請參閱規劃專用外部負載平衡

叢集應用程式的公用資料流量

若要讓您的應用程式能透過公共網際網路存取,您可以使用公共網路服務。 即使您的工作節點僅連接到私有 VPC 子網,但為公共網路服務所建立的 VPC 負載平衡器,仍可透過為您的應用程式提供一個公共 URL,將公共請求路由至您位於私有網路上的應用程式。 以公用方式公開應用程式時,具有公用 URL 的任何人都可以將要求傳送至應用程式。

您可以使用公用 Kubernetes 網路服務,例如建立 LoadBalancer 服務。 例如,當您在叢集裡建立 Kubernetes LoadBalancer 服務時,會在叢集外的 VPC 自動建立 VPC 的負載平衡器。 VPC 負載平衡器是多區域負載平衡器,透過在工作者節點上自動開啟的專用 NodePort 來遞送應用程式的要求。 對於 VPC ALB 和 NLB,一個以 kube-lbaas-<cluster-id> 命名的 安全群組會 自動附加到您的負載平衡器。

VPC 叢集網路設定的範例情境

既然您已瞭解了叢集網路的基本知識,請查看一些範例情境,其中各種 VPC 叢集網路設定可以符合您的工作負載需求。

情境:在 VPC 叢集裡執行面對網際網路的應用程式工作負載

在此情境中,您在 VPC 叢集裡執行的工作負載可供來自網際網路的要求存取。 公共存取權限由安全性群組進行管控,藉此讓終端使用者能夠存取您的應用程式,同時拒絕針對您應用程式的非預期公共請求。 此外,您的員工可自動存取任何支援私有雲服務端點的 IBM Cloud 服務。

針對執行對外應用工作負載的 VPC 叢集進行網路設定。
針對執行對外應用工作負載的 VPC 叢集進行網路設定

工作者節點到工作者節點的通訊

若要達成此設定,請在想要部署工作者節點的每個區域中建立 VPC 子網路。 運行預設值Red Hat OpenShift元件,例如 Web 控制台或OperatorHub,這些子網路需要公共網關。 接著,建立一個使用這些 VPC 子網路的 VPC 叢集。

工作者節點到主節點的通訊以及使用者到主節點的通訊

可以選擇容許透過公用和專用網路或僅透過專用網路進行工作者節點對主節點的通訊以及使用者對主節點的通訊。

  • 公有雲與私有雲服務端點:工作節點與主節點之間的通訊,是透過私有雲服務端點在私有網路中建立的。 預設情況下,所有由經授權的叢集使用者發起的對主節點的呼叫,都會透過公有雲服務端點進行路由。
  • 僅限私有服務端點:工作節點與叢集使用者皆透過私有雲服務端點,在私有網路中與主節點建立通訊連線。 叢集使用者必須在您的 VPC 網路,或是透過 VPC VPN 連線進行連接。

工作者節點與其他服務或網路的通訊

若您的應用程式工作負載需要使用其他 IBM Cloud 服務,您的工作節點即可透過私有 VPC 網路,自動且安全地與支援私有雲服務端點的 IBM Cloud 服務進行通訊。

與在工作者節點上執行的應用程式的外部通訊

測試您的應用程式之後,您可以將它公開到網際網路,方法是建立公用 Kubernetes LoadBalancer 服務或使用預設公用 Ingress 應用程式負載平衡器 (ALB)。 當您使用這些服務之一時,在您叢集之外的 VPC 自動建立的 VPC 負載平衡器,會將資料流量遞送到您的應用程式。 您可以透過將自動套用至 VPC ALB 的 kube-lbaas-<cluster-id> 安全群組取代為您建立並管理的安全群組,來改善叢集的安全並控制應用程式的公用網路資料流量。 套用至 ALB 時,安全群組會控制允許透過 ALB 進入叢集的入埠資料流量。

準備好要開始針對這個情境使用叢集了嗎? 當你計劃好你的 高可用性 設置,參見 建立VPC集群

將您的本地資料中心擴展至 VPC 叢集

在此情境中,您將在 VPC 叢集裡執行工作負載。 但是,您希望這些工作負載僅可供內部部署資料中心內專用網路上的服務、資料庫或其他資源存取。 叢集工作負載可能需要存取支援透過專用網路進行通訊的其他若干 IBM Cloud 服務。

延伸至本地資料中心的 VPC 叢集網路設定。
延伸至本地資料中心的 VPC 叢集網路設定

工作者節點到工作者節點的通訊

若要達成此設定,請在想要部署工作者節點的每個區域中建立 VPC 子網路。 運行預設值Red Hat OpenShift元件,例如 Web 控制台或OperatorHub,這些子網路需要公共網關。 接著,建立一個使用這些 VPC 子網路的 VPC 叢集。

請注意,您可能在工作者節點、Pod 和服務等預設範圍,與內部部署網路中之子網路之間,有子網路的衝突。 在建立 VPC 子網時,您可以選擇 自訂位址前綴, 然後使用這些子網來建立叢集。 此外,您可以在建立叢集時,透過在 ibmcloud oc cluster create 指令中使用 --pod-subnet --service-subnet 選項,為 Pod 和服務指定自訂子網 CIDR。

工作者節點到主節點的通訊以及使用者到主節點的通訊

建立叢集時,僅需啟用私有雲服務端點,即可讓工作節點與主節點之間,以及使用者與主節點之間的通訊透過私有網路進行。 叢集使用者必須在您的 VPC 網路,或是透過 VPC VPN 連線進行連接。

工作者節點與其他服務或網路的通訊

若要將叢集與內部部署資料中心相連接,可以設定 VPC VPN 服務。 IBM Cloud VPC VPN 將整個 VPC 連接至內部部署資料中心。 如果您的應用程式工作負載需要使用其他支援私有雲服務端點的 IBM Cloud 服務,您的工作節點便能透過私有VPC網路,自動且安全地與這些服務進行通訊。

與在工作者節點上執行的應用程式的外部通訊

測試應用程式後,可以藉由建立專用 Kubernetes LoadBalancer 服務或使用預設專用 Ingress 應用程式負載平衡器 (ALB) 將其公開到專用網路。 當您使用這些服務之一時,在您叢集之外的 VPC 自動建立的 VPC 負載平衡器,會將資料流量遞送到您的應用程式。 請注意,VPC 負載平衡器僅將應用程式公開到專用網路,以便任何連線到 VPC 子網路的內部部署系統都可以存取該應用程式。 您可以修改叢集的預設 VPC 安全群組,以改善叢集的安全並控制公用資料流量應用程式。 安全群組包含定義工作者節點允許哪些入埠資料流量的規則。

準備好要開始針對這個情境使用叢集了嗎? 當你計劃好你的 高可用性 設置,參見 建立VPC集群

下一步

若要繼續規劃過程,請了解如何透過制定有關層級的決策來保護叢集中的敏感資訊。加密 你必須配置。 如果您已準備好開始設定網絡,請繼續 了解預設安全集群 VPC 網路