托管节点池是ACK全新推出的自动化运维型节点池,帮助您降低节点运维负担。本文介绍如何创建、克隆和删除托管节点池,以及调整节点池中的节点数量。

前提条件

已创建ACK Pro版集群,且集群的Kubernetes版本大于1.9。具体操作,请参见升级ACK集群K8s版本

注意事项

  • 托管节点池通过替换系统盘的方式执行节点升级操作,该操作会删除节点系统盘上的数据。数据盘内的数据不受影响,请勿在系统盘上存储任何持久化数据。
  • 托管节点池在替盘升级前会执行节点下线与排水,因此会造成Pod的重启、长链接的中断。
  • 托管节点池会尝试重启故障节点来修复可能的故障,因此节点上的Pod会被重启。
  • CVE漏洞修复需要开通云安全中心并且配额充足。具体操作,请参见购买云安全中心
  • 建议您务必开启事件中心,否则将无法接收到托管节点池的告警事件。关于开启事件中心的具体操作,请参见事件监控

创建托管节点池

  1. 登录容器服务管理控制台
  2. 在控制台左侧导航栏中,单击集群
  3. 集群列表页面中,单击目标集群名称或者目标集群右侧操作列下的详情
  4. 在集群管理页左侧导航栏中,选择节点管理 > 节点池
  5. 节点池页面右上角,单击创建托管节点池
  6. 创建托管节点池对话框,设置托管节点池的配置项。
    有关配置项的详细说明,请参见创建ACK Pro版集群。部分配置项说明如下:
    • 自动伸缩:设置是否开启节点的自动伸缩功能。更多信息,请参见节点自动伸缩
    • 期望节点数:设置节点池的期望节点数量。如不需要创建节点,可以填写为0。
    • 操作系统:选择节点的操作系统,包括ContainerOS、CentOS、Alibaba Cloud Linux、Windows。
      说明 ContainerOS仅在容器运行时为Containerd时支持。
    • 节点标签:您可以为集群节点添加标签。
    • ECS标签:您可以为ECS实例添加标签。
    • 自定义资源组:您可以指定节点池所扩容节点的资源组信息。
    • 维护窗口:托管节点池必须设置维护窗口。更多信息,请参见设置维护窗口
  7. 单击确认配置
    节点池页面,如果节点池状态显示初始化中,则说明节点池正在创建中。创建完成后,状态显示为已激活

设置维护窗口

维护窗口内ACK将对托管节点池进行部分自动运维。有关托管节点池自动运维的更多信息,请参见托管节点池概述

  1. 登录容器服务管理控制台
  2. 在控制台左侧导航栏中,单击集群
  3. 集群列表页面中,单击目标集群名称或者目标集群右侧操作列下的详情
  4. 在集群管理页左侧导航栏中,选择节点管理 > 节点池
  5. 节点池页面右上角,单击创建托管节点池
    对于已创建的托管节点池,可单击操作列下的编辑
  6. 创建托管节点池或编辑托管节点池对话框,单击维护窗口的设置
    维护窗口.png
  7. 维护窗口对话框,选择维护的周期时间。

您也可以在集群信息页面的基本信息页签下方集群维护区域,查看、开启、修改或关闭维护窗口。关于集群信息页面的具体操作,请参见查看集群信息

升级托管节点池

当托管节点池有可升级的操作系统时,您可以升级托管节点池。

  1. 登录容器服务管理控制台
  2. 在控制台左侧导航栏中,单击集群
  3. 集群列表页面中,单击目标集群名称或者目标集群右侧操作列下的详情
  4. 在集群管理页左侧导航栏中,选择节点管理 > 节点池
  5. 在目标节点池右侧的操作列下,单击升级
  6. 升级节点池对话框中,设置以下参数。
    参数 描述
    升级版本 默认选中系统镜像容器运行时
    • 系统镜像:选中后,升级节点池中的所有节点的系统镜像至新版本。
    • 容器运行时:选中后,升级节点池中的所有节点的容器运行时至新版本。
    最大不可用节点数 表示最多处于不可用状态的节点数。
    额外节点数 表示升级节点池前,集群会自动扩容相应数量的节点,待升级完成后自动删除这几个节点。目的是保证升级的过程中有足够的节点供排水使用。
    说明 最大不可用节点数额外节点数之和等于最大可以并行升级的数量。

调整期望节点数

节点池期望节点数是指节点池应该维持的节点数量。在指定节点池的期望节点数后,节点池会自动触发扩容或缩容,将节点数目维持在期望数量,无须人工干预,具体伸缩规则请参见期望实例数变化规则

开启或未开启期望节点数的节点池对于移除节点、释放ECS等不同的操作方式,会有不同感知。具体信息,请参见开启期望节点数与未开启期望节点数的节点池有什么不同?

