瞭解標準叢集網路

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

工作者節點對工作者節點的通訊:標準 VLAN 和子網路

建立標準叢集時,叢集的工作者節點會自動連接至專用 VLAN,並且可以選擇連接至公用 VLAN。 VLAN 會將一組工作者節點和 Pod 視為連接到相同實體佈線那樣進行配置,並為工作者節點之間的連線功能提供通道。

您無法建立僅連接到私有 VLAN 的經典 Red Hat OpenShift on IBM Cloud 叢集。 工作者節點必須同時連接至公用及專用 VLAN。

工作節點的 VLAN 連線

所有工作節點都必須連接到一個私有 VLAN,以便每個工作節點都能與其他工作節點互相傳送及接收資訊。 專用 VLAN 提供專用子網路,用於將專用 IP 位址指派給工作者節點和專用應用程式服務。 可以建立具有同時連接至公用 VLAN 的工作者節點的叢集。 公用 VLAN 提供公用子網路,用於將公用 IP 位址指派給工作者節點和公用應用程式服務。 不過,如果您需要從公共網路介面保護您的應用程式,有幾種方法可以確保叢集的安全性,例如建立 「Calico」網路政策, 或是將外部網路工作負載隔離 至邊緣工作節點

當您首次在某個區域中建立叢集時,系統會自動在您的 IBM Cloud 基礎架構帳戶中,為該區域配置一個公共 VLAN 和一個私有 VLAN。 如果指定工作者節點必須僅連接至專用 VLAN,則會將自動佈建該區域中的專用 VLAN。 配對於在該區域中建立的每個後續叢集,可以指定要使用的 VLAN 配對。 您可以重複使用為您所建立的相同公用及專用 VLAN,因為多個叢集可以共用 VLAN。

如需 VLAN、子網路和 IP 位址的相關資訊,請參閱 IBM Cloud Kubernetes Service 中的網路概觀

是否需要使用自訂子網路來建立叢集? 請查看使用現有子網路建立叢集

跨子網路及 VLAN 的工作者節點通訊

在某些情況下,必須允許叢集中的元件跨多個私有 VLAN 進行通訊。 舉例來說,若您想建立多區域叢集,或是同一個叢集包含多個 VLAN,又或是同一個 VLAN 上有多個子網,那麼位於同一 VLAN 內不同子網,或位於不同 VLAN 中的工作節點,將無法自動相互通訊。 您必須針對 IBM Cloud 基礎架構帳戶啟用虛擬遞送及轉遞 (VRF) 或 VLAN Spanning。

  • 虛擬遞送及轉遞 (VRF):VRF 可讓基礎架構帳戶中的所有專用 VLAN 和子網路相互通訊。 此外,必須啟用 VRF,才能讓您的工作節點與主節點透過私有雲服務端點進行通訊,並與其他支援私有雲服務端點的 IBM Cloud 實例進行通訊。 若要檢查是否已啟用 VRF,請使用 ibmcloud account show 指令。 若要啟用 VRF,請執行 ibmcloud account update --service-endpoint-enable true。 此指令輸出將提示您開立支援案例,以便為帳戶啟用 VRF 和服務端點。 由於所有 VLAN 皆可相互通訊,因此 VRF 會為您的帳戶停用 VLAN 跨接選項。 已啟用 VRF 後,任何連接至相同 IBM Cloud 帳戶中的任何專用 VLAN 的系統都可以與叢集工作者節點進行通訊。 您可以套用 Calico 專用網路原則,將叢集與專用網路上的其他系統隔離。
  • VLAN 跨域:若您選擇啟用 VLAN 跨域而非 VRF,則無法啟用私有雲服務端點。 當您無法或不希望啟用 VRF 時,請啟用 VLAN 跨接功能,例如當您不需要在私有網路中存取主伺服器,或是您使用閘道裝置透過公共 VLAN 存取主伺服器時。 請注意,舉例來說,如果您已有現有的閘道設備,然後新增一個叢集,則為該叢集所配置的新可攜式子網並未在閘道設備上進行設定,但透過 VLAN 跨接功能,可實現子網之間的路由。

工作者節點與主節點的通訊以及使用者與主節點的通訊:服務端點

