IBM Cloud Docs
配置 VPC 子網路

配置 VPC 子網路

Virtual Private Cloud

透過在 Red Hat® OpenShift® on IBM Cloud® VPC 群集中新增子網路,變更可用的可攜式公用或私有 IP 位址池。

本頁面的內容專門針對 VPC 群集。 如需標準叢集的相關資訊,請參閱 配置標準叢集的子網路及 IP 位址

Red Hat OpenShift on IBM Cloud 中 VPC 網路的概觀

瞭解 Red Hat OpenShift on IBM Cloud 集群中 VPC 網路的基本概念。

子網路

首次建立 VPC 群集之前,您必須在每個要部署工作者節點的區域中 建立一個 VPC 子網路。 VPC 子網路是指定的私有 IP 位址範圍 (CIDR 區塊),可將一組 Worker 節點和 Pod 設定為連接至相同的實體線路。

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

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

我的 VPC 子網路需要多少 IP 位址?

當您 建立 VPC 子網路時,請確保為叢集建立具有足夠 IP 位址的子網路,例如 256。 之後您就無法變更 VPC 子網路的 IP 位址數量。

請記住下列 IP 位址保留。

  • 依預設,來自每一個子網路的 5 個 IP 位址 由 VPC 保留
  • 虛擬專用端點(VPE)閘道 需要來自叢集具有工作者節點之每個區域中一個子網路的 1 個 IP 位址。
  • 叢集裡每個工作者節點需要 1 個 IP 位址。
  • 每次更新或取代工作者節點時都需要 1 個 IP 位址。 這些 IP 位址最終會收回並可供重複使用。
  • 每次建立公用或專用負載平衡器時,都會使用 2 個 IP 位址。 如果您具有多區域叢集,則這 2 個 IP 位址會分散在各區域中,因此子網路可能沒有保留 IP 位址。
  • 您為叢集設定的其他網路資源 (例如 VPNaaS 或 LBaaS 自動調整) 可能需要其他 IP 位址或具有其他 服務限制。 例如,LBaaS 自動調整可能會針對每個負載平衡器擴增至 16 個 IP 位址。

我可以將哪些 IP 範圍用於 VPC 子網路?

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

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

  • 如果您在叢集建立期間於 --pod-subnet 選項中指定自己的 Pod 子網路,則 Pod 會獲指派此範圍的 IP 位址。
  • 如果您在叢集建立期間未指定自訂 Pod 子網路,則叢集會使用預設 Pod 子網路。 在 VPC 中建立的第一個叢集裡,預設 Pod 子網路為 172.17.0.0/18。 在您於該 VPC 中建立的第二個叢集裡,預設 Pod 子網路為 172.17.64.0/18。 在每一個後續叢集裡,Pod 子網路範圍是下一個可用的非重疊 /18 子網路。

如何建立子網路以進行標準基礎架構存取?

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

我可以指定叢集裡 Pod 及服務的子網路嗎?

如果您計劃透過 IBM Cloud Direct Link 或 VPN 服務將叢集連接至內部部署網路,則可以透過指定為 Pod 提供專用 IP 位址的自訂子網路 CIDR,以及為服務提供專用 IP 位址的自訂子網路 CIDR,來避免子網路衝突。

若要在建立叢集期間指定自訂 Pod 及服務子網路,請使用 ibmcloud oc cluster create CLI 指令中的 --pod-subnet--service-subnet 選項。

若要查看叢集使用的 Pod 及服務子網路,請在 ibmcloud oc cluster get 的輸出中尋找 Pod SubnetService Subnet 欄位。

Pods

預設範圍

在 VPC 中建立的第一個叢集裡,預設 Pod 子網路為 172.17.0.0/18。 在您於該 VPC 中建立的第二個叢集裡,預設 Pod 子網路為 172.17.64.0/18。 在每一個後續叢集裡,Pod 子網路範圍是下一個可用的非重疊 /18 子網路。

大小需求

指定自訂子網路時,請考慮計劃建立的群集大小,以及未來可能新增的工作站節點數量。 子網路的 CIDR 必須至少為 /23,這可為群集中最多四個工作站提供足夠的 pod IP。 若為較大的叢集,請使用 /22,以具有八個工作者節點的足夠 Pod IP 位址,/21 以具有 16 個工作者節點的足夠 Pod IP 位址,依此類推。

對於 VPC 叢集,您可以在 --pod-subnet 選項中包括子網路大小來指定子網路大小。 例如: --pod-subnet 0.0.0.0/X,其中 X 是必要的 Pod 子網路大小。 然後會自動選取 Pod 子網路。 自動配置 Pod 子網路時,配置將從 172.17.0.0 開始,最大子網路限制為 13,最小子網路大小限制為 23

