IBM Cloud Docs
了解经典集群联网

了解经典集群联网

创建经典集群时,必须选择联网设置,以便特定集群组件可以相互通信,并且能与集群外部的网络或服务进行通信。

完成本页后,试试小测验

工作程序与工作程序的通信:经典 VLAN 和子网

当您创建经典集群时,集群的工作节点会自动连接到专用虚拟局域网(VLAN)和公共虚拟局域网(VLAN)。 VLAN 会将一组工作程序节点和 pod 视为连接到同一物理连线那样进行配置,并为工作程序之间的连接提供通道。

无法创建仅连接到专用 VLAN 的经典 Red Hat OpenShift on IBM Cloud 集群。 工作程序节点必须同时连接到公用和专用 VLAN。

工作程序节点的 VLAN 连接

所有工作节点必须连接到专用虚拟局域网,以便每个工作节点能够与其他工作节点发送和接收信息。 专用 VLAN 提供专用子网,用于将专用 IP 地址分配给工作程序节点和专用应用程序服务。 工作程序节点还必须连接到公用 VLAN。 公用 VLAN 提供公用子网,用于将公共 IP 地址分配给工作程序节点和公共应用程序服务。 然而,如果您需要保护您的应用程序免受公共网络接口的影响,有多种方法可以保护您的集群,例如创建 Calico 网络策略 或将外部网络工作负载隔离到 边缘工作节点

当您首次在某个区域创建集群时,您的 IBM Cloud 基础设施账户会自动为您在该区域创建一个公共VLAN和一个专用VLAN。 对于在该专区中创建的每个后续集群,可以指定要使用的 VLAN 对。 可以复用为您创建的相同公用和专用 VLAN,因为多个集群可以共享 VLAN。

有关 VLAN、子网和 IP 地址的更多信息,请参阅 Red Hat OpenShift on IBM Cloud 中的联网概述

是否需要使用定制子网来创建集群? 请查看使用现有子网创建集群

子网和 VLAN 之间的工作程序节点通信

在许多情况下,仪表板中的组件必须能够跨多个专用虚拟局域网进行通信。 例如,如果您想创建一个多区域集群,如果您的集群有多个虚拟局域网,或者如果您在同一虚拟局域网中有多个子网,那么同一虚拟局域网中不同子网上的工作节点或不同虚拟局域网中的工作节点将无法自动通信。 您必须为 IBM Cloud 基础架构帐户启用虚拟路由和转发 (VRF) 或 VLAN 生成。

  • 虚拟路由和转发 (VRF):VRF 支持基础架构帐户中的所有专用 VLAN 和子网相互通信。 此外,VRF 需要允许您的员工和师傅通过私有云服务端点进行通信,并与支持私有云服务端点的其他 IBM Cloud 实例进行通信。 要检查是否已启用 VRF,请使用 ibmcloud account show 命令。 要启用 VRF,请运行 ibmcloud account update --service-endpoint-enable true。 此命令输出将提示您打开支持案例,以便为帐户启用 VRF 和服务端点。 VRF 为您取消了 VLAN 跨域选项,因为所有 VLAN 都可以通信。 启用 VRF 后,任何连接到同一 IBM Cloud 帐户中的任何专用 VLAN 的系统都可以与集群工作程序节点进行通信。 您可以通过应用 Calico 专用网络策略,将集群与专用网络上的其他系统相隔离。
  • VLAN 生成:如果选择启用 VLAN 生成而不是 VRF,则无法启用私有云服务端点。 当您无法或不想启用VRF时,启用VLAN跨越,例如当您不需要在专用网络上访问主机,或者您使用网关设备通过公共VLAN访问主机时。 请注意,例如,如果您已经有一个网关设备,然后添加一个集群,为集群订购的新便携式子网不会在网关设备上配置,但VLAN跨越功能可在子网之间实现路由。

工作程序与主节点的通信以及用户与主节点的通信:服务端点

必须设置通信信道,以便工作程序节点可以与 Kubernetes 主节点建立连接。 您必须在集群中启用公共云服务端点,并且可以选择启用私有云服务端点。 不能只有私有云服务端点,创建集群后,不能更改云服务端点。

