创建和管理节点池

ACK提供了节点池功能对节点进行分组管理。节点池是具有相同属性(例如实例规格、操作系统、标签和污点等)的一组节点的逻辑集合。一个集群中可以创建多个不同配置和类型的节点池。您可以创建节点池,实现对节点进行统一的运维和管理。

建议您在创建节点池前,先参见节点池了解节点池的基本信息、使用场景、相关功能、涉及的计费等信息。

操作入口

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

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

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

创建节点池

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

说明

除控制台外,ACK还支持通过APITerraform方式创建节点池,请参见CreateClusterNodePool - 创建节点池通过Terraform创建具备自动伸缩功能的节点池

  1. 节点池页面,单击创建节点池,然后在创建节点池对话框,完成创建节点池的配置项。

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

    基本配置

    配置项

    说明

    是否支持修改

    节点池名称

    自定义节点池名称。

    加密计算

    说明
    • 当前仅白名单用户可以配置加密计算,请提交工单申请。

    • 容器运行时选择为containerd时,需配置该参数。

    是否开启加密计算。加密计算是为有强安全诉求的用户提供基于硬件加密技术的云原生一站式机密计算容器平台,可以帮助您保护数据使用(计算)过程中的安全性、完整性和机密性,同时简化可信或机密应用的开发、交付和管理成本。更多信息,请参见ACK-TEE机密计算

    容器运行时

    如何选型,请参见containerd、安全沙箱、Docker运行时的对比

    • containerd(推荐):社区标准,支持1.20及以上版本。

    • 安全沙箱:提供基于轻量级虚拟化技术的强隔离环境,支持1.31及以下版本。

    • Docker(停止支持):仅支持1.22及以下版本,目前已不支持创建。

    扩缩容模式

    • 手动:ACK会根据配置的期望节点数调整节点池中的节点数,将节点数始终维持在期望节点数。更多信息,请参见手动扩缩容节点池

    • 自动:当集群的容量规划无法满足应用Pod调度时,ACK会根据配置的最小和最大实例数自动扩缩节点资源。1.24及以上版本的集群默认启用节点即时弹性;1.24以下版本的集群默认启用节点自动伸缩。更多信息,请参见节点伸缩

    托管配置

    ACK目前提供三种托管配置,可在不同程度上启用节点池的自动化运维能力

    • 智能托管:开启智能托管后,ACK 将自动根据工作负载按需动态扩缩容,同时 ACK 将负责操作系统版本升级、软件版本升级、安全漏洞修复等运维职责。

      仅支持在开启了智能托管模式的集群中创建。
    • 托管节点池:按需勾选所需的自动化运维能力,以及执行自动化运维任务的集群维护窗口。

      展开查看相关配置

      配置项

      说明

      是否支持修改

      自愈规则

      ACK将自动监控节点状态,并在节点发生异常时自动执行自愈任务。如勾选当节点故障时重启节点,节点自愈过程中可能涉及节点排水、替盘等操作。触发条件、相关事件等,请参见开启节点自愈

      自动升级规则

      当有可用kubelet版本时,ACK会自动升级,请参见升级节点池

      自动修复 CVE(OS)

      修复节点池操作系统CVE漏洞,支持配置修复级别。有些漏洞修复完成后需要重启服务器来使其生效,若不跳过需要重启的漏洞修复,ACK会按需自动重启节点;选择跳过时需在修复完成后手动重启节点。

      云资源及计费说明:image云安全中心

      集群维护窗口

      ACK会且仅会在定义的维护窗口期内执行托管节点池的自动化运维操作。

    • 不开启:不使用自动化运维能力,手动运维节点和节点池。

    如需了解不同托管配置的差异及注意事项,请参见托管配置能力对比及注意事项

    网络配置

    配置项

    说明

    是否支持修改

    网络配置

    专有网络

    默认选择集群VPC,节点池创建完成后不可更改。

    云资源及计费说明:imageVPC

    交换机

    节点池扩缩容时,根据扩缩容策略在选择的vSwitch可用区下扩缩节点。为保障高可用,建议选择2个及以上不同可用区。

    如需创建vSwitch,请参见创建和管理交换机

    imageVPC

    实例和镜像配置

    配置项

    说明

    是否支持修改

    付费类型

    节点池扩容节点时默认采用的付费类型。

    • 按量付费:可按需启用和释放。

    • 包年包月:需配置购买时长以及自动续费

    • 抢占式实例:目前仅支持具有保护期的抢占式实例。需同时配置单台实例上限价格

      当指定实例规格的实时价格低于单台实例的最高出价时,实例将成功创建。保护期(1小时)过后,系统将每5分钟检查一次实例规格的实时价格与库存。若市场价格高于出价或库存不足,抢占式实例将被释放。使用建议,请参见抢占式实例节点池最佳实践

    为保证节点池统一,不支持将按量付费包年包月节点池修改为抢占式实例节点池,反之亦然。

    重要

    修改节点池的付费类型仅对扩容的新节点生效,不会改变节点池内已有节点的付费类型。如果您期望修改节点池中已有节点的付费类型,请参见按量付费转包年包月

    实例相关的配置项

    节点池扩容时,会从选定的ECS实例规格族中分配,选择更多可用区下的更多实例规格可提升节点扩容成功率,避免规格不可用或库存不足。具体扩容的实例规格由扩缩容策略决定。

    • 具体规格:根据vCPU、内存、规格族、架构等维度指定具体的实例规格。

    • 泛化配置:根据属性(vCPU、内存等)选择待使用或需排除的实例规格列表,进一步提升扩容成功率。请参见使用指定实例属性配置节点池

    可参考控制台的弹性强度建议来配置,或在节点池创建后查看节点池弹性强度

    关于ACK不支持的实例规格及节点配置建议,请参见ECS实例规格配置建议

    云资源及计费说明:imageECS实例imageGPU实例

    操作系统

    云市场镜像处于灰度发布中。

    节点池扩容节点时默认采用的操作系统镜像。

    后续如需升级或更换操作系统,请参见更换操作系统
    Alibaba Cloud Linux 2、CentOS 7已停止维护,请使用支持中的操作系统,推荐使用Alibaba Cloud Linux 3容器优化版、ContainerOS。

    安全加固

    创建节点时,ACK会应用选择的安全基线策略。

    • 不开启:不对ECS实例进行安全加固。

    • 等保加固:阿里云为Alibaba Cloud Linux等保2.0三级版镜像提供了符合等保合规要求的基线检查标准和扫描工具。在确保原生镜像兼容性和性能的同时,进行了等保合规适配,满足《GB/T22239-2019信息安全技术网络安全等级保护基本要求》,详情请参见ACK等保加固使用说明

      但在此模式下,Root用户无法通过SSH远程登录。您可以通过ECS控制台通过VNC连接实例,并创建一个支持SSH登录的普通用户。

    • 阿里云 OS 加固:仅支持Alibaba Cloud Linux 2Alibaba Cloud Linux 3。

    登录方式

    选择等保加固时,仅支持设置密码
    ContainerOS仅支持设置密钥创建后设置。如需使用密钥,配置密钥对后需启动运维容器后才能使用,具体操作请参见运维ContainerOS节点

    创建节点时,ACK会将指定的密钥或密码预置到实例中。

    • 创建时设置

      • 设置密钥:阿里云SSH密钥对是一种安全便捷的登录认证方式,由公钥和私钥组成,仅支持Linux实例。

        请同时配置登录名rootecs-user)和所需的密钥对

      • 设置密码:配置登录名rootecs-user)和密码。

    • 创建后设置:实例创建完成后,自行绑定密钥对或重置实例密码,请参见绑定SSH密钥对重置实例登录密码

    存储配置

    配置项

    说明

    是否支持修改

    系统盘

    根据业务需求选择云盘类型,包括ESSD AutoPL、ESSD云盘、ESSD Entry以及上一代云盘(SSD云盘和高效云盘),配置容量和IOPS等。

    可用系统盘类型取决于所选的实例规格族。未展示的云盘类型即为不支持使用。

    ESSD云盘自定义性能和加密能力

    • 支持自定义性能级别。云盘容量越大,可选择的性能级别越高(460 GiB容量以上可选PL2,1260 GiB以上可选PL3),详情请参见容量范围与性能级别的关系

    • 系统盘中仅ESS云盘支持加密。选择密钥时,阿里云默认使用服务密钥(Default Service CMK)进行加密;您也可以选择在KMS服务中预先创建的自定义密钥(BYOK)进行加密。

    支持选择配置更多系统盘类型,配置与系统盘不同的磁盘类型,提高扩容成功率。创建节点时,ACK将根据指定的磁盘类型顺序,选择第一个匹配的类型。

    云资源及计费说明:imageECS块存储

    数据盘

    根据业务需求选择云盘类型,包括ESSD AutoPL、ESSD云盘、ESSD Entry以及上一代云盘(SSD云盘和高效云盘),配置容量和IOPS等。

    可用数据盘类型取决于所选的实例规格族。未展示的云盘类型即为不支持使用。

    ESSD AutoPL支持

    • 预配置性能:在存储容量大小不变的情况下,可根据实际业务需求灵活配置云盘的预配置性能,从而实现云盘容量与性能的解耦。

    • 性能突发:当业务面临突发的数据读写压力时,云盘会临时提升性能以应对峰值需求,直至业务恢复平稳。

    ESSD云盘支持

    支持自定义性能级别。云盘容量越大,可选择的性能级别越高(460 GiB容量以上可选PL2,1260 GiB以上可选PL3),详情请参见容量范围与性能级别的关系

    • 挂载数据盘时,所有云盘类型均支持加密。选择密钥时,阿里云默认使用服务密钥(Default Service CMK)进行加密;您也可以选择在KMS服务中预先创建的自定义密钥(BYOK)进行加密。

    • 节点创建过程中,将自动格式化最后一块数据盘,并将/var/lib/container挂载到该数据盘,将/var/lib/kubelet/var/lib/containerd挂载到/var/lib/container

      如需自定义挂载目录,请调整数据盘的初始化配置,最多可选择一块数据盘作为容器运行时占用目录,详情请参见ACK节点池中数据盘可以自定义目录挂载吗?
    • 在需要容器镜像加速、大模型快速加载等场景下,还可以使用快照创建数据盘,提升系统的响应速度和处理能力。

    您可以选择配置更多数据盘类型,配置与数据盘不同的磁盘类型,提高扩容成功率。创建节点时,ACK将根据指定的磁盘类型顺序,选择第一个匹配的类型。

    一台ECS实例最多可挂载64块数据盘,不同实例规格支持挂载的最多云盘数量不同。对于实例规格支持挂载的云盘数量上限,可以通过DescribeInstanceTypes接口查询(DiskQuantity)。

    云资源及计费说明:imageECS块存储

    弹性临时盘

    白名单功能,提交工单申请

    弹性临时盘ECS实例提供高性能、高性价比的临时数据存储空间,适用于存放临时数据(如临时计算中间结果、缓存数据、临时文件等)、高性能计算(对IOPS和吞吐量要求较高)等场景。

    仅支持在部分地域和部分ECS实例规格中使用,请参见地域限制实例规格限制

    您可以选择是否对弹性临时盘进行初始化设置,自定义其挂载目录。

    云资源及计费说明:imageECS块存储

    实例数量

    配置项

    说明

    是否支持修改

    期望节点数

    节点池应该维持的总节点数量。建议至少配置2个节点,以确保集群组件正常运行。您可以通过调整期望节点数,达到扩容或缩容节点池的目的,请参见扩缩容节点池

    如无需创建节点,可填写为0,后续再手动增加。

    高级配置

    展开高级选项(选填),配置节点扩缩容策略、资源组、ECS标签、污点等信息。

    高级配置

    配置项

    说明

    是否支持修改

    资源组

    将节点池归属于选择的资源组,便于权限管理和成本分摊。

    一个资源只能归属于一个资源组。

    伸缩模式

    需开启节点池自动伸缩扩缩容模式自动
    • 标准模式:通过创建、释放ECS实例的方式进行伸缩。

    • 极速模式:通过创建、停机、再启动ECS实例的方式进行伸缩,以便在需要再次伸缩时,直接重新启动处于停机状态的实例,提高伸缩速度。

      ECS实例停机时不收取计算资源费用,只收取存储费用(包含本地存储能力的实例规格族除外,例如大数据型、本地SSD型等)。关于ECS实例停机模式的计费详情及相关注意事项,请参见节省停机模式

    扩缩容策略

    配置节点池在节点扩缩容时如何选择实例。

    • 优先级策略:按集群配置的vSwitch优先级(vSwitch顺序由上到下优先级递减)扩缩容。优先级较高的vSwitch所在可用区无法创建实例时,自动使用下一优先级vSwitch。

    • 成本优化策略:按vCPU单价从低到高扩缩容。

      节点池使用抢占式实例时,则抢占式实例优先。支持同时配置按量实例所占比例(%),当抢占式实例规格因库存等原因无法创建时,自动使用按量付费实例来补充。

    • 均衡分布策略:在且仅在多可用区场景下将ECS实例均匀分配至多可用区。如果由于库存不足等原因造成可用区分布不平衡,可再次进行均衡操作。

    使用按量实例补充抢占式容量

    需同时选择付费类型为抢占式实例。

    开启后,如果因价格或库存等原因无法创建足够的抢占式实例,ACK将自动尝试创建按量实例作为补充。

    云资源及计费说明:imageECS实例

    开启抢占式实例补偿

    需同时选择付费类型为抢占式实例。

    开启后,当收到抢占式实例将被回收的系统消息时(即抢占式实例被回收前5分钟),ACK将尝试扩容新实例进行补偿。

    • 补偿成功:ACK对旧节点执行排水并从集群中移除。

    • 补偿失败:ACK不会对旧节点执行排水,到期实例仍然会在5分钟后被回收释放。当库存恢复或满足价格条件时,ACK将自动购买实例以保证期望节点数,详情请参见抢占式实例节点池最佳实践

    抢占式实例的主动释放可能导致业务异常,为提高补偿成功率,建议同时开启使用按量实例补充抢占式容量

    云资源及计费说明:imageECS实例

    ECS 标签

    ACK自动创建的ECS实例添加标签,作为云资源标识。每台ECS最多可绑定20个标签。如需提高上限,请到配额平台提交申请。由于ACKESS会占用部分标签,您最多可为实例指定17个自定义标签。

    展开查看标签占用说明

    • ACK默认占用两个ECS标签。

      • ack.aliyun.com:<您的集群ID>

      • ack.alibabacloud.com/nodepool-id:<您的节点池ID>

    • ESS默认占用1ECS标签:acs:autoscaling:scalingGroupId:<您的节点池伸缩组ID>

    • 开启节点自动伸缩后,弹性伸缩将默认占用两个ECS标签,因此节点池会额外占用两个ECS标签:k8s.io/cluster-autoscaler:truek8s.aliyun.com:true

    • 开启节点自动伸缩后,组件通过ECS标签记录节点的标签和污点,以预检测弹出节点的调度行为。

      • 节点的每个标签会被转为k8s.io/cluster-autoscaler/node-template/label/<标签键>:<标签值>

      • 节点的每个污点会被转为k8s.io/cluster-autoscaler/node-template/taint/<污点键>/<污点值>:<污点效果>

    污点 (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)

    为节点添加键值对标签。有效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]开头和结尾,可包含字母、数字、短划线(-)、下划线(_)和英文半角句号(.)。

    容器镜像加速

    仅支持版本为1.6.34及以上的containerd运行时。

    新添加的节点将自动识别容器镜像是否支持按需加载功能,若支持则默认通过按需加载加速容器启动,以缩短应用启动时间,详情请参见使用按需加载容器镜像加速容器启动

    【废弃】CPU Policy

    指定kubelet节点的CPU管理策略

    • None:默认策略。

    • Static:允许为节点上具有某些资源特征的Pod赋予增强的CPU亲和性和独占性。

    推荐使用自定义节点池kubelet配置
    推荐使用自定义节点池kubelet配置

    自定义节点名称

    节点名称由前缀、节点IP地址及后缀三部分组成。开启后,节点名称、ECS实例名称、ECS实例Hostname也将发生变化。

    例如,节点IP地址为192.XX.YY.55,指定前缀为aliyun.com,后缀为test。

    • Linux节点:节点名称、ECS实例、ECS实例Hostname均为aliyun.com192.XX.YY.55test。

    • Windows节点:其Hostname固定为IP地址,使用-代替IP地址中的.,且不包含前缀和后缀。

      因此,对应的ECS实例Hostname192-XX-YY-55,节点名称、ECS实例名称均为aliyun.com192.XX.YY.55test。

    Worker RAM 角色

    仅支持1.22及以上版本的ACK托管集群
    仅支持在新建节点池时指定

    在节点池维度指定一个Worker RAM角色,降低所有节点中共用一个Worker RAM角色可能存在的安全风险。

    • 默认角色:使用集群默认创建的Worker RAM角色。

    • 自定义:使用指定的角色作为Worker RAM角色,为空时将使用默认角色,详情请参见使用自定义Worker RAM角色

    实例元数据访问模式

    白名单功能,请提交工单申请。仅支持1.28及以上版本的集群

    配置 ECS 实例的元数据访问模式,在ECS实例内部通过访问元数据服务(Metadata Service)获取ECS实例元数据,包括实例ID、VPC信息、网卡信息等实例属性信息,详情请参见元数据访问模式说明

    • 普通模式和加固模式:支持使用普通模式和加固模式两种方式访问实例元数据服务。

    • 仅加固模式:仅支持使用加固模式访问实例元数据服务,请参见使用仅加固模式访问ECS实例元数据

    实例预自定义数据

    节点加入集群前,将运行指定的实例预自定义User-Data脚本

    例如,指定实例预自定义数据为echo "hello world",则节点实际运行脚本如下。

    #!/bin/bash
    echo "hello world"
    [节点初始化脚本]
    节点初始化时此配置的生效逻辑,请参见实例预自定义数据和实例自定义数据的生效逻辑

    实例自定义数据

    节点加入集群后,将运行指定的实例自定义User-Data脚本

    例如,指定实例自定义数据为echo "hello world",则节点实际运行脚本如下。

    #!/bin/bash
    [节点初始化脚本]
    echo "hello world"
    节点初始化时此配置的生效逻辑,请参见实例预自定义数据和实例自定义数据的生效逻辑
    创建集群或扩容节点成功不代表实例自定义脚本执行成功。可登录节点执行grep cloud-init /var/log/messages查看执行日志。

    云监控插件

    可在云监控控制台查看并监控节点和应用运行状态。

    本配置仅对节点池中新增的节点生效,不对节点池存量节点生效。

    已有节点如需启用,请通过云监控控制台安装。

    云资源及计费说明:image云监控

    公网 IP

    ACK将为节点分配IPv4公网IP地址。

    本配置仅对节点池中新增的节点生效,不对节点池存量节点生效。已有节点如需访问公网,需配置并绑定EIP,请参见EIP绑定至ECS实例

    云资源及计费说明:imageECS公网

    自定义安全组

    为节点池指定普通安全组或企业级安全组。ACK默认不会为安全组配置额外的访问规则。需自行管理安全组规则,避免访问异常,请参见配置集群安全组

    每台ECS实例支持加入的安全组存在上限,请确保安全组配额充足。

    RDS 白名单

    将节点IP添加至RDS实例的白名单。

    部署集

    通过ECS控制台创建部署集后,为节点池指定部署集,使得节点池弹出的节点可分散部署在不同的物理服务器上,提升高可用性。

    部署集默认支持的节点上限为20 * 可用区数量(可用区数量由vSwitch决定),节点池内最大节点数将受到限制,需确保部署集内配额充足。

    后续如需启用,请参见节点池部署集最佳实践

    私有池类型

    当前所选可用区和实例规格下可使用的私有池资源。类型包括:

    • 开放:实例将会自动匹配开放类型的私有容量池,如果没有符合条件的私有池,则使用公共池资源启动。

    • 不使用:实例不会使用任何私有池容量,直接使用公共池资源启动。

    • 指定:需要进一步选择私有池ID来指定实例只使用该私有池容量启动。如果该私有池不可用,则实例启动失败。

  2. 单击确认配置

    您可以在确认配置页面的左下角单击同等代码,生成当前节点池配置对应的TerraformSDK示例参数。

    节点池列表中节点池状态显示初始化中时,表明节点池正在创建;显示为已激活时,表明创建成功。

