节点池概述

在云边协同场景下,不同分组的节点间往往存在网络不互通、资源不共享、资源异构和应用独立等明显的隔离属性,针对这种场景,容器服务 Edge 版提供了节点池(NodePool)功能,将节点按照特定属性抽象成节点池概念,以节点池的维度对不同分组的节点进行统一管理和运维。本文简单介绍节点池的概念,分类,以及工作原理。

节点池分类

在云边协同场景下,容器服务 Edge 版的节点池分成两种类型:云端节点池和边缘节点池。

image
  • 云端节点池:云端节点池管理与集群位于同VPC中的云端ECS资源,其节点池与ACK集群Pro版节点池保持一致。

    • 云端节点池(默认):ACK Edge集群创建时会自动创建一个云端节点池(default-nodepool),用于部署Edge系统控制面的组件。

      重要

      default-nodepool云端节点池不能删除且至少保持有一个节点,否则Edge集群能力将无法正常使用。

    • 云端节点池(弹性):开启节点自动伸缩的云端节点池,可以充分利用云上弹性能力。

  • 边缘节点池:管理线下分散地域的各种类型的节点集合,例如不同地域的ECS节点、IDC节点、其他厂商云节点,以及分布在工厂、门店、车辆和船舶中的服务器节点。

云端节点池

云端节点池的属性和操作与ACK集群Pro版一致。请参见云端节点池概述

边缘节点池

  • 边缘节点池作为边缘节点分组的抽象,创建边缘节点池时您需要预先明确该节点池内节点的一些基本属性,如云边网络连接、节点间网络互通、Pod网络模式等。另外,我们也建议您根据其他属性,如CPU/GPU、地域、AMD64/Arm64等,将边缘节点分散到多个边缘节点池中管理。

  • 在创建完成后,您可以通过编辑边缘节点池批量管理节点池内节点的标签和污点。当所有的边缘节点都移除集群后,您可以删除该边缘节点池。

  • 当多个节点池都需要部署同一套应用时,您可以使用应用集(YurtAppSet)将应用便捷地部署到多个节点池中。YurtAppSet提供了灵活的响应机制以感知节点池标签的变化,统一管理多个节点池的工作负载配置,如实例数量和软件版本等。

  • 原生Kubernetes Service的后端可以分布在集群中任意节点。因此,当两个边缘节点池间网络不互通,跨越不同边缘节点池的Service流量,大概率会出现访问不可达、或者访问效率低下的问题。Service流量拓扑支持将Service流量限制在同一个边缘节点池(或边缘节点)上,从而避免边缘场景下跨网域访问导致的Service网络不通的问题。