为了确保公共和私有云服务端点的通信,Red Hat OpenShift on IBM Cloud 会在创建集群时自动在 Kubernetes 主节点和工作节点之间建立Konnectivity连接。 工人通过TLS证书与主人安全地对话,主人通过VPN连接与工人对话。

仅公共服务端点

缺省情况下,工作程序节点可以通过公共云服务端点通过公用 VLAN 自动连接到 Kubernetes 主节点。

  • 工人节点和主节点之间通过公共云服务端点在公共网络上安全地建立通信。
  • 只有通过公共云服务终端,授权集群用户才能访问该主机。 例如,集群用户可以安全地通过因特网访问 Kubernetes 主节点,以运行 oc 命令。
  • 您可以选择使用 基于上下文的限制 来确保对群集公共和专用服务端点的访问安全。

公共和私有云服务终端

若要使集群用户能够公开或私下访问您的主机,您可以启用公共和私有云服务终端。 IBM Cloud 帐户中需要 VRF,因此必须为帐户启用服务端点。 要启用 VRF 和服务端点,请运行 ibmcloud account update --service-endpoint-enable true

  • 工人节点与主节点之间的通信通过专用云服务终端的专用网络和公共云服务终端的公共网络建立。 通过将工作程序与主节点之间的流量一半通过公共端点路由,一半通过专用端点路由,可保护主节点到工作程序的通信不受公共或专用网络潜在中断的影响。
  • 授权集群用户可通过公共云服务终端访问该主机。 如果授权集群用户位于您的 IBM Cloud 专用网络中,或者通过VPN连接或 IBM Cloud Direct Link 连接到专用网络,则可以通过私有云服务终端私下访问主机。 请注意,您必须 通过私有负载均衡器公开主终端,以便用户可以通过VPN或 IBM Cloud Direct Link 连接访问主终端。
  • 您可以选择使用 基于上下文的限制 来确保对群集公共和专用服务端点的访问安全。

工作程序与其他 IBM Cloud 服务或内部部署网络的通信

允许工作程序节点安全地与其他 IBM Cloud 服务以及与内部部署网络进行通信。

通过专用或公用网络与其他 IBM Cloud 服务进行通信