编辑节点池

创建节点池后,ACK集群支持通过控制台调整部分节点池配置,例如节点池所在的虚拟交换机、付费类型、实例规格、系统盘及启用或停用弹性伸缩等。您可以参见创建节点池的配置项说明了解支持更新的配置项。

重要
  • 节点池编辑过程中,不会影响节点池内已有节点和业务的运行。

  • 节点池配置更新后,除特殊说明场景外(例如同步更新存量节点的 ECS 标签同步更新存量节点的标签(Labels)及污点(Taints)),不会修改节点池已有节点的配置,仅作用于新增节点。

  • 切换节点池的扩缩容模式时:

    • 手动切换为自动:即开启自动伸缩,需同步设置最小和最大实例数。

    • 自动切换为手动:即关闭自动伸缩,最小实例数将设置为0,最大实例数将设置为2000。期望节点数将自动配置为节点池当前的节点数量。

  • 节点池配置更新后,后续节点池中新增的节点都将默认使用该配置。

  • 更新节点池配置需参见本步骤来实现。如您通过其他方式对节点进行了更改,节点池升级时这些更改会被覆盖。

  1. 在节点池列表页面中,单击目标节点池所在行操作列的编辑

  2. 在编辑节点池页面,编辑节点池的配置项,并按照页面提示完成配置。

    在节点池页面,如果节点池状态显示更新中,则说明节点池正在变更中。变更完成后,状态显示为已激活