您可以通过调整期望节点数,达到扩容或缩容节点池的目的,具体操作如下:
  • 通过期望节点数扩容节点:设定期望节点数大于当前节点池的节点数,系统将触发节点池扩容。推荐您通过增大期望节点数的方式进行扩容。这样在出现手动添加节点失败的情况下,系统也会自动进行重试以使得节点池现有节点数满足期望节点数。
  • 通过期望节点数缩容节点:设定期望节点数小于当前节点池的节点数,系统将触发节点池的缩容并移除节点。
    重要
    • 如果您没有通过容器服务控制台,而是直接在ECS或者ESS控制台(或相关API)主动释放节点、移除实例,或者因包年包月到期而被动释放节点,节点池为将节点个数维持在期望节点数,会根据相应节点池配置自动扩容到期望节点数。因此,如您需要更改节点池节点数,请通过调整期望节点数,或者移除节点来更改。关于移除节点的具体操作,请参见移除节点
    • 通过期望节点数缩容节点,即使节点排水失败,节点仍会被移除。对节点排水有强需求的请使用指定节点移除,具体操作,请参见移除节点
  1. 登录容器服务管理控制台
  2. 在控制台左侧导航栏中,单击集群
  3. 集群列表页面中,单击目标集群名称或者目标集群右侧操作列下的详情
  4. 在集群管理页左侧导航栏中,选择节点管理 > 节点池
  5. 在目标节点池右侧的操作列中,单击扩缩容
  6. 授权CS获取云资源的权限。
    1. 单击AliyunOOSLifecycleHook4CSRole
      说明
      • 如果当前账号是阿里云账号(主账号),单击AliyunOOSLifecycleHook4CSRole即可授权。
      • 如果当前账号是RAM用户(子账号),请先确保阿里云账号(主账号)已授权AliyunOOSLifecycleHook4CSRole, 并给RAM用户(子账号)授权AliyunRAMReadOnlyAccess。具体操作,请参见配置RAM用户或RAM角色RBAC权限
    2. 云资源访问授权页面,单击同意授权
  7. 在节点池对话框的期望节点数中,输入期望的节点数量,然后单击确认
    说明 如果您需要修改节点池配置,展开修改节点池配置。关于参数的详细信息,请参见创建托管节点池
    • 节点池页面,如果节点池状态显示扩容中,则说明节点池正在扩容中。扩容完成后,状态显示为已激活
    • 节点池页面,如果节点池状态显示移除节点中,则说明节点池正在缩容中。移除节点完成后,状态显示为已激活

克隆托管节点池

通过节点池的克隆功能,您可以基于已有的节点池,克隆一个具有相同配置的节点池。

  1. 在目标节点池右侧的操作列中,单击克隆
  2. 在克隆节点池对话框中,输入新克隆节点池的名称并设置相关参数,单击提交
    节点池页面,节点池的状态刚开始显示为初始化中。克隆完成后,状态会显示为已激活

删除托管节点池

为了防止误删除导致业务中断,删除节点池前需要清空节点池中的节点。

  1. 在节点池列表页面,单击目标节点池名称。
  2. 节点配置区域的节点管理页签中,选中所有节点,单击移除节点
  3. 可选:移除节点对话框中,可选中同时释放ECS自动排空节点(drain)
    • 同时释放ECS
      • 仅释放按量付费类型的ECS实例,不被释放的ECS会继续收费。
      • 对于预付费ECS实例,计费周期到期后,ECS实例会自动释放。
      • 您也可以在ECS实例到期前:
      • 若不选择同时释放ECS,该节点所在的ECS实例会继续计费。
    • 自动排空节点(drain):把待移除节点上的Pod转移到其他节点。请确保集群其他节点的资源充足。
      您还可以通过执行命令kubectl drain node-name [options]的方式把待移除节点上的Pod转移到其他节点。
      说明
      • node-name格式为your-region-name.node-id

        your-region-name为您集群所在的地域名称。node-id为待移除节点所在的ECS实例ID。例如,cn-hangzhou.i-xxx

      • options为该命令的可选配置参数。例如,可配置为--force --ignore-daemonsets --delete-local-data。更多信息,请执行命令kubectl drain --help查看。
  4. 返回节点池列表页面,在目标节点池右侧的操作列中,单击删除
  5. 节点池删除对话框中,单击确定

开启和关闭托管节点池

您可以通过开启节点池的托管功能将默认节点池、自定义节点池、弹性伸缩节点池(开启自动伸缩的自定义节点池)转换成托管节点池,也可以关闭托管节点池的托管功能。开启和关闭托管节点池操作如下。

  1. 登录容器服务管理控制台
  2. 在控制台左侧导航栏中,单击集群
  3. 集群列表页面中,单击目标集群名称或者目标集群右侧操作列下的详情
  4. 在集群管理页左侧导航栏中,选择节点管理 > 节点池
  5. 在目标节点池右侧的操作列中,进行以下操作。
    • 单击开启托管将节点池转换成托管节点池。
    • 单击关闭托管将托管节点池转换成其他类型节点池。

      关闭托管节点池的托管功能后,原本就是托管节点池类型的托管节点池将被转换成自定义节点池,由其他类型节点池转换成托管节点池类型的托管节点池将被转换成其原本的节点池类型。例如,默认节点池开启托管功能转换成托管节点池后,然后再关闭托管功能,托管节点池将被转换成默认节点池。