必須設定通訊通道,以便工作者節點可以與 Kubernetes 主節點建立連線。 您可以透過僅啟用公有雲服務端點、同時啟用公有雲與私有雲服務端點,或僅啟用私有雲服務端點,來讓工作節點與 Kubernetes 主節點進行通訊。

為了確保透過公有雲和私有雲服務端點進行的通訊安全,當叢集建立時,IBM Cloud Kubernetes Service 會自動在 Kubernetes 主節點與工作節點之間建立 Konnectivity 連線。 工作節點透過 TLS 憑證與主節點進行安全通訊,而主節點則透過 VPN 連線與工作節點進行通訊。

僅限公用服務端點

如果您不希望或無法為您的帳戶啟用 VRF,您的工作節點可透過公有雲服務端點,經由公有 VLAN 自動連線至 Kubernetes 主節點。

  • 工作節點與主節點之間的通訊,是透過公有雲服務端點,在公有網路之上以安全的方式建立的。
  • 主節點僅限經授權的叢集使用者透過公有雲服務端點公開存取。 例如,叢集使用者可以透過網際網路安全地存取 Kubernetes 主節點,以執行 kubectl 指令。
  • 您可以選擇使用 基於上下文的限制 來保護對叢集的公共和專用服務端點的存取。

公有雲與私有雲服務端點

若要讓叢集使用者能公開或私下存取您的主節點,您可以啟用公有雲和私有雲服務端點。 在 IBM Cloud 帳戶中需要 VRF,且您必須啟用帳戶以使用服務端點。 若要啟用 VRF 及服務端點,請執行 ibmcloud account update --service-endpoint-enable true

  • 若工作節點同時連接到公有 VLAN 和私有 VLAN,則工作節點與主節點之間的通訊,將同時透過私有雲服務端點在私有網路中建立,以及透過公有雲服務端點在公有網路中建立。 透過公用端點遞送一半的工作者節點到主節點資料流量,並透過專用端點遞送另一半,可防範主節點到工作者節點通訊發生公用或專用網路的中斷。 若工作節點僅連接到私有 VLAN,則工作節點與主節點之間的通訊,將僅透過私有雲服務端點,在私有網路內建立。
  • 經授權的叢集使用者可透過公有雲服務端點公開存取主節點。 若經授權的叢集使用者位於您的 IBM Cloud 私有網路中,或透過 VPN 連線或 IBM Cloud Direct Link 連接到該私有網路,則可透過私有雲服務端點私下存取主節點。 請注意,您必須 透過私有負載平衡器公開主節點的端點,以便使用者能透過 VPN 或 IBM Cloud Direct Link 連線存取主節點。
  • 您可以選擇使用 基於上下文的限制 來保護對叢集的公共和專用服務端點的存取。

僅限專用服務端點

若要讓主節點僅可私下存取,您可以啟用專用雲端服務端點。 在 IBM Cloud 帳戶中需要 VRF,且您必須啟用帳戶以使用服務端點。 若要啟用 VRF 及服務端點,請執行 ibmcloud account update --service-endpoint-enable true。 請注意,使用私有雲服務端點時,不會產生任何計費或計量帶寬費用。

  • 工作節點與主節點之間的通訊,是透過私有雲服務端點,在私有網路中建立的。
  • 如果授權叢集使用者位於 IBM Cloud 專用網路中,或者透過 VPN 連線或 DirectLink 連接至專用網路,則可以私下存取主節點。 請注意,您必須透過專用負載平衡器公開主節點端點,以便使用者可以透過 VPN 或 DirectLink 連線存取主節點。
  • 您可以選擇使用 基於上下文的限制 來保護對叢集的公共和專用服務端點的存取。

工作者節點與其他 IBM Cloud 服務或內部部署網路的通訊

容許工作者節點安全地與其他 IBM Cloud 服務以及與內部部署網路進行通訊。

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

您的工作節點可透過 IBM Cloud 基礎架構的私有網路,自動且安全地與其他 支援私有雲服務端點的 IBM Cloud 服務 (例如 IBM Cloud® Container Registry )進行通訊。 如果某項 IBM Cloud 服務不支援私有雲服務端點,您的工作節點必須連接到公共 VLAN,才能透過公共網路與該服務進行安全的通訊。