查看节点池

您可以查看节点池的基本信息、监控信息,以及节点池中的全部节点信息和节点伸缩活动的记录。

单击目标节点池名称,查看以下信息。

  • 基本信息页签:展示集群信息、节点池信息、节点配置信息。如果集群已开启自动弹性伸缩,还将展示自动弹性伸缩的配置信息。

  • 监控页签:集成了阿里云Prometheus服务,展示节点池的资源水位情况,包括CPU或内存使用情况、磁盘使用情况、节点CPU或内存平均使用率等。

  • 节点管理页签:当前节点池中的全部节点列表,支持对节点进行移除、运维、排水、调度等操作。单击导出可以通过CSV文件导出节点的各项信息。

  • 伸缩活动页签:最近节点实例伸缩活动记录,包括伸缩后的实例数量、伸缩活动描述等。伸缩活动失败时,您可以查看失败的原因。关于扩缩容失败常见错误码,请参见手动扩缩容节点池

删除节点池

不同计费规则的实例释放规则不同,请参见下文使用标准的操作删除节点池中的节点。在删除节点池前,请确认该节点池是否设置了期望节点数,这将直接影响节点的释放行为。

节点池

释放规则

已开启期望节点数的节点池

  • 按量付费的节点:会随着节点池的删除被释放。

  • 包年包月的节点:删除节点池不会自动释放包年包月的节点。

    如需释放包年包月的节点,请参见包年包月转按量付费将包年包月的节点转换为按量付费的节点,再登录ECS管理控制台完成释放。

  • 删除节点池会将节点池内的所有节点从API Server一并移除。

