创建和管理灵骏节点池

本文介绍如何在ACK托管集群Pro添加灵骏节点池的相关操作。

灵骏节点池简介

  • ACK托管集群Pro中的“灵骏节点池”与智能计算灵骏服务(灵骏裸金属集群)的节点分组为一对一的对应关系,即一个灵骏集群的节点分组可以对应一个ACK托管集群Pro的灵骏节点池,意味着一个灵骏节点只能属于一个灵骏节点池。根据灵骏节点池的划分,可以实现对ACK托管集群Pro中的灵骏节点进行不同的管理。

  • ACK托管集群Pro通过灵骏节点池的形式管理灵骏节点,支持节点池生命周期管理以及节点批量添加和移除,提供与ECS节点池基本一致的管理和运维能力,包括节点配置、节点运维、调度应用至指定节点池,以及监控诊断和自动化运维等能力。

  • 如果需要为灵骏节点提供云原生AI的增强能力,请安装云原生AI套件。灵骏节点池支持多GPU卡的拓扑感知调度,结合GPU容器虚拟化方案提供共享GPU调度和隔离;针对AI、HPC等任务特点,支持Gang、Capacity、Binpack等任务调度策略;还支持数据集编排和访问加速。

说明

ACK托管集群Pro的灵骏节点池功能为白名单方式开通,如果您需要开通使用,请通过客户服务经理(PDSA)联系容器服务团队。

计费说明

ACK托管集群Pro中使用灵骏节点池时,费用由三部分组成:集群管理费 + 灵骏节点管理费用 + 云产品资源费

说明

20250805起,灵骏节点管理能力结束免费邀测,并正式开启商业化收费,更多信息,请参见【收费公告】灵骏节点管理收费公告。邀测期间,灵骏节点池的功能可以免费使用,ACK托管集群Pro的其他费用(集群管理费和云产品资源费)仍然正常收取,请参见 计费概述

前提条件

ACK托管集群Pro创建灵骏资源池时,需满足以下条件:

  1. 已创建集群类型为Lite的基础灵骏集群服务,并在灵骏节点分组中完成节点扩容。具体操作,请参见创建集群

  2. 灵骏节点池仅支持OS kernel版本为5.10及以上的灵骏节点。

  3. 已创建ACK托管集群Pro,且满足以下条件:

    • ACK托管集群Pro与灵骏裸金属集群在相同地域及相同VPC下。

    • ACK托管集群Pro1.31及以上版本,仅支持 IPv4 单栈集群,不支持 IPv6 双栈集群。如需升级,请参见手动升级集群

    • 网络插件为Terway。

  4. 使用灵骏节点池时,同时保有ECS节点,用于部署部分ACK管控组件(建议使用3个及以上ECS节点以保证高可用)。

    重要

    为了避免系统组件的Pod被调度到灵骏节点上占用资源,灵骏节点池中的节点默认会有以下标签和污点。如果您的Pod所在节点为灵骏节点,可添加对此Taint的容忍,也可以在升级组件后删除Taint,但请勿删除默认Label。

    Label:alibabacloud.com/lingjun-worker:true
    Taint:Key:node-role.alibabacloud.com/lingjunEffect:NoSchedule

操作入口

您可以在目标集群的节点池页面进行节点池的相关操作,包括创建、编辑、删除、查看等。

  1. 登录容器服务管理控制台,在左侧导航栏选择集群列表

  2. 集群列表页面,单击目标集群名称,然后在左侧导航栏,选择节点管理 > 节点池

创建灵骏节点池

您可以在控制台完成节点池的配置,包括基本配置、网络配置、存储配置等。部分配置项(尤其是节点池可用性相关和网络相关的配置)在创建后不支持调整,请参见下文重点关注。创建节点池的过程中不会影响其他已有节点池内节点和业务的运行。

节点池页面,单击... > 创建灵骏节点池,然后在创建灵骏节点池对话框,完成创建灵骏节点池的配置项。关联已有的灵骏集群和灵骏分组。

节点池创建完成以后,支持在编辑节点池页面修改配置项。如下表所示,是否支持修改代表节点池创建后对应的配置项是否支持修改。

说明

对使用灵骏连接的灵骏节点,需要单独申请ACK VPD CNI组件白名单,在创建灵骏节点池前,在组件管理-安装ACK VPD CNI组件。新建灵骏节点池时,对于使用灵骏连接的节点分组,ACK将自动在集群安全组中添加灵骏分组的网段,并允许入方向访问,ACK将自动为节点池添加label:alibabacloud.com/lingjun-network-type: vpd,请勿删除。