若您使用 Calico 政策或閘道器裝置來控制工作節點的公有或私有網路,則必須允許存取支援公有雲服務端點的服務之公有 IP 位址,並可選擇性地允許存取支援私有雲服務端點的服務之私有 IP 位址。

透過 VPN 連線,在公共網路與本地資料中心的資源之間進行通訊

  • 連接至公用和專用 VLAN 的工作節點:在群集中設定 VPN 服務,透過網際網路在群集與內部網路之間提供安全的端對端通訊通道。 有多種開放原始碼選項,請參閱 Classic VPN 連線

  • 僅連接到私有 VLAN 的工作節點:設定一個 閘道設備上的 VPN 端點,例如 Virtual Router Appliance (Vyatta)。

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

  • 您可能有與 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 子網路範圍,因為它們保留用於 IBM Cloud Kubernetes Service 控制平面功能。

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

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

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

當您在叢集中部署應用程式時,您可能希望僅允許與叢集位於同一私有網路中的使用者和服務存取該應用程式。 專用負載平衡適用於讓叢集外的要求使用您的應用程式,而不將應用程式公開給一般大眾使用。 您也可以先使用專用負載平衡來測試應用程式的存取、要求遞送及其他配置,稍後再使用公用網路服務將應用程式公開給大眾使用。 若要容許從叢集外部向應用程式發出專用資料流量要求,可以建立專用 Kubernetes 網路服務,例如專用 NodePort、NLB 和 Ingress ALB。 然後可以使用 Calico DNAT 前原則來封鎖流至專用網路服務的公用 NodePort 的資料流量。 如需相關資訊,請參閱規劃專用外部負載平衡

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

若要讓您的應用程式能透過公共網際網路從外部存取,您可以建立公開的 NodePorts, 網路負載平衡器 (NLB) 以及 Ingress 應用程式負載平衡器 (ALB)。 公用網路服務使用公用 IP 位址和公用 URL(視服務而定)來提供應用程式,以連接至此公用網路介面。 公開應用程式時,具有您為應用程式設定的公用服務 IP 位址或 URL 的任何人都可以將要求傳送至應用程式。 接著,您可以使用 Calico 的預先 DNAT 政策來控制流向公共網路服務的流量,例如僅允許來自特定來源 IP 位址或 CIDR 的流量,並封鎖所有其他流量。 如需相關資訊,請參閱規劃公用外部負載平衡

為了加強安全性,您可以將網路工作負載隔離至邊緣工作節點。
邊緣工作者節點可以藉由容許可由外部存取連接至公用 VLAN 的較少工作者節點,以及隔離網路工作負載,來增進叢集的安全。 將工作者節點標註為邊緣節點時,NLB 和 ALB Pod 會僅部署到這些指定的工作者節點。 此外,為了防止其他工作負載在邊緣節點上執行,您可以 對邊緣節點設定污點。 然後,您可以將公用及專用 NLB 及 ALB 部署至邊緣節點。 例如,如果工作者節點僅連接至專用 VLAN,但您需要允許對叢集裡的應用程式進行公用存取,則可以建立邊緣工作者節點儲存區,其中邊緣節點連接至公用和專用 VLAN。 可以將公用 NLB 和 ALB 部署到這些邊緣節點,以確保只有這些工作者節點可處理公用連線。

情境:在傳統叢集中執行對外連網的應用程式工作負載

在此情境中,您希望在標準叢集裡執行的工作負載可供來自網際網路的要求存取,以便一般使用者可以存取應用程式。 您希望使用的選項是在叢集裡隔離公用存取,並控制允許向叢集發出哪些公用要求。 此外,工作者節點對要連接到叢集的任何 IBM Cloud 服務都具有自動存取權。

執行對外網路工作負載之叢集的架構圖。
執行對外網路工作負載之叢集的網路設定

在標準叢集裡使用面對網際網路的工作負載進行工作者節點對工作者節點的通訊

若要達成此設定,請將工作者節點連接至公用和專用 VLAN 來建立叢集。

若您在建立叢集時同時設定了公共 VLAN 和私有 VLAN,日後將無法從該叢集中移除所有公共 VLAN。 從叢集移除所有公用 VLAN 會導致數個叢集元件停止運作。 請改為建立僅連接至專用 VLAN 的新工作者節點儲存區。

