全部产品
Search
文档中心

容器服务 Kubernetes 版 ACK:编辑节点池

更新时间:May 14, 2024

ACK支持通过控制台调整节点池的配置,例如节点池所在的虚拟交换机、付费类型、实例规格、系统盘及启用或停用弹性伸缩等。本文介绍如何编辑节点池。

前提条件

注意事项

  • 编辑节点池时,除特殊说明场景外(如同步更新存量节点标签及污点),不会修改节点池已有节点的配置,仅作用于新增节点。节点池的运维操作,例如节点池升级、节点池节点恢复、节点池CVE修复、节点池自定义kubelet配置,会修改存量节点的配置。

  • 编辑节点池不会影响节点池内已有节点和业务的运行。

操作步骤

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

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

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

  4. 在编辑节点池页面,编辑节点池的配置项。

    说明

    下表中,错代表配置后不支持修改,对代表配置后支持修改。

    配置项

    是否支持修改

    描述

    地域

    错

    表示集群所在的地域。

    容器运行时

    错

    关于容器运行时的更多信息,请参见如何选择Docker运行时、Containerd运行时、或者安全沙箱运行时?

    专有网络

    错

    专有网络VPC默认选择集群VPC。

    虚拟交换机

    对

    您可以在已有虚拟交换机列表中,根据可用区选择交换机。如果没有您需要的交换机,可以通过单击创建虚拟交换机进行创建,请参见创建和管理交换机

    节点池后续的扩缩容将根据高级选项中的扩缩容策略,在选择的虚拟交换机可用区下弹出节点。

    自动伸缩

    对

    是否开启自动伸缩。该功能可根据业务需求和策略,经济地自动调整弹性计算资源的管理服务。更多信息,请参见弹性伸缩概述。开启前,请先配置节点池的自动弹性伸缩能力,操作步骤可参考步骤一:开启节点自动伸缩

    付费类型

    对

    节点池支持按量付费包年包月抢占式实例三种节点付费类型。为保证节点池统一,按量付费包年包月节点池与抢占式实例节点池之间不支持转换。例如,对于创建节点池时选择付费类型按量付费包年包月的节点池,编辑节点池页面不显示抢占式实例;反之亦然。

    • 选择按量付费时,计费项为ECS实例,节点池不收费。

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

    • 选择抢占式实例时,需设置以下参数:

      单台实例上限价格:当指定实例规格的实时市场价格低于单台实例上限价格时,能成功创建抢占式实例。超过保护期后(1小时),每5分钟检测一次实例规格的实时市场价格和库存。如果某一时刻的市场价格高于出价或实例规格库存不足,抢占式实例会被释放。

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

    • 目前ACK仅支持创建具有保护期的抢占式实例。更多信息,请参见抢占式实例节点池最佳实践

    实例规格

    对

    支持选择多个实例规格。可通过vCPU内存筛选实例规格,也可选择架构分类

    说明

    选择实例规格后,在已选规格区域依次展示实例规格详情。

    节点池扩容时,将从选中的实例规格中扩容。具体扩容到的实例规格取决于节点池扩缩容策略。选择的实例规格越多,节点池成功弹出节点的概率越大。

    由于实例规格不可用或库存不足,导致节点池弹出节点失败时,可以尝试添加更多实例规格。您可以参照控制台的弹性强度建议添加实例规格,也可以创建节点池后查看节点池弹性强度。

    说明
    • 修改节点池的实例规格不会改变节点池内已有节点的实例规格,只会对扩容的新节点生效。如果您期望修改节点池中已有节点的实例规格,请按照如下指引操作。

      • 如果希望升配,请登录ECS管理控制台修改。具体操作,请参见资源变配

      • 如果希望更改规格,请将实例移出集群。修改节点池实例规格后,重新弹出节点。关于如何将实例移出集群,请参见移除节点

    • ARM实例仅支持ARM镜像。关于ARM节点池,请参见配置ARM节点池

    已选规格

    对

    呈现选中的规格。

    如果您选择的实例均为GPU服务器,您可以按需开启共享 GPU 调度。更多信息,请参见共享GPU调度概述

    系统盘

    对

    支持ESSD AutoPLESSD云盘ESSD EntrySSD云盘高效云盘

    系统盘可选的类型与选择的实例规格相关。如果云盘类型下拉列表没有显示的云盘类型,代表不支持该云盘类型。 关于云盘的更多信息,请参见块存储概述;查询实例规格支持的云盘类型,请参见实例规格族

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

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

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

    挂载数据盘

    对

    支持ESSD AutoPLESSD云盘ESSD Entry、SSD云盘高效云盘

    挂载数据盘时,数据盘可选的类型与选择的实例规格相关。如果云盘类型下拉列表没有显示的云盘类型,代表不支持该云盘类型。 关于云盘的更多信息,请参见块存储概述;查询实例规格支持的云盘类型,请参见实例规格族

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

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

    • 最大可挂载的数据盘数量与选择的实例规格相关,当前已挂载的数据盘数量和剩余可挂载的数据盘数量请在挂载数据盘后面查看。

    操作系统

    对

    容器服务Kubernetes版支持的操作系统镜像类型如下。

    • Alibaba Cloud Linux 3

    • Alibaba Cloud Linux 3 Arm版

    • ContainerOS

    • Alibaba Cloud Linux 2

    • Alibaba Cloud Linux UEFI 2

    • Windows

    • Windows Core

    • CentOS

    更多信息,请参见操作系统镜像概述

    说明
    • 修改节点池系统镜像时,仅影响新增节点,不会修改节点池已有节点的系统镜像。已有节点的系统镜像升级,请参见升级节点池

    • 为保证节点池内节点系统镜像的统一,修改节点池镜像时,仅允许修改为同类型镜像的最新版本,不支持更改镜像类型。

    登录方式

    对

    目前支持设置密钥设置密码创建后设置

    说明

    安全加固类型选择等保加固时,仅支持设置密码。

    • 创建时设置

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

      • 设置密码:密码限制为8~30个字符,且同时包含大写字母、小写字母、数字和特殊符号。

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

    登录名

    对

    登录方式选择设置密钥或者设置密码时,需按需选择以root登录还是以ecs-user登录。

    公网 IP

    对

    是否为节点分配IPV4地址。如果未选中,不会配公网IP地址,当选择公网IP后,还需配置带宽计费方式带宽峰值

    说明

    该选项仅对节点池新增节点生效,对节点池已有节点无效。已有节点如需访问公网,请配置并绑定弹性公网IP地址。具体操作,请参见将EIP绑定至ECS实例

    云监控插件

    对

    是否安装云监控插件。安装后,可在云监控控制台查看所创建ECS实例的监控信息。

    说明

    该选项仅对节点池新增节点生效,对节点池已有节点无效。已有节点如需安装云监控插件,请通过云监控控制台安装。

  5. 单击显示高级选项,配置高级选项。

    展开查看高级选项配置

    配置项

    是否支持修改

    说明

    ECS 标签

    对

    为弹出的ECS添加标签,标签键不可重复。最大长度为128个字符,标签键和标签值不能以aliyunacs:开头,不能包含https://http://

    一台ECS可绑定标签的上限为20个。如需提高上限,请到配额平台提交申请。由于ACK和ESS存在以下标签占用,因此您可以最多指定17个ECS标签。

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

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

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

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

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

    • 自动伸缩组件为了预检测弹出节点的调度行为,需依靠ECS标签记录K8s的节点标签和污点。因此节点每个标签会转为k8s.io/cluster-autoscaler/node-template/label/标签键:标签值,节点每个污点会转为k8s.io/cluster-autoscaler/node-template/taint/污点键/污点值:污点效果

    • 修改ECS标签不会对节点池已有节点生效,仅对节点池新增节点生效。已有节点如需修改ECS标签,请通过ECS控制台操作。

    污点 (Taints)

    对

    为Kubernetes集群节点添加污点,污点(Taints)包含Effect(效果)。有效污点键包含前缀(可选)和名称。如果有前缀,用正斜线(/)分隔。更多信息,请参见污点和容忍度。污点有以下限制:

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

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

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

    • Effect:可选择NoScheduleNoExecutePreferNoSchedule三种。

      • NoSchedule:如果污点中存在至少一个Effect值为NoSchedule的污点,则系统不会将Pod分配到该节点。

      • NoExecute:任何不能忍受这个污点的Pod都会被驱逐,任何可以忍受这个污点的Pod都不会被驱逐。

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

    说明

    修改污点不会对节点池已有节点生效,仅对节点池新增节点生效。已有节点如需修改污点,可以通过勾选下方节点标签中的同步更新存量节点标签及污点实现,或者单击节点页面右上方的标签与污点管理,手动管理节点污点。

    节点标签

    对

    为Kubernetes集群节点添加标签,标签是键值对。有效标签键包含前缀(可选)和名称,如果有前缀,前缀和名称之间用正斜线(/)分隔。标签有以下限制:

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

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

      标签键中以下前缀由K8s核心组件保留,不支持指定。

      • kubernetes.io/

      • k8s.io/

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

        以下除外:

        • kubelet.kubernetes.io/

        • node.kubernetes.io

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

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

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

    • 选中设置为不可调度后,新添加的节点注册到集群时默认设置为不可调度。如果想打开存量节点的调度选项,可在集群节点列表中开启。

    展开查看同步更新存量节点标签及污点信息

    勾选该项后,会将此次修改的节点标签及污点同步更新到已有节点和新节点上。

    勾选该选项后仅会更新本次节点池配置发生变化的节点标签和污点,并不会将存量节点的全部标签及污点更改为节点池终态配置。例如现有节点A,具有标签:

    • testA : testA

    • testB : testB

    节点池当前配置为:testA : testA,当修改节点池当前配置为testC : testC。

    节点池前后两次的配置变化为增加了testC : testC,去除了testA : testA。此时节点A的标签将变为:

    • testB : testB

    • testC : testC

    展开查看设置为不可调度信息

    勾选该项后,新添加的节点注册到集群时默认设置为不可调度。若想打开调度选项,可以在节点列表中开启。

    说明

    设置为不可调度不会对节点池已有节点生效,仅对节点池新增节点生效。

    扩缩容策略

    错

    • 优先级策略:根据以上配置的虚拟交换机的优先级进行扩缩容(选择的虚拟交换机的顺序,由上到下优先级递减)。当优先级较高的虚拟交换机所在可用区无法创建ECS实例时,自动使用下一优先级的虚拟交换机创建ECS实例。

    • 成本优化策略:按vCPU单价从低到高尝试创建。当伸缩配置已设置抢占式计费方式的多实例规格时,优先创建对应抢占式计费实例。当抢占式计费实例规格由于库存等原因无法创建时,自动尝试以按量付费的方式创建。

      付费类型抢占式实例时,除允许抢占式实例补偿外,您还可以配置以下参数:

      • 按量实例所占比例%:节点池实例中按量实例应占的比例,取值范围为[0,100]。

      • 允许按量实例补偿:开启后,如果因价格或库存等原因无法创建足够的抢占式实例,伸缩组将自动尝试创建按量实例,以满足ECS实例数量要求。

    • 均衡分布策略:只有设置多个专有网络交换机时,均衡分布策略才能生效。在伸缩组指定的多可用区(即指定多个专有网络交换机)之间均匀分配ECS实例。如果由于库存不足等原因造成可用区之间不平衡,您可以再次进行均衡操作,以平衡资源的可用区分布。

      重要

      节点池创建完成后,扩缩容策略不支持编辑。

      付费类型抢占式实例时,您可以设置是否开启允许抢占式实例补偿。开启后,当收到抢占式实例将被回收的系统消息时(即抢占式实例被回收前5分钟左右),开启弹性的节点池将尝试创建新的实例,替换掉将被回收的抢占式实例。

    自定义镜像

    对

    配置自定义镜像后,自定义镜像将取代默认系统镜像。

    • 自定义ECS镜像:集群所有节点将基于此镜像进行部署。关于创建自定义镜像操作,请参见使用自定义镜像创建Kubernetes集群

    • 共享ECS镜像:集群所有节点将基于此镜像进行部署。关于共享镜像的更多信息,请参见操作步骤

    说明
    • 目前自定义镜像的操作系统仅支持Alibaba Cloud Linux、RHEL 8.x、CentOS 7.x。

    • 仅白名单用户可使用此功能。请前往配额平台申请。

    RDS 白名单

    对

    单击请选择您想要添加白名单的RDS实例,将节点IP添加至RDS实例的白名单。

    自定义节点名称

    错

    是否开启自定义节点名称。自定义节点名称后,将同时更改节点名称、ECS实例名称、ECS实例Hostname。

    说明

    对于开启自定义节点名称的Windows实例,其Hostname固定为IP地址,使用-代替IP地址中的.,且不包含前缀和后缀。

    节点名称由前缀、节点IP地址及后缀三部分组成:

    • 总长度为2-64个字符。节点名称首尾必须为小写字母和数字。

    • 前缀和后缀允许使用大小写字母、数字、连字符(-)和点号(.)。必须以大小写字母开头,不能以连字符(-)或点号(.)开头或结尾。不能连续使用连字符(-)或点号(.)。

    • 前缀必选(ECS限制),后缀可选。

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

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

    • 如果节点为Windows节点,则ECS实例Hostname为192-XX-YY-55,节点名称、ECS实例名称均为aliyun.com192.XX.YY.55test。

    实例预自定义数据

    对

    如需使用此功能,请前往配额平台提交申请。

    节点加入集群前,将运行您指定的实例预自定义数据脚本。关于User-Data脚本,请参见User-Data脚本

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

    #!/bin/bash
    echo "hello world"
    [节点初始化脚本]

    实例自定义数据

    对

    节点加入集群后,将运行您指定的实例自定义数据脚本。关于User-Data脚本,请参见User-Data脚本

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

    #!/bin/bash
    [节点初始化脚本]
    echo "hello world"
    说明

    创建集群或扩容节点成功不代表实例自定义脚本执行成功,可登录节点执行grep cloud-init /var/log/messages查看执行日志。

    私有池类型

    对

    说明

    该配置项目前处于灰度发布中。

    私有池类型包括:开放不使用指定

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

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

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

    关于私有池的更多信息,请参见私有池

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

相关文档