展开查看详细配置说明表。

  • 基础配置

    配置项

    说明

    是否支持修改

    节点池名称

    自定义的节点池名称。

    地域

    默认选择当前集群所在地域,且不可更改。

    容器运行时

    灵骏节点池仅支持容器运行时为containerdACK托管集群Pro

  • 灵骏资源

    配置项

    说明

    是否支持修改

    灵骏集群

    可以选择与ACK集群位于相同VPCLite类型的灵骏集群。

    灵骏分组

    可以选择与灵骏节点池位于相同VPC且未关联灵骏节点池的灵骏分组。

  • 高级配置

    展开高级选项(选填),配置节点标签、污点等信息。

    配置项

    说明

    是否支持修改

    污点 (Taints)

    为节点添加键值对污点。有效污点键包含前缀(可选)和名称。如果有前缀,用正斜线(/)分隔。

    展开查看详细说明

    • :名称长度为1~63个字符,必须以字母、数字或字符[a-z0-9A-Z]开头和结尾,中间可包含字母、数字、短划线(-)、下划线(_)、英文半角句号(.)。

      如果指定前缀,必须为DNS子域,即一系列由英文半角句号(.)分隔的DNS标签,不超过253个字符,并以正斜线(/)结尾。

    • :污点值可以为空,不超过63个字符,必须以字母、数字或字符[a-z0-9A-Z]开头和结尾,可包含字母、数字、短划线(-)、下划线(_)、英文半角句号(.)。

    • Effect

      • NoSchedule:不接受任何新的、不容忍此污点的Pod被调度到该节点,但已在运行的Pod不受影响。

      • NoExecute:不仅不接受任何新的、不容忍此污点的Pod被调度到该节点,还会驱逐节点上任何已在运行的、不容忍此污点的Pod。

      • PreferNoSchedule:ACK会尽量避免将Pod调度到存在其不能容忍污点的节点上,但不会强制执行。

    节点标签(Labels)

    重要

    创建灵骏节点池时,ACK将自动为节点池添加标签以启用独占ENI模式,创建后请勿删除。

    不允许删除灵骏节点池默认添加的Label:

    • service.alibabacloud.com/exclude-node

    • alibabacloud.com/lingjun-worker

    • alibabacloud.com/lingjun-hpnzone

    • alibabacloud.com/lingjun-zoneid

    • alibabacloud.com/lingjun-network-type: vpd

    • alibabacloud.com/lingjun-machine-type

    • k8s.aliyun.com/exclusive-mode-eni-type: eniOnly

    为节点添加键值对标签。有效Key包含前缀(可选)和名称。如有前缀,前缀和名称之间用正斜线(/)分隔。

    展开查看详细说明

    • Key:名称长度为1~63个字符,必须以字母数字字符[a-z0-9A-Z]开头和结尾,中间可包含字母、数字、短划线(-)、下划线(_)、英文半角句号(.)。

      如果指定前缀,必须为DNS子域,即一系列由英文半角句号(.)分隔的DNS标签,不超过253个字符,以正斜线(/)结尾。

      以下前缀由Kubernetes核心组件保留,不支持指定

      • kubernetes.io/

      • k8s.io/

      • kubernetes.io/k8s.io/结尾的前缀。例如test.kubernetes.io/

        以下除外:

        • kubelet.kubernetes.io/

        • node.kubernetes.io

        • kubelet.kubernetes.io/结尾的前缀。

        • node.kubernetes.io结尾的前缀。

    • Value:可以为空,不超过63个字符,必须以字母数字字符[a-z0-9A-Z]开头和结尾,可包含字母、数字、短划线(-)、下划线(_)和英文半角句号(.)。

添加已有灵骏节点

如果您需要将灵骏分组中的灵骏节点添加到ACK集群中作为Worker节点,或将移除的Worker节点重新加入灵骏节点池,您可以在容器服务管理控制台,将灵骏节点池关联的分组中的灵骏节点,批量添加到灵骏节点池中。添加后,可以在节点池维度进行统一管理。

自动添加灵骏节点不会替换该节点原有的操作系统,不会替换原系统盘和数据盘,不影响其中存储的数据。待添加的灵骏节点实例必须已在本节点池关联的灵骏分组中,且未添加到节点池中。

  • 登录容器服务管理控制台,在左侧导航栏选择集群列表

  • 集群列表页面,单击目标集群名称,然后在左侧导航栏,选择节点管理 > 节点池

  • 节点池页面,单击⋮ > 添加已有节点

    说明

    灵骏节点添加成功后, ACK托管集群Pro会自动在灵骏节点实例上添加对应的标签,您可以在智能计算灵骏控制台查看这些标签,如下所示。

    • ack.aliyun.com:纳管灵骏节点的ACK托管集群ProID。

    • ack.alibabacloud.com/nodepool-id:纳管灵骏节点的灵骏节点池ID。