標準叢集裡具有面向網際網路工作負載的工作者節點至主節點及使用者至主節點通訊

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

  • 公有雲與私有雲服務端點:您的帳戶必須已啟用 VRF,並已啟用使用服務端點的功能。 工作節點與主節點之間的通訊,既可透過私有雲服務端點在私有網路中建立,也可透過公有雲服務端點在公有網路中建立。 經授權的叢集使用者可透過公有雲服務端點公開存取主節點。
  • 公共服務端點:若您不願或無法為您的帳戶啟用 VRF,您的工作節點和經授權的叢集使用者可透過公共雲服務端點,經由公共網路自動連線至 Kubernetes 主節點。

工作者節點與具有面對網際網路之工作負載的其他服務或網路的通訊

您的工作節點可透過 IBM Cloud 基礎架構的私有網路,自動且安全地與其他支援私有雲服務端點的 IBM Cloud 服務進行通訊。 如果某個 IBM Cloud 服務不支援私有雲服務端點,工作執行程序仍可透過公共網路與該服務進行安全通訊。 您可以鎖定工作者節點的公用或專用介面,方法是使用 Calico 網路原則進行公用網路或專用網路隔離。 您可能需要容許存取您要用在這些 Calico 隔離原則之服務的公用及專用 IP 位址。

如果您的工作節點需要存取 IBM Cloud 帳戶以外的私人網路服務,請參閱 設定私人網路連線

與在工作節點上執行、且處理面向網際網路工作負載的應用程式進行外部通訊

若要將叢集裡的應用程式公開到網際網路,可以建立公用網路負載平衡器 (NLB) 或 Ingress 應用程式負載平衡器 (ALB) 服務。 透過建立標註為邊緣節點的工作者節點的儲存區,可以提高叢集的安全。 公用網路服務的 Pod 會部署到邊緣節點,以便將外部資料流量工作負載隔離到叢集裡的僅少數幾個工作者節點。 您可以透過建立 Calico 的預先DNAT政策(例如白名單和黑名單政策),進一步控制流向公開您應用程式的網路服務的公共流量。

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

實務範例: 容許與閘道應用裝置的有限公用連線功能

在此情境中,您希望在標準叢集裡執行的工作負載可供內部部署資料中心內的服務、資料庫或其他資源存取。 但是,您可能需要提供對叢集的有限公用存取權,並且希望確保在叢集裡控制和隔離任何公用存取。 舉例來說,您可能需要讓員工存取某個 IBM Cloud 服務,而該服務不支援私有雲服務端點,必須透過公共網路進行存取。 或者,您可能需要為在您的叢集中運行的應用程式提供有限的公開存取權限。 要實現此叢集設定,您可以將閘道器設備(例如 Virtual Router Appliance (Vyatta))設定為公共閘道器及防火牆。

採用閘道器裝置以實現安全公共存取的叢集架構圖。
採用閘道器裝置以實現安全公共存取的叢集網路設定

與閘道應用裝置的工作者節點至工作者節點通訊、工作者節點至主節點通訊及使用者至主節點通訊

如果您僅在私有 VLAN 上設定工作節點,且不希望或無法為您的帳戶啟用 VRF,則必須配置一臺閘道設備,以便透過公共網路在工作節點與主節點之間建立網路連線。 例如,您可以選擇設定 Virtual Router Appliance

您可以使用自訂網路原則來設定閘道應用裝置,以提供叢集的專用網路安全,以及偵測及重新修補網路侵入。 在公用網路上設定防火牆時,必須為每個地區開啟必要的埠和專用 IP 位址,以便主節點和工作者節點可以通訊。 如果還為專用網路配置了此防火牆,您還必須開啟必要的埠和專用 IP 位址,以容許工作者節點之間的通訊,並且使叢集透過專用網路存取基礎架構資源。 此外,還必須為帳戶啟用 VLAN Spanning,以便子網路可以在相同 VLAN 上以及不同 VLAN 之間進行遞送。

使用閘道應用裝置與其他服務或網路的工作者通訊

若要安全地將您的工作人員節點及應用程式連接至 IBM Cloud 以外的內部網路或服務,請參閱 設定專用網路連線

