IBM Cloud Docs
了解经典集群联网

了解经典集群联网

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

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

创建经典集群时,集群的工作程序节点会自动连接到专用 VLAN,并且可以选择连接到公用 VLAN。 VLAN 会将一组工作程序节点和 pod 视为连接到同一物理连线那样进行配置,并为工作程序之间的连接提供通道。

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

工作程序节点的 VLAN 连接

所有工作节点都必须连接到专用 VLAN,以便每个工作节点都能向其他工作节点发送信息或从其他工作节点接收信息。 专用 VLAN 提供专用子网,用于将专用 IP 地址分配给工作程序节点和专用应用程序服务。 可以创建具有同时连接到公用 VLAN 的工作程序节点的集群。 公用 VLAN 提供公用子网,用于将公共 IP 地址分配给工作程序节点和公共应用程序服务。 但是,如果您需要从公共网络接口确保应用程序的安全,有几种方法可以确保集群的安全,如创建 Calico 网络策略 或将外部网络工作负载隔离到 边缘工作者节点

首次在区域中创建群集时,该区域中的公共 VLAN 和专用 VLAN 会自动在 IBM Cloud 基础架构账户中为您配置。 如果指定工作程序节点必须仅连接到专用 VLAN,那么将自动供应该专区中的专用 VLAN。 对于在该专区中创建的每个后续集群,可以指定要使用的 VLAN 对。 可以复用为您创建的相同公用和专用 VLAN,因为多个集群可以共享 VLAN。

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

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

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

在某些情况下,必须允许群集中的组件跨多个专用 VLAN 进行通信。 例如,如果要创建多区域群集,如果一个群集有多个 VLAN,或者同一 VLAN 上有多个子网,那么同一 VLAN 或不同 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 spanning 而不是 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 地址。

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

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

  • 仅连接到专用 VLAN 的工作程序节点:在网关设备上设置 IPSec VPN 端点,例如 Virtual Router Appliance (Vyatta)。 然后,在集群中配置 strongSwan IPSec VPN 服务,以在网关上使用 VPN 端点。 如果不想使用 strongSwan,,可以 直接使用 VRA 设置 VPN 连接

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

  • 您可能与 IBM提供的缺省 172.30.0.0/16 范围 (针对 pod) 和 172.21.0.0/16 范围 (针对服务) 存在子网冲突。 在 --pod-subnet 选项中为 pod 指定自定义子网 CIDR,在 --service-subnet 选项中为服务指定自定义子网 CIDR,这样就可以避免 从 CLI 创建群集 时发生子网冲突。
  • 如果 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(是否提供公共 URL 取决于服务)来连接到此公用网络接口。 应用程序以公共方式公开时,具有公共服务 IP 地址或为应用程序设置的 URL 的任何人都可以向应用程序发送请求。 然后,您可以使用 Calico pre-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 账户之外的私有网络中的服务,您可以在群集中配置和部署 strongSwan IPSec VPN 服务,或利用 IBM Cloud IBM Cloud Direct Link 服务连接到这些网络。

与面向互联网工作负载的工作节点上运行的应用程序进行外部通信

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

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

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

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

使用网关设备进行安全公共访问的集群的体系结构映像。
使用网关设备进行安全公共访问的群集的网络设置

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

如果只在专用 VLAN 上设置了工作节点,并且不想或无法为账户启用 VRF,则必须配置网关设备,以便通过公共网络提供工作节点与主控之间的网络连接。 例如,您可以选择设置 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 地址来允许流至用于公开应用程序的网络服务的入站流量,以控制流至这些服务的公共和专用流量。

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

场景:将内部部署数据中心扩展到经典集群

在此场景中,您希望在经典集群中运行工作负载。 但是,您希望这些工作负载仅可供内部部署数据中心内的服务、数据库或其他资源(例如,IBM Cloud Private)访问。 集群工作负载可能需要访问支持通过专用网络进行通信的其他若干 IBM Cloud 服务,例如 IBM Cloud Object Storage。

连接到专用网络上的本地数据中心的集群的体系结构映像。
在专用网络上连接内部数据中心的群集的网络设置

专用集群的工作程序到工作程序通信

要实现此设置,可通过将工作程序节点仅连接到专用 VLAN 来创建集群。 若要仅通过私有云服务端点在私有网络上提供群集主节点和工作节点之间的连接,您的账户必须启用 VRF 并启用使用服务端点。 由于启用了 VRF 时专用网络上的任何资源都可看到集群,因此可以通过应用 Calico 专用网络策略,将集群与专用网络上的其他系统相隔离。

请注意,在工作程序节点、pod 和服务的缺省范围与内部部署网络中的子网之间可能存在子网冲突。 通过加入 --no-subnet 选项,可以在不使用 IBM- 提供的子网的情况下创建集群。 创建集群后,可以向集群添加定制子网。 此外,还可以在创建群集时使用 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 都无法路由该 IP 地址范围。 您可以使用私有网络负载平衡器(NLB)为群集用户公开主控器的私有云服务端点。 私有 NLB 将主站的私有云服务端点公开为内部 10.X.X.X IP 地址范围,用户可通过 VPN 或 IBM Cloud Direct Link 连接访问。 如果只启用私有云服务端点,可以使用 Kubernetes 控制面板或临时启用公共云服务端点来创建私有 NLB。

与专用集群的其他服务或网络的工作程序通信

您的工作节点可以通过 IBM Cloud 基础架构专用网络,自动、安全地与支持私有云服务端点(如 IBM Cloud® Container Registry )的其他 IBM Cloud 服务进行通信。 例如,IBM Cloudant 所有标准计划实例的专用硬件环境都支持私有云服务端点。 如果 IBM Cloud 服务不支持私有云服务端点,则群集无法访问该服务。

与运行在私有集群工作节点上的应用程序进行外部通信

要提供对集群中应用程序的专用访问权,可以创建专用网络负载均衡器 (NLB) 或 Ingress 应用程序负载均衡器 (ALB)。 这些 Kubernetes 网络服务仅将应用程序公开到专用网络,以便连接到该 NLB IP 所在子网的任何内部部署系统都可以访问应用程序。

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

后续步骤

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