移除灵骏节点

  • 添加到节点池的灵骏节点实例不会随ACK集群或灵骏节点池的删除而释放,也不会从灵骏分组中自动缩容,请您关注灵骏节点的计费状态,避免产生额外费用。

  • 移除灵骏节点仅会将节点从灵骏节点池移出,不会将节点从灵骏分组中移出。如果您需要进行更多灵骏节点与分组的管理操作,请前往智能计算灵骏控制台操作。

使用RDMA功能

为启用灵骏节点的RDMA通信,请进入目标集群页面控制台,单击运维管理 > 组件管理手动安装RDMA-device-plugin组件。

Pod可用的网络模式,取决于灵骏节点池关联的灵骏裸金属集群的计算网络IP版本:

计算网络IP版本

支持的RDMA网络模式

配置说明

IPv4

仅支持hostNetwork 模式。

Pod仅支持hostNetwork网络模式进行RDMA通信。

IPv6

  • hostNetwork模式。

  • hostNetwork 模式。

  • 默认使用hostNetwork模式。

  • 如需启用hostNetwork模式使用RDMA,请在RDMA-device-plugin组件配置中,开启允许Pod通过hostnetwork模式使用RDMA。

详细操作,请参见Pod在灵骏节点使用RDMA网络

使用Terway独占ENI模式

使用Terway时,灵骏节点池仅支持独占ENI网络模式,且要求Terway版本为v1.14.4及以上。如果您的Terway组件低于这个版本,请参照下方的升级组件terway-eniip进行升级。

创建灵骏节点池时,ACK将自动为节点池添加标签k8s.aliyun.com/exclusive-mode-eni-type: eniOnly,以启用独占ENI模式,创建后请勿删除。更多操作,请参见为节点池配置独占ENI网络模式

如果您的灵骏节点池未添加该标签,则表明该节点池使用了共享ENI网络模式。
重要

在灵骏节点通过共享ENI模式使用VPC网络通信时,存在偶发Pod网络不通的风险,可通过重建Pod临时恢复业务运行。如需彻底解决该问题,建议您在业务空闲期升级Terway组件至最新版本,通过重新创建独占ENI模式的灵骏节点池来添加灵骏节点。

升级组件

新建ACK托管集群Pro时将默认使用最新组件版本。在存量的ACK托管集群Pro中创建灵骏节点池时,如果已使用以下组件,请升级组件至指定版本。您可进入目标集群页面控制台,单击运维管理 > 组件管理进行升级。

组件名称

最低版本要求

Kube Scheduler

v1.31

terway-eniip

v1.14.4

CoreDNS

v1.11.3.5-5321daf49-aliyun

Nginx Ingress Controller

v1.11.4-aliyun.2

ack-pod-identity-webhook

v0.2.1

security-inspector

v0.16.1.0-gea4d02f-aliyun

alicloud-monitor-controller

v1.8.4

ack-arms-prometheus

v1.1.31

logtail-ds

v2.1.6

csi-provisioner

v1.32.2

csi-plugin

v1.32.2

aliyun-acr-acceleration-suite

v0.2.10

ack-ai-installer(应用 > 云原生AI套件安装)

v1.12.2

更多操作

  • 使用共享GPU调度。

    如需在ACK托管集群Pro中的灵骏节点上使用共享GPU调度,实现GPU的共享和隔离能力,请先安装云原生AI套件的ack-ai-installer,具体使用方法可参考使用共享GPU调度

  • 开启Binpack调度策略。

    在灵骏节点池运行模型训练任务,您可以在Pod调度时启用Binpack策略,即开启Pod调度时启用优先集中放置策略,以减少训练过程中的跨机通信延迟,关于如何在Kube Scheduler组件中开启binpack,请参见自定义调度器参数

  • 在灵骏节点池使用网络拓扑感知调度。

    如果需要在灵骏节点池使用网络拓扑感知调度,请安装Kube Scheduler,并升级至v1.31及以上,详细操作可参考使用网络拓扑感知调度

FAQ

维修后节点仍是未就绪(Not Ready)状态

  • 背景:灵骏节点由于硬件问题进行了下线维修,维修完成后,为什么在ACK集群中节点状态仍然是未就绪(Not Ready)?

  • 原因:灵骏节点下线维修期间将进行换机操作,不保留本地盘数据,可能会导致kubelet、containerd等容器运行时信息被清除,节点状态异常。

  • 解决方案:维修完成后,您需手动将其从节点池移除,并通过“添加已有节点”重新加入灵骏节点池。