您的工作程序节点可以通过 IBM Cloud 基础架构专用网络自动且安全地与 支持私有云服务端点的其他 IBM Cloud 服务( 例如 IBM Cloud® Container Registry 进行通信。 如果 IBM Cloud 服务不支持私有云服务终端,您的工作节点必须连接到公共VLAN,以便它们能够通过公共网络与这些服务进行安全通信。

如果您使用 Calico 策略或网关设备来控制员工节点的公共或专用网络,则必须允许访问支持公共云服务终端的服务的公共 IP 地址,以及支持私有云服务终端的可选服务专用 IP 地址。

strongSwan IPSec VPN 通过公共网络与本地数据中心资源进行通信的连接

直接在集群中设置 strongSwan IPSec VPN 服务。 strongSwan IPSec VPN 服务通过因特网提供基于业界标准因特网协议安全性 (IPSec) 协议套件的安全端到端通信信道。 要在集群与内部部署网络之间设置安全连接,请在集群的 pod 中直接配置和部署 strongSwan IPSec VPN 服务

如果计划使用网关设备,请在网关设备 (例如 Virtual Router Appliance (Vyatta)) 上设置 IPSec VPN 端点。 然后,在集群中配置 strongSwan IPSec VPN 服务,以在网关上使用 VPN 端点。 如果您不想使用 strongSwan,,可以 直接通过VRA设置VPN连接

如果计划将集群连接到本地网络,请查看以下有用信息:

  • 您可能与 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 控制平面功能保留的。

与在工作程序节点上运行的应用程序的外部通信

允许从集群外部向在工作程序节点上运行的应用程序发出公共或专用流量请求。

到集群应用程序的专用流量

当您在集群中部署应用程序时,您可能希望仅允许与集群位于同一专用网络中的用户和服务访问该应用程序。 专用负载均衡非常适用于使应用程序可供集群外部的请求使用,而无需向一般公众公开应用程序。 还可以使用专用负载均衡来测试访问,请求路由以及对应用程序进行其他配置后,再使用公用网络服务向公众公开应用程序。 要允许从集群外部向应用程序发出专用流量请求,可以创建专用 Kubernetes 联网服务,例如专用 NodePort、NLB 和 Ingress ALB。 然后可以使用 Calico DNAT 前策略来阻止流至专用联网服务的公共 NodePort 的流量。 有关更多信息,请参阅规划专用外部负载均衡

到集群应用程序的公共流量

为了使您的应用程序可以从公共互联网外部访问,您可以创建公共 NodePorts, 网络负载均衡器(NLB)和入口应用程序负载均衡器(ALB)。 公用联网服务通过向应用程序提供公共 IP 地址和公共 URL(是否提供公共 URL 取决于服务)来连接到此公用网络接口。 应用程序以公共方式公开时,具有公共服务 IP 地址或为应用程序设置的 URL 的任何人都可以向应用程序发送请求。 然后,您可以使用 Calico 预DNAT策略来控制公共网络服务流量,例如只允许来自特定源IP地址或CIDR的流量,并阻止所有其他流量。 有关更多信息,请参阅规划公共外部负载均衡

为了进一步提高安全性,您可以将网络工作负载隔离到边缘工作节点。
边缘工作程序节点通过减少允许外部访问的连接到公用 VLAN 的工作程序节点,并隔离联网工作负载,可以提高集群的安全性。 将工作程序节点标注为边缘节点时,NLB 和 ALB pod 会仅部署到这些指定的工作程序节点。 路由器 pod 仍部署到非边缘工作程序节点。 此外,为了防止其他工作负载在边缘节点上运行,您可以 对边缘节点进行标记。 然后,可以将公用和专用 NLB 和 ALB 部署到边缘节点。 例如,如果工作程序节点仅连接到专用 VLAN,但您需要允许对集群中的应用程序进行公共访问,那么可以创建边缘工作程序池,其中边缘节点连接到公用和专用 VLAN。 可以将公共 NLB 和 ALB 部署到这些边缘节点,以确保只有这些工作程序可处理公共连接。

场景:在经典集群中运行面向互联网的程序工作负载

在此场景中,您希望在经典集群中运行的工作负载可供来自因特网的请求访问,以便最终用户可以访问应用程序。 您希望使用的选项是在集群中隔离公共访问,并控制允许向集群发出哪些公共请求。 此外,工作程序对要连接到集群的任何 IBM Cloud 服务都具有自动访问权。

运行面向因特网的工作负载的集群的体系结构映像。
Network setup for a cluster that runs internet-facing workloads

具有面向因特网的工作负载的经典集群中的工作程序到工作程序通信

要实现此设置,请通过将工作程序节点连接到公用和专用 VLAN 来创建集群。

如果您创建了包含公共和专用虚拟局域网的集群,则无法从该集群中删除所有公共虚拟局域网。 从集群除去所有公用 VLAN 将导致多个集群组件停止工作。 请改为创建仅连接到专用 VLAN 的新工作程序池。

具有面向因特网的工作负载的经典集群中的工作程序到主节点和用户到主节点通信

可以选择允许通过公用和专用网络或仅通过公用网络进行工作程序与主节点的通信以及用户与主节点的通信。

  • 公共和私有云服务终端:您的帐户必须启用VRF并启用服务终端。 工人节点与主节点之间的通信通过专用云服务终端的专用网络和公共云服务终端的公共网络建立。 授权集群用户可通过公共云服务终端访问该主机。
  • 公共服务终端:如果您不想或无法为您的账户启用VRF,您的工作节点和授权集群用户可以通过公共云服务终端自动连接到 Kubernetes 主服务器。

与具有面向因特网的工作负载的其他服务或网络的工作程序通信

您的工作节点可以自动、安全地与您的 IBM Cloud 基础设施专用网络上支持私有云服务端点的其他 IBM Cloud 服务通信。 如果 IBM Cloud 服务不支持私有云服务终端,员工可以通过公共网络与这些服务进行安全通信。 可以将 Calico 网络策略用于公用网络或专用网络隔离,以锁定工作程序节点的公共或专用接口。 您可能需要允许访问要在这些 Calico 隔离策略中使用的服务的公共和专用 IP 地址。

如果您的工作节点需要访问您 IBM Cloud 账户之外的专用网络服务,您可以在集群中配置和部署 strongSwan IPSec VPN 服务,或者利用 IBM Cloud IBM Cloud Direct Link 服务连接到这些网络。

与运行在工人节点上的应用程序进行外部通信,这些节点承担着面向互联网的工作负载

要将集群中的应用程序公开到因特网,可以创建公共网络负载均衡器 (NLB) 或 Ingress 应用程序负载均衡器 (ALB) 服务。 通过创建标注为边缘节点的工作程序节点的池,可以提高集群的安全性。 公用网络服务的 pod 会部署到边缘节点,以便将外部流量工作负载隔离到集群中的仅少数几个工作程序。 您可以通过创建 Calico 预DNAT策略(例如允许列表和阻止列表策略)进一步控制公开您应用程序的网络服务的公共流量。

准备好开始将集群用于此方案了吗? 计划好 高可用性 设置后,请参阅 创建群集

方案: 允许与网关设备进行有限的公共连接

在此场景中,您希望在经典集群中运行的工作负载可供内部部署数据中心内的服务、数据库或其他资源访问。 但是,您可能需要提供对集群的受限公共访问权,并且希望确保在集群中控制和隔离任何公共访问。 例如,您可能需要您的员工访问不支持私有云服务终端的 IBM Cloud 服务,并且必须通过公共网络访问。 或者您可能需要为集群中运行的应用提供有限的公共访问权限。 要实现此集群设置,可以将网关设备 (例如 Virtual Router Appliance (Vyatta)) 配置为公共网关和防火墙。

使用网关设备进行安全公共访问的集群的体系结构映像。
Network setup for a cluster that uses a gateway appliance for secure public access

与网关设备的工作程序到工作程序通信,工作程序到主节点通信和用户到主节点通信

配置网关设备以通过公用网络在工作程序节点与主节点之间提供网络连接。 例如,您可以选择设置 Virtual Router Appliance

可以使用定制网络策略来设置网关设备,以便为集群提供专用网络安全性,检测网络侵入并进行补救。 在公用网络上设置防火墙时,必须为每个区域打开必需的端口和专用 IP 地址,以便主节点和工作程序节点可以通信。 如果还为专用网络配置了此防火墙,那么还必须打开必需的端口和专用 IP 地址,以允许工作程序节点之间的通信,并且使集群通过专用网络访问基础架构资源。 此外,还必须为帐户启用 VLAN 生成,以便子网可以在同一 VLAN 上以及不同 VLAN 之间进行路由。

与网关设备的其他服务或网络的工作程序通信

要将工作程序节点和应用程序安全地连接到内部部署网络或 IBM Cloud 外部的服务,请在网关设备上设置 IPSec VPN 端点,并在集群中设置 strongSwan IPSec VPN 服务以使用网关 VPN 端点。 如果您不想使用 strongSwan,,可以直接通过VRA设置VPN连接。

工作程序节点可以通过网关设备与其他 IBM Cloud 服务和 IBM Cloud 外部的公共服务安全地进行通信。 可以将防火墙配置为仅允许访问要使用的服务的公共和专用 IP 地址。

与使用网关设备在工作程序节点上运行的应用程序的外部通信

要提供对集群中应用程序的专用访问权,可以创建专用网络负载均衡器 (NLB) 或 Ingress 应用程序负载均衡器 (ALB),以仅将应用程序公开到专用网络。 如果需要提供对集群中应用程序的受限公共访问权,那么可以创建公共 NLB 或 ALB 来公开应用程序。 由于所有流量都流经网关设备防火墙,因此可以通过在防火墙中打开服务的端口和 IP 地址来允许流至用于公开应用程序的网络服务的入站流量,以控制流至这些服务的公共和专用流量。

准备好开始将集群用于此方案了吗? 计划好 高可用性 设置后,请参阅 创建群集

后续步骤

通过测验测试您的知识

要继续规划流程,请了解如何通过决定必须配置的 加密级别 来保护群集中的敏感信息。 如果你已经准备好开始设置网络,请继续 使用Calico网络策略来控制 Classic 集群上的流量