工作節點有全局限制。 一個區域內所有群集的工作節點數量不能超過 500 個。

範圍需求

Pod 和服務子網路無法彼此重疊,且 Pod 子網路無法重疊工作者節點的 VPC 子網路。 您選擇的子網路必須在下列其中一個範圍內。

  • 172.17.0.0 - 172.17.255.255

  • 172.21.0.0 - 172.31.255.255

  • 192.168.0.0 - 192.168.254.255

  • 198.18.0.0 - 198.19.255.255

服務

預設範圍
所有部署到群集的服務預設都會被指派一個 172.21.0.0/16 範圍內的私有 IP 位址。
大小需求
當您指定自訂子網路時,必須以 CIDR 格式指定子網路,大小至少為 /24,這容許叢集裡最多 255 個服務,或更大。
範圍需求
Pod 和服務子網路不能彼此重疊。 您選擇的子網路必須在下列其中一個範圍內。
  • 172.17.0.0 - 172.17.255.255

  • 172.21.0.0 - 172.31.255.255

  • 192.168.0.0 - 192.168.254.255

  • 198.18.0.0 - 198.19.255.255

公用閘道

公用閘道可啟用子網路及連接至子網路的所有工作者節點,以建立網際網路的出埠連線。 如果叢集已同時啟用公用及專用雲端服務端點,則必須在部署工作者節點的 VPC 子網路上啟用 公用閘道,以存取預設 Red Hat OpenShift 元件,而不連接至 VPC 的專用網路。

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

當您建立 VPC 叢集並在叢集建立期間僅啟用專用雲端服務端點時,依預設會使用專用雲端服務端點來存取 Red Hat OpenShift 元件,例如 Red Hat OpenShift Web 主控台或 OperatorHub。 您必須連接至專用 VPC 網路 (例如透過 VPN 連線),才能在叢集上存取這些元件或執行 kubectl 指令。 此外,如果 IBM Cloud 服務不支援私有雲服務端點,您的工作人員節點則必須連接至附有公共閘道的子網路。 這些工作者節點上的 Pod 可以透過子網路的公用閘道在公用網路上安全地與服務進行通訊。 請注意,子網路上無需公用閘道來容許從網際網路到 LoadBalancer 服務或 ALB 的入埠網路資料流量。

在一個 VPC 中,每個區域只能建立一個公用閘道,但該公用閘道可連接到區域內的多個子網路。 如需公用閘道的相關資訊,請參閱 VPC 網路說明文件

虛擬專用端點 (VPE)

工作者節點可以透過叢集的 虛擬專用端點(VPE) 與 Kubernetes 主節點進行通訊。

VPE 是連結至端點閘道的虛擬 IP 位址。 在 VPC 中為每個叢集建立一個 VPE 閘道資源。 在叢集具有工作者節點的每一個區域中,會自動將一個子網路中的一個 IP 位址用於 VPE 閘道,且此區域中的工作者節點會使用此 IP 位址與 Kubernetes 主節點進行通訊。 若要檢視叢集的 VPE 閘道詳細資料,請開啟 VPC 儀表板的虛擬專用端點閘道,並尋找格式為 iks-<cluster_ID> 的 VPE 閘道。

請注意,工作者節點會自動使用依預設在 VPC 中建立的 VPE。 不過,如果您已啟用 叢集的公用雲端服務端點,則會在公用端點上建立一半的工作者節點至主節點資料流量,而在 VPE 上建立一半的工作者節點至主節點資料流量,以防止公用或專用網路可能中斷。

請勿刪除子網路上用於 VPE 的任何 IP 位址。

網路分段

網路區隔說明將網路分成多個子網路的方式。 在一個子網路中執行的應用程式無法看到或存取另一個子網路中的應用程式。 如需 VPC 子網路的網路分段選項的相關資訊,請參閱 此叢集安全主題

子網路提供了一個頻道,用於連線功能叢集內的工作者節點。 此外,任何連接至相同 VPC 中任何專用子網路的系統都可以與工作者節點進行通訊。 例如,一個 VPC 中的所有子網路都可以透過專用第 3 層遞送與內建 VPC 路由器進行通訊。

如果您有多個叢集必須相互通訊,則可以在相同 VPC 中建立這些叢集。 但是,如果您的叢集不需要通訊,您可以透過在獨立的 VPC 中建立叢集來達成更好的網路分割。 此外,還可以為 VPC 子網路建立存取控制清單 (ACL),以調解專用網路上的資料流量。 ACL 由入埠和出埠規則組成,這些規則定義了每個 VPC 子網路允許的 Ingress 和 Egress。