未开启期望节点数的节点池

  • 节点池内通过手动及自动添加到节点池的已有节点、包年包月的节点不会被释放,其余节点将被释放。

    如需释放包年包月的节点,请参见包年包月转按量付费将包年包月的节点转换为按量付费的节点,再登录ECS管理控制台完成释放。

  • 节点池内释放的节点将会从API Server移除,未被释放的节点将不会从API Server移除。

  1. (可选)单击目标节点池名称,在基本信息页签中检查是否配置了期望节点数。如果未启用,期望节点数字段会显示为-。

  2. 在目标节点池右侧的操作列,单击image>删除,仔细阅读弹出信息,确认无误后,单击确定

相关操作

节点池激活完成后,您可以在节点池列表区域,按需进行以下操作。

界面词

说明

相关文档

同步节点池

节点信息异常时,同步节点池的数据信息。

详情

节点池配置详情。

扩缩容

  • 手动:ACK会根据配置的期望节点数调整节点池中的节点数,将节点数始终维持在期望节点数。更多信息,请参见手动扩缩容节点池

  • 自动:当集群的容量规划无法满足应用Pod调度时,ACK会根据配置的最小和最大实例数自动扩缩节点资源。1.24及以上版本的集群默认启用节点即时弹性;1.24以下版本的集群默认启用节点自动伸缩。更多信息,请参见节点伸缩

