在云边协同场景下,不同分组的节点间往往存在网络不互通、资源不共享、资源异构和应用独立等明显的隔离属性,针对这种场景,容器服务 Edge 版提供了节点池(NodePool)功能,将节点按照特定属性抽象成节点池概念,以节点池的维度对不同分组的节点进行统一管理和运维。本文简单介绍节点池的概念,分类,以及工作原理。
节点池分类
在云边协同场景下,容器服务 Edge 版的节点池分成两种类型:云端节点池和边缘节点池。
云端节点池
云端节点池的属性和操作与ACK集群Pro版一致。请参见云端节点池概述。
边缘节点池
边缘节点池作为边缘节点分组的抽象,创建边缘节点池时您需要预先明确该节点池内节点的一些基本属性,如云边网络连接、节点间网络互通、Pod网络模式等。另外,我们也建议您根据其他属性,如CPU/GPU、地域、AMD64/Arm64等,将边缘节点分散到多个边缘节点池中管理。
在创建完成后,您可以通过编辑边缘节点池批量管理节点池内节点的标签和污点。当所有的边缘节点都移除集群后,您可以删除该边缘节点池。
当多个节点池都需要部署同一套应用时,您可以使用应用集(YurtAppSet)将应用便捷地部署到多个节点池中。YurtAppSet提供了灵活的响应机制以感知节点池标签的变化,统一管理多个节点池的工作负载配置,如实例数量和软件版本等。
原生Kubernetes Service的后端可以分布在集群中任意节点。因此,当两个边缘节点池间网络不互通,跨越不同边缘节点池的Service流量,大概率会出现访问不可达、或者访问效率低下的问题。Service流量拓扑支持将Service流量限制在同一个边缘节点池(或边缘节点)上,从而避免边缘场景下跨网域访问导致的Service网络不通的问题。