工作者節點可以透過閘道應用裝置與其他 IBM Cloud 服務和 IBM Cloud 外部的公用服務安全地進行通訊。 可以將防火牆配置為僅容許存取要使用的服務的公用和專用 IP 位址。

與使用閘道應用裝置在工作者節點上執行之應用程式的外部通訊

若要提供對您叢集內應用程式的專用存取,您可以建立專用網路負載平衡器 (NLB) 或 Ingress 應用程式負載平衡器 (ALB),將應用程式只公開給專用網路。 如果您需要提供對您叢集內應用程式的有限公用存取,可以建立公用 NLB 或 ALB 來公開您的應用程式。 因為所有資料流量都流經閘道應用裝置防火牆,所以可以透過在防火牆中開啟服務的埠和 IP 位址來允許這些已公開應用程式的網路服務的入埠資料流量,以控制這些網路服務的公用和專用資料流量。

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

情境:將內部部署資料中心延伸到標準叢集

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

透過私有網路連線至本地資料中心的叢集架構圖。
透過私有網路連線至本地資料中心的叢集網路設定

專用叢集的工作者節點對工作者節點的通訊

若要實現此設定,可藉由將工作者節點僅連接至專用 VLAN 來建立叢集。 若要透過私有雲服務端點,在私有網路中建立叢集主節點與工作節點之間的連線,您的帳戶必須已啟用 VRF 功能,並已啟用使用服務端點的功能。 由於已啟用 VRF 時專用網路上的任何資源都可看到叢集,因此可以藉由套用 Calico 專用網路原則,將叢集與專用網路上的其他系統相隔離。

請注意,您可能在工作者節點、Pod 和服務等預設範圍,與內部部署網路中之子網路之間,有子網路的衝突。 若要不使用 IBM 提供的子網來建立叢集,請加入 --no-subnet 選項。 建立叢集後,可以新增自訂子網路至叢集。 此外,您可以在建立叢集時,透過在 ibmcloud ks cluster create 指令中使用 --pod-subnet --service-subnet 選項,為 Pod 和服務指定自訂子網 CIDR。

專用叢集的工作者節點至主節點及使用者至主節點通訊

若經授權的叢集使用者位於您的 IBM Cloud 私有網路中,或已透過 傳統 VPN 連線 等方式連線至該私有網路,則可透過私有雲服務端點存取 Kubernetes 主伺服器,或 IBM Cloud Direct Link。 然而,透過私有雲服務端點與 Kubernetes 主伺服器進行通訊時,必須經過 166.X.X.X 的IP位址範圍,而此範圍無法透過傳統VPN連線或 IBM Cloud Direct Link 進行路由。 您可以透過私有網路負載平衡器 (NLB),將主節點的私有雲服務端點對您的叢集使用者公開。 私有 NLB 將主伺服器的私有雲服務端點以內部 10.X.X.X IP 位址範圍的形式對外公開,使用者可透過 VPN 或 IBM Cloud Direct Link 連線進行存取。 若您僅啟用私有雲服務端點,則可使用 Kubernetes 儀表板,或暫時啟用公有雲服務端點來建立私有 NLB。

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

您的工作節點可透過 IBM Cloud 基礎架構的私有網路,自動且安全地與其他支援私有雲服務端點的 IBM Cloud 服務(例如 IBM Cloud® Container Registry )進行通訊。 舉例來說,IBM Cloudant 所有標準方案實例的專用硬體環境皆支援私有雲服務端點。 如果某個 IBM Cloud 服務不支援私有雲服務端點,您的叢集將無法存取該服務。

與私有叢集上工作節點所執行之應用程式的外部通訊

若要提供對叢集裡應用程式的專用存取權,可以建立專用網路負載平衡器 (NLB) 或 Ingress 應用程式負載平衡器 (ALB)。 這些 Kubernetes 網路服務僅將應用程式公開到專用網路,以便連線到該 NLB IP 所在子網路的任何內部部署系統都可以存取應用程式。

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

下一步

若要繼續規劃過程,請了解如何透過制定有關層級的決策來保護叢集中的敏感資訊。加密 你必須配置。 如果您已準備好開始設定網絡,請繼續 使用Calico用於控制 Classic 叢集上流量的網路策略