编辑

调整节点池的配置,例如节点池所在的虚拟交换机、托管节点池配置、付费类型、实例规格、启用或停用弹性伸缩等。

参见上文的编辑节点池

监控

集成了阿里云Prometheus服务,展示节点池的资源水位情况,包括CPU或内存使用情况、磁盘使用情况、节点CPU或内存平均使用率等。

参见上文的查看节点池

添加已有节点

如购买ECS实例后需将其添加到ACK集群中作为Worker节点,或移除Worker节点后需重新加入节点池,可以使用添加已有节点的功能。此功能存在一些使用限制和注意事项,请参见文档了解。

添加已有节点

配置登录方式

设置节点的登录方式,支持密钥和密码两种方式。

参见前文的实例和镜像配置

托管配置

开启节点池的自动化运维能力,包括节点故障自动恢复、kubelet和运行时自动升级、OS CVE自动修复等。

参见前文的基本配置

克隆

基于现有节点池配置,克隆一个相同配置的节点池。

删除

删除不再使用的节点池,以减少不必要的资源浪费。节点池是否开启期望节点数以及节点的计费模式会影响节点释放的行为。

参见上文的删除节点池

Kubelet 配置

在节点池维度自定义节点的kubelet参数配置,调整节点行为,例如整集群资源预留以调配资源用量等。

