更新时间:2024-12-04 GMT+08:00

更新节点池

约束与限制

  • 仅v1.19及以上版本的集群支持修改容器引擎、操作系统、系统盘/数据盘大小、数据盘空间分配、安装前/后执行脚本配置。
  • 修改节点池、容器引擎、操作系统、安装前/后执行脚本时,修改后的配置仅对新增节点生效,存量节点如需同步配置,需要手动重置存量节点。
  • 修改节点池系统盘/数据盘大小、数据盘空间分配则仅对新增节点生效,即使重置存量节点也无法同步配置。
  • 修改K8s标签和污点数据会根据“存量节点标签及污点”开关状态决定是否自动同步已有节点,无需重置节点。

更新节点池

  1. 登录CCE控制台。
  2. 单击集群名称进入集群,在左侧选择“节点管理”,在右侧选择“节点池”页签。
  3. 单击节点池名称后的“更新”,在弹出的“更新节点池”页面中配置参数。

    基础配置
    表1 基础配置

    参数

    参数说明

    节点池名称

    自定义节点池名称。

    期望节点数量

    请根据业务需求调整节点个数。

    节点配置
    表2 节点配置参数

    参数

    参数说明

    容器引擎

    CCE支持Docker和Containerd容器引擎,不同的集群类型、集群版本、操作系统可能导致支持的容器引擎类型不同,请根据控制台呈现进行选择。具体场景请参见节点操作系统与容器引擎对应关系

    说明:

    修改“容器引擎”配置后,对新增的节点自动生效,存量节点需要手动重置节点后生效。

    操作系统

    选择操作系统类型,不同类型节点支持的操作系统有所不同。
    • 公共镜像:请选择节点对应的操作系统。
    • 私有镜像:支持使用私有镜像。
    说明:
    • 由于业务容器运行时共享节点的内核及底层调用,为保证兼容性,建议节点的操作系统选择与最终业务容器镜像相同或接近的Linux发行版本。
    • 修改“操作系统”配置后,对新增的节点自动生效,存量节点需要手动重置节点后生效。
    存储配置
    表3 存储配置参数

    参数

    参数说明

    系统盘

    节点云服务器使用的系统盘,供操作系统使用。您可以设置系统盘的规格为40GB-1024GB之间的数值,缺省值为50GB。

    说明:

    修改系统盘“规格”配置时,仅对新增节点生效,存量节点即使重置也无法同步配置。

    数据盘

    至少需要一块数据盘,供容器运行时和Kubelet组件使用,该数据盘不能被删除卸载,否则会导致节点不可用。

    • 第一块数据盘:供容器运行时和Kubelet组件使用。您可以自行设置数据盘的规格为20GB-32768GB之间的数值,缺省值为100GB。
    • 其他数据盘,您可以设置数据盘的规格为10GB-32768GB之间的数值,缺省值为100GB。
    说明:

    修改数据盘“规格”配置时,仅对新增节点生效,存量节点即使重置也无法同步配置。

    高级配置

    单击后方的“展开高级设置”可进行如下设置:

    • 数据盘空间分配:对数据盘上存在的容器引擎、镜像、临时存储等进行空间划分,避免因磁盘空间不足导致业务异常。数据盘空间分配详细说明请参见数据盘空间分配说明
      说明:

      修改“数据盘空间分配”配置时,仅对新增节点生效,存量节点即使重置也无法同步配置。

    增加数据盘

    最多可以添加4个,默认情况直接创建为裸盘,不做任何处理。您也可以展开高级配置,选择如下配置。

    • 默认:默认情况直接创建为裸盘,不做任何处理。
    • 挂载到指定目录:将数据盘挂载到指定目录。
    • 作为持久存储卷:适用于对PV有性能要求的场景。持久存储卷的节点会添加上node.kubernetes.io/local-storage-persistent标签,取值为linear或striped。
    • 作为临时存储卷:适用于对EmptyDir有性能要求的场景。

    本地盘说明

    节点规格为“磁盘增强型”或“超高I/O型”时,有一块数据盘可以是本地盘。

    本地磁盘实例有宕机风险,不保证数据可靠性,建议您使用云硬盘存储您的业务数据。

    高级配置
    表4 高级配置

    参数

    参数说明

    K8S标签(Labels)

    设置附加到Kubernetes对象(比如Pod)上的键值对,填写键值对后,单击“确认添加”。最多可以添加20条标签。

    使用该标签可区分不同节点,可结合工作负载的亲和能力实现容器Pod调度到指定节点的功能。详细请参见Labels and Selectors

    说明:

    修改“K8s标签”后,对新增的节点自动生效,节点池下的存量节点会根据“存量节点标签及污点”开关状态决定是否同步更新。

    K8S污点(Taints)

    默认为空。支持给节点加污点来设置反亲和性,每个节点最多配置20条污点,每条污点包含以下3个参数:
    • Key:必须以字母或数字开头,可以包含字母、数字、连字符、下划线和点,最长63个字符;另外可以使用DNS子域作为前缀。
    • Value:必须以字符或数字开头,可以包含字母、数字、连字符、下划线和点,最长63个字符。
    • Effect:只可选NoSchedule,PreferNoSchedule或NoExecute。

    污点的使用请参见管理节点污点(Taint)

    说明:

    修改“污点(Taints)”后,对新增的节点自动生效,节点池下的存量节点会根据“存量节点标签及污点”开关状态决定是否同步更新。

    存量节点标签及污点

    勾选后,更新节点池的K8s标签及污点时,会将节点池配置中的K8s标签或污点修改同步至节点池中已有的节点。

    说明:

    节点池更新时,如果修改“同步K8s标签”“同步污点”开关状态,需要注意以下事项:

    • 开关状态从“同步”更改为“不同步”时,可能会出现节点池中的新旧节点标签或污点不一致的情况。当业务调度依赖节点标签或污点时,可能会出现调度失败或节点池弹性扩容能力失效。
    • 开关状态从“不同步”更改为“同步”时:
      • 如果在未开启同步时用户修改新增了节点池配置中的标签或污点,重新开启同步后,配置会在一定时间内(一般为10分钟内)自动同步到存量节点上。
      • 如果在未开启同步时用户删除了节点池配置中的标签或污点,重新开启同步后,需要前往节点列表界面手动删除节点已有的标签或污点。
      • 如果在未开启同步时对已有节点的污点手动修改key或effect,在开启同步后,会在已有节点上增加一个全新的污点(key不同但value和effect相同或effect不同但key和value相同)。这是由于K8s污点原生逻辑使用key和effect作为一组匹配键值,即key或effect不同的污点会被认为是两个污点。

    新增节点调度策略

    节点池中新增节点的默认调度策略。勾选“设置为不可调度”之后,该节点池新增的节点在创建完成之后均会被打上不可调度的标签。以方便用户在工作负载被调度到节点上之前,对节点进行一些操作。

    定时开启调度时间:若设置定时开启调度功能,在超过自定义时间后,节点将会自动开启调度。

    • 不设置:默认情况下,将不设置超时时间,此时节点需要您前往“节点管理”界面,手动选择节点开启调度,详情请参见一键设置节点调度策略
    • 自定义:该参数可配置节点不可调度的默认超时时间,取值范围为0-99min。
    说明:
    • 如果需要同时使用节点池的自动扩缩容能力,定时开启调度时间应小于15min。因为通过autoscaler扩容的节点如果处于不可调度状态超过15min,autoscaler会认为本次扩容失败,触发再次扩容。同时,原节点处于不可调度状态超过20min,节点将被列入缩容备选节点,被autoscaler缩容。
    • 开启该开关后,节点池的创建/更新过程中,节点会被打上node.cloudprovider.kubernetes.io/uninitialized的污点。

    编辑密钥对

    仅使用密钥对登录的节点池支持编辑,您可重新选择一个密钥对。

    说明:

    编辑密钥对后,对新增的节点自动生效,存量节点需要手动重置节点后生效。

    安装前执行脚本

    请输入脚本命令,命令中不能包含中文字符。脚本命令会进行Base64转码。

    脚本将在Kubernetes软件安装前执行,可能导致Kubernetes软件无法正常安装,需谨慎使用。

    说明:

    修改“安装前执行脚本”后,对新增的节点自动生效,存量节点需要手动重置节点后生效。

    安装后执行脚本

    请输入脚本命令,命令中不能包含中文字符。脚本命令会进行Base64转码。

    脚本将在Kubernetes软件安装后执行,不影响Kubernetes软件安装。

    说明:

    修改“安装后执行脚本”后,对新增的节点自动生效,存量节点需要手动重置节点后生效。

  4. 配置完成后,单击“确定”

    节点池参数更新后,前往“节点管理”页面,可查看节点池所属节点存在更新,可通过重置节点同步节点配置,与节点池配置保持一致。