托管节点池具有自动升级和节点自愈能力,您无需关心节点的运维操作,从而帮助您实现统一和全托管的节点生命周期管理。本文介绍如何创建、克隆和删除托管节点池,设置节点自动升级的维护窗口时间,以及调整节点池中的节点数量。

前提条件

  • 已创建一个ACK Pro版集群,请参见创建ACK Pro版集群
  • 请确保您集群的Kubernetes版本大于1.9。

注意事项

  • 托管节点池通过替换系统盘的方式执行节点升级操作,该操作会删除节点系统盘上的数据。数据盘内的数据不受影响,请勿在系统盘上存储任何持久化数据。
  • 托管节点池在替盘升级前会执行节点下线与排水,因此会造成Pod的重启、长链接的中断。
  • 托管节点池会尝试重启故障节点来修复可能的故障,因此节点上的Pod会被重启。

创建托管节点池

  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. 升级节点池对话框中,设置以下参数。
    参数 描述
    升级版本 默认选中系统镜像容器运行时
    • 系统镜像:选中后,升级节点池中的所有节点的系统镜像至新版本。
    • 容器运行时:选中后,升级节点池中的所有节点的容器运行时至新版本。
    最大不可用节点数 表示最多处于不可用状态的节点数。
    额外节点数 表示升级节点池前,集群会自动扩容相应数量的节点,待升级完成后自动删除这几个节点。目的是保证升级的过程中有足够的节点供排水使用。
    说明 最大不可用节点数额外节点数之和等于最大可以并行升级的数量。

调整期望节点数

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

  1. 在目标节点池右侧的操作列中,单击扩缩容
  2. 授权CS获取云资源的权限。
    1. 单击AliyunOOSLifecycleHook4CSRole
      期望节点数授权.png
      说明
      • 如果当前账号是阿里云账号(主账号),单击AliyunOOSLifecycleHook4CSRole即可授权。
      • 如果当前账号是RAM用户(子账号),请先确保阿里云账号(主账号)已授权AliyunOOSLifecycleHook4CSRole, 并给RAM用户(子账号)授权AliyunRAMReadOnlyAccess。具体操作,请参见配置RAM用户RBAC权限
    2. 云资源访问授权页面,单击同意授权
  3. 在节点池对话框的期望节点数中,输入期望的节点数量,然后单击确认
    说明 如果您需要修改节点池配置,展开修改节点池配置。关于参数的详细信息,请参见创建托管节点池
    • 节点池页面,如果节点池状态显示扩容中,则说明节点池正在扩容中。扩容完成后,状态显示为已激活
    • 节点池页面,如果节点池状态显示移除节点中,则说明节点池正在缩容中。移除节点完成后,状态显示为已激活

克隆托管节点池

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

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

删除托管节点池

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

  1. 在节点池列表页面,单击目标节点池名称。
  2. 节点配置区域的节点管理页签中,选中所有节点,单击移除节点
  3. 移除节点对话框中,可选中同时释放ECS自动排空节点(drain),单击确定
    • 同时释放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. 在目标节点池右侧的操作列中,进行以下操作。
    • 单击开启托管将节点池转换成托管节点池。
    • 单击关闭托管将托管节点池转换成其他类型节点池。

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