VPC 網路限制

為叢集建立 VPC 子網路時,請記住下列特性和限制。

  • 每個 VPC 子網路的預設 CIDR 大小為 /24,最多可支援 253 個工作者節點。 如果計劃在一個叢集裡每個區域部署 250 個以上的工作者節點,請考慮建立更大的子網路。
  • 建立 VPC 子網路後,就無法調整其大小或變更其 IP 範圍。
  • 同一 VPC 中的多個群集可以共用 VPC 子網路。 不過,無法在多個叢集之間共用自訂 Pod 及服務子網路。
  • VPC 子網路被綁定在單一校園多區域中,無法跨越多區域或區域。
  • 建立子網路後,就無法將其移到不同的區域、地區或 VPC。
  • 如果您有工作站節點連接到區域中的現有子網路,則無法變更群集中該區域的子網路。
  • 禁止使用 172.16.0.0/16172.18.0.0/16172.19.0.0/16172.20.0.0/16 範圍。
  • 在一個 VPC 中,每個區域只能建立一個公用閘道,但該公用閘道可連接到區域內的多個子網路。
  • 標準存取預設位址字首 與 Red Hat OpenShift on IBM Cloud 控制平面的子網路衝突。 您必須 建立不含自動預設位址字首的 VPC,然後為叢集建立您自己的位址字首及那些範圍內的子網路

建立 VPC 子網路並連接公用閘道

為叢集建立 VPC 子網路,並選擇性地將公用閘道連接至子網路。

在主控台中建立 VPC 子網路

使用 IBM Cloud 主控台來建立叢集的 VPC 子網路,並選擇性地將公用閘道連接至子網路。

  1. VPC 子網路儀表板 中,按一下 建立
  2. 輸入子網路的名稱,然後選取已建立的 VPC 的名稱。
  3. 選取要在其中建立子網路的位置和區域。
  4. 指定要建立的 IP 位址數。
    • VPC 子網路為群集中的工作節點和負載平衡服務提供 IP 位址,因此請 建立一個有足夠 IP 位址的 VPC 子網路,例如 256。 之後您就無法變更 VPC 子網路的 IP 數量。
    • 如果您輸入特定的 IP 範圍,請不要使用下列保留範圍: 172.16.0.0/16172.18.0.0/16172.19.0.0/16172.20.0.0/16
  5. 若要執行預設的 Red Hat OpenShift 元件 (例如 Web 主控台或 OperatorHub, ),並允許您的群集存取公共端點 (例如其他應用程式的公共 URL 或僅支援公共雲端服務端點的 IBM Cloud 服務),您必須在子網路附加公共閘道。
  6. 按一下建立子網路
  7. 使用子網路來 建立叢集建立新的工作者節點儲存區將子網路新增至現有工作者節點儲存區。> 在建立叢集期間或在區域中新增工作者節點時,請勿刪除您連接至叢集的子網路。 如果您刪除叢集使用的 VPC 子網路,則使用子網路中 IP 位址的任何負載平衡器可能會遇到問題,而且您可能無法建立新的負載平衡器。

在 CLI 中建立 VPC 子網路

使用 IBM Cloud CLI 來建立叢集的 VPC 子網路,並選擇性地將公用閘道連接至子網路。

開始之前

  1. 在您的命令列中,登入 IBM Cloud 帳戶,並針對 IBM Cloud 區域和您要建立 VPC 群集的資源群組。 如需支援的地區,請參閱在其他地區中建立 VPC。 叢集資源群組可能與 VPC 資源群組不同。 系統提示時,請輸入您的 IBM Cloud 認證。 如果您有聯合 ID,請使用 --sso 選項登入。
    ibmcloud login -r <region> [-g <resource_group>] [--sso]
    
  2. 在要建立叢集的地區中建立 VPC