自定义节点池kubelet配置

Containerd 配置

在节点池维度自定义节点的containerd参数配置。例如,您可以给指定镜像仓库同时配置多个Mirror仓库,或者指定跳过某个镜像仓库的安全证书的验证。

自定义节点池containerd配置

OS 配置

在节点池维度自定义节点的OS参数配置,以调优系统性能。

管理节点池OS参数

Kubelet 升级

升级节点池中节点的kubelet版本和containerd版本。

升级节点池

更换操作系统

更换节点操作系统类型,或升级操作系统的版本。

更换操作系统

修复 CVE(OS)

执行CVE漏洞的批量修复,提升集群的稳定性、安全性、合规性。部分CVE漏洞的修复需要通过重启节点来实现,请参见文档了解功能说明及注意事项。

修复节点池操作系统CVE漏洞

节点恢复

当托管节点池中的节点发生异常时,ACK会自动发起故障节点的恢复操作,使节点保持正常运行(部分复杂的节点故障可能仍然需要手动修复)。关于ACK提供的检查项及具体的恢复行为请参见文档了解。

开启节点自愈

托管配置能力对比

托管配置

不开启

托管节点池

智能托管

节点池配置

实例规格

手动配置

手动配置

可配置,支持按规格类型智能推荐

付费类型