若要建立 VPC 子網路,請遵循下列步驟。

  1. 取得您要建立子網路的 VPC ID。

    ibmcloud oc vpcs
    
  2. 建立子網路。 如需此指令中選項的相關資訊,請參閱 CLI 參考資料

    ibmcloud is subnet-create <subnet_name> <vpc_id> --zone <vpc_zone> --ipv4-address-count <number_of_ip_address>
    
    • VPC 子網路為群集中的工作節點和負載平衡服務提供 IP 位址,因此請 建立一個有足夠 IP 位址的 VPC 子網路,例如 256。 之後您就無法變更 VPC 子網路的 IP 數量。
    • 請勿使用下列保留範圍: 172.16.0.0/16172.18.0.0/16172.19.0.0/16172.20.0.0/16
  3. 檢查您要在其中建立叢集的區域中是否有公用閘道。 在一個 VPC 中,每個區域只能建立一個公用閘道,但該公用閘道可連接到區域內的多個子網路。

    ibmcloud is public-gateways
    

    輸出範例

    ID                                     Name                                       VPC                          Zone         Floating IP                  Created                     Status      Resource group
    26426426-6065-4716-a90b-ac7ed7917c63   test-pgw                                   testvpc(36c8f522-.)          us-south-1   169.xx.xxx.xxx(26466378-.)   2019-09-20T16:27:32-05:00   available   -
    2ba2ba2b-fffa-4b0c-bdca-7970f09f9b8a   pgw-73b62bc0-b53a-11e9-9838-f3f4efa02374   team3(ff537d43-.)            us-south-2   169.xx.xxx.xxx(2ba9a280-.)   2019-08-02T10:30:29-05:00   available   -
    
    • 如果您在每一個區域中已有公用閘道,請記下公用閘道的 ID
    • 如果每個區域中都沒有公用閘道,請建立公用閘道。 考慮以 <cluster>-<zone>-gateway 的格式命名公共閘道。 記下輸出中的公用閘道 ID
    ibmcloud is public-gateway-create <gateway_name> <VPC_ID> <zone>
    

    輸出範例

    ID               26466378-6065-4716-a90b-ac7ed7917c63
    Name             mycluster-us-south-1-gateway
    Floating IP      169.xx.xx.xxx(26466378-6065-4716-a90b-ac7ed7917c63)
    Status           pending
    Created          2019-09-20T16:27:32-05:00
    Zone             us-south-1
    VPC              myvpc(36c8f522-4f0d-400c-8226-299f0b8198cf)
    Resource group   -
    
  4. 使用公用閘道及子網路的 ID,將公用閘道連接至子網路。

    ibmcloud is subnet-update <subnet_ID> --public-gateway-id <gateway_ID>
    

    輸出範例

    ID                  91e946b4-7094-46d0-9223-5c2dea2e5023
    Name                mysubnet1
    IPv4 CIDR           10.240.xx.xx/24
    Address available   250
    Address total       256
    ACL                 allow-all-network-acl-36c8f522-4f0d-400c-8226-299f0b8198cf(585bc142-5392-45d4-afdd-d9b59ef2d906)
    Gateway             mycluster-us-south-1-gateway(26466378-6065-4716-a90b-ac7ed7917c63)
    Created             2019-08-21T09:43:11-05:00
    Status              available
    Zone                us-south-1
    VPC                 myvpc(36c8f522-4f0d-400c-8226-299f0b8198cf)
    
  5. 使用子網路來 建立叢集建立新的工作者節點儲存區將子網路新增至現有工作者節點儲存區。 在建立叢集期間或在區域中新增工作者節點時,請勿刪除您連接至叢集的子網路。 如果您刪除叢集使用的 VPC 子網路,則使用子網路中 IP 位址的任何負載平衡器可能會遇到問題,而且您可能無法建立新的負載平衡器。

建立 VPC 子網路以進行標準存取

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

在主控台中建立 VPC 子網路以進行標準存取

  1. 建立不含預設位址字首的標準存取 VPC。
    1. Virtual Private Clouds 儀表板 中,按一下 建立
    2. 輸入名稱、資源群組及任何標籤的詳細資料。
    3. 選取 啟用標準資源的存取權的勾選框,並清除 為每一個區域建立預設字首的勾選框。
    4. 選取 VPC 的區域。
    5. 按一下建立虛擬專用雲端
  2. 在每一個區域中建立位址字首。
    1. 按一下 VPC 的名稱以檢視其詳細資料。
    2. 按一下 位址字首 標籤,然後按一下 建立
    3. 對於計劃在其中建立子網路的每個區域,建立一個以上的位址字首。 位址字首必須在下列其中一個範圍內: 10.0.0.0 - 10.255.255.255172.17.0.0 - 172.17.255.255172.21.0.0 - 172.31.255.255192.168.0.0 - 192.168.254.255
  3. 建立使用您的位址字首的子網路。
    1. VPC 子網路儀表板 中,按一下 建立
    2. 輸入子網路的名稱,並選取標準存取 VPC 的名稱。
    3. 選取要在其中建立子網路的位置和區域。
    4. 選取您為此區域建立的位址字首。
    5. 指定要建立的 IP 位址數。 VPC 子網路為群集中的工作節點和負載平衡服務提供 IP 位址,因此請 建立一個有足夠 IP 位址的 VPC 子網路,例如 256。 之後您就無法變更 VPC 子網路的 IP 數量。
    6. 若要執行預設的 Red Hat OpenShift 元件 (例如 Web 主控台或 OperatorHub, ),並允許您的群集存取公共端點 (例如其他應用程式的公共 URL 或僅支援公共雲端服務端點的 IBM Cloud 服務),您必須在子網路附加公共閘道。
    7. 按一下建立子網路
  4. 使用子網路來 建立叢集。 在建立叢集期間或在區域中新增工作者節點時,請勿刪除您連接至叢集的子網路。 如果您刪除叢集使用的 VPC 子網路,則使用子網路中 IP 位址的任何負載平衡器可能會遇到問題,而且您可能無法建立新的負載平衡器。

從 CLI 建立 VPC 子網路以進行標準存取

  1. 在您的命令列中,登入 IBM Cloud 帳戶,並針對 IBM Cloud 區域和您要建立 VPC 群集的資源群組。 如需支援的地區,請參閱在其他地區中建立 VPC。 叢集資源群組可能與 VPC 資源群組不同。 系統提示時,請輸入您的 IBM Cloud 認證。 如果您有聯合 ID,請使用 --sso 選項登入。
    ibmcloud login -r <region> [-g <resource_group>] [--sso]
    
  2. 建立不含預設位址字首的標準存取 VPC。 在輸出中,複製 VPC ID。
    ibmcloud is vpc-create <name> --classic-access --address-prefix-management manual
    
  3. 對於計劃在其中建立子網路的每個區域,建立一個以上的位址字首。 位址字首必須在下列其中一個範圍內: 10.0.0.0 - 10.255.255.255172.17.0.0 - 172.17.255.255172.21.0.0 - 172.31.255.255192.168.0.0 - 192.168.254.255
    ibmcloud is vpc-address-prefix-create <prefix_name> <vpc_id> <zone> <prefix_range>
    
  4. 在每一個區域中建立使用您位址字首的子網路。 如需此指令中選項的相關資訊,請參閱 CLI 參考資料。 VPC 子網路為群集中的工作節點和負載平衡服務提供 IP 位址,因此請 建立一個有足夠 IP 位址的 VPC 子網路,例如 256。 之後您就無法變更 VPC 子網路的 IP 數量。
    ibmcloud is subnet-create <subnet_name> <vpc_id> --zone <vpc_zone> --ipv4-address-count <number_of_ip_address> --ipv4-cidr-block <prefix_range>
    
  5. 若要執行預設的 Red Hat OpenShift 元件 (例如 Web 主控台或 OperatorHub, ),並允許您的群集存取公共端點 (例如其他應用程式的公共 URL 或僅支援公共雲端服務端點的 IBM Cloud 服務),您必須在子網路附加公共閘道。
    1. 在每一個區域中建立公用閘道。 考慮以 <cluster>-<zone>-gateway 的格式命名公共閘道。 記下輸出中的公用閘道 ID
      ibmcloud is public-gateway-create <gateway_name> <VPC_ID> <zone>
      
      輸出範例
      ID               26466378-6065-4716-a90b-ac7ed7917c63
      Name             mycluster-us-south-1-gateway
      Floating IP      169.xx.xx.xxx(26466378-6065-4716-a90b-ac7ed7917c63)
      Status           pending
      Created          2019-09-20T16:27:32-05:00
      Zone             us-south-1
      VPC              myvpc(36c8f522-4f0d-400c-8226-299f0b8198cf)
      Resource group   -
      
    2. 使用公用閘道器和子網路的 ID,將公用閘道器附加到子網路。
      ibmcloud is subnet-update <subnet_ID> --public-gateway-id <gateway_ID>
      
      輸出範例
      ID                  91e946b4-7094-46d0-9223-5c2dea2e5023
      Name                mysubnet1
      IPv4 CIDR           10.240.xx.xx/24
      Address available   250
      Address total       256
      ACL                 allow-all-network-acl-36c8f522-4f0d-400c-8226-299f0b8198cf(585bc142-5392-45d4-afdd-d9b59ef2d906)
      Gateway             mycluster-us-south-1-gateway(26466378-6065-4716-a90b-ac7ed7917c63)
      Created             2019-08-21T09:43:11-05:00
      Status              available
      Zone                us-south-1
      VPC                 myvpc(36c8f522-4f0d-400c-8226-299f0b8198cf)
      
  6. 使用子網路來 建立叢集。 在建立叢集期間或在區域中新增工作者節點時,請勿刪除您連接至叢集的子網路。 如果您刪除叢集使用的 VPC 子網路,則使用子網路中 IP 位址的任何負載平衡器可能會遇到問題,而且您可能無法建立新的負載平衡器。