手动配置

手动配置

仅支持按量付费

操作系统

手动配置

手动配置

仅支持容器优化操作系统 ContainerOS

系统盘

手动配置

手动配置

默认推荐配置,20Gi

数据盘

手动配置

手动配置

一块数据盘用于 ContainerOS 操作系统的临时存储,大小可配置

自动扩缩容

可选开启,手动配置

可选开启,手动配置

内置开启节点即时弹性 ,可手动配置

自动化运维能力

ECS系统事件自动响应

不支持

已内置开启

已内置开启

节点自愈

不支持

可选开启,手动配置

已内置开启

kubelet和运行时版本自动升级

不支持

可选开启,手动配置

已内置开启

OS CVE漏洞自动修复

不支持

可选开启,手动配置

已内置开启

重要
  • 节点池开启智能托管后,将根据您的工作负载需求动态扩缩容节点,默认最大支持扩容至 50 节点,您可以通过节点池的扩缩容功能修改最大实例数。

  • 节点池开启智能托管后,ACK 将负责操作系统版本升级、软件版本升级、安全漏洞修复等运维职责,涉及软件版本升级、软件配置修改、重启、排水驱逐等操作。请避免对节点池中 ECS 节点进行手动运维,例如重启、数据盘挂载、登录节点修改配置等,以避免自动化策略冲突影响。请您合理设置工作负载的副本数、PreStop 优雅下线策略、PodDisruptionBudget 策略等,以确保节点可排空运维且无业务中断影响。

  • 节点池开启智能托管后,ACK 将基于采用不可变根文件系统的操作系统 ContainerOS 提升节点安全性,请避免使用节点系统路径存储(如 HostPath),推荐使用 PVC 作为持久化存储。

  • 节点池开启智能托管后,暂不支持 Arm、GPU、本地盘等实例规格,ACK 已为您推荐默认的实例规格类型,可以满足大多数场景下的应用需求,您也可以在控制台根据实际业务场景调整。建议设置足够数量的实例规格,以提升节点池的弹性强度,避免扩容失败。

  • 智能托管模式旨在提供自动化、智能化的Kubernetes集群运维功能,在部分场景下,您仍需要履行一部分义务。详情请参见责任共担模型

常见问题

如何基于创建好的ECS实例创建自定义镜像,并使用该镜像创建节点?

您可以在创建ECS实例后,根据业务需要自定义该实例(如安装软件、部署应用环境等),并为更新后的实例创建自定义镜像。使用该镜像创建的新实例,会包含您已配置的自定义项,省去您重复自定义实例的时间。

  1. 登录ECS实例,执行以下命令,删除指定的文件。关于如何登录实例,请参见使用Workbench登录Linux实例

    chattr -i /etc/acknode/nodeconfig-*
    rm -rf /etc/acknode
    systemctl disable ack-reconfig
    rm -rf /etc/systemd/system/ack-reconfig.service
    rm -rf /usr/local/bin/reconfig.sh
    rm -rf /var/lib/cloud
    systemctl stop kubelet
    systemctl disable kubelet
    rm -rf /etc/systemd/system/kubelet.service
    rm -rf /etc/systemd/system/kubelet.service.d/10-kubeadm.conf
  2. 基于ECS实例创建自定义镜像。相关注意事项和具体操作步骤,请参见使用实例创建自定义镜像

  3. 配置节点池,选择操作系统类型为自定义镜像,并参见前文说明完成节点池的创建。

重要
  • 请基于ACK集群支持的操作系统制作自定义镜像。详细信息,请参见操作系统

  • 请勿使用ACK集群中正在运行的ECS实例制作自定义镜像。如需使用,请先从集群移除,请参见移除节点

  • 自定义镜像中预定义的行为逻辑可能影响集群节点初始化、容器运行、节点OS升级、托管节点池的节点自动恢复等操作。在生产环境使用前,请确保已经过严格的测试验证。

节点初始化时,执行实例预自定义数据和实例自定义数据时是什么生效逻辑?

image

如果您在创建和管理节点池过程中为节点池配置了实例预自定义数据实例自定义数据,ACK会在节点加入集群前、后执行对应的数据脚本。其生效逻辑如下。

  1. 收到请求,创建节点,对应ECS实例启动。

  2. 执行实例预自定义数据脚本

    ECS实例创建完成后,系统首先会执行预自定义数据脚本,进行基础环境的准备。

  3. 节点加入节点池

    预自定义脚本执行完成后,节点开始执行加入节点池的操作。在此过程中,系统会自动安装集群核心组件,配置节点与API Server的通信,并将节点注册到集群中。

  4. 并行执行阶段

    节点加入集群后,会并行启动两个独立流程:

    • 实例自定义数据脚本执行:系统进一步执行配置的自定义数据脚本。脚本的执行结果不会影响节点的调度能力。

      可登录节点执行grep cloud-init /var/log/messages查看执行日志,确定脚本是否执行完成。
    • 节点状态变更:节点状态从NotReady逐步转换为Ready。Ready节点具备接收Pod调度的能力。

相关文档

  • 当不再需要某节点继续工作时,请按照标准化操作将节点移除,请参见移除节点

  • ACK需要占用一定的节点资源来为kube组件和system进程预留资源,请参见节点资源预留策略

  • 当集群的容量规划无法满足应用Pod调度时,您可以启用节点伸缩自动扩缩节点资源,请参见节点伸缩

  • Worker节点支持的最大Pod数受网络插件类型影响,在大部分场景下不支持变更。如需提升可用的Pod数量,需通过节点池扩容、实例规格提升、重建集群并重新规划Pod网段等手段,具体操作请参见调整可使用的节点Pod数量