云服务器内容精选

  • 请求示例 创建节点池。 POST https://{endpoint}/v2/{project_id}/pools/{pool_name}/nodepools { "kind" : "NodePool", "apiVersion" : "v2", "metadata" : { "name" : "nodepool-1", "annotations" : { } }, "spec" : { "resources" : { "nodePool" : "nodepool-1", "flavor" : "modelarts.vm.2u4g.dcc", "count" : 1, "maxCount" : 1, "network" : { "vpc" : "277e9abc-0e6b-431a-9232-cfd25d5fc566", "subnet" : "03796378-c356-4c14-826b-e4913aa9c8b9", "securityGroups" : [ "0a15b48d-06f1-41e4-b782-ade90087bf59" ] } } } }
  • 响应示例 状态码: 200 OK。 { "kind" : "NodePool", "apiVersion" : "v2", "metadata" : { "name" : "nodepool-1", "annotations" : { } }, "spec" : { "resources" : { "nodePool" : "nodepool-1", "flavor" : "modelarts.vm.2u4g.dcc", "count" : 1, "maxCount" : 1, "network" : { "vpc" : "277e9abc-0e6b-431a-9232-cfd25d5fc566", "subnet" : "03796378-c356-4c14-826b-e4913aa9c8b9", "securityGroups" : [ "0a15b48d-06f1-41e4-b782-ade90087bf59" ] } } } } 状态码: 400 Bad request { "error_code" : "ModelArts.50004000", "error_msg" : "Bad request." }
  • minNodeCount~maxNodeCount 弹性伸缩时节点池下的节点数量会始终介于节点数范围内 节点池弹性伸缩上下限。 当节点池中节点数大于等于上限时,将不会触发弹性扩容节点;当节点池中节点数小于等于下限时,将不会触发弹性缩容节点。 参数名 取值范围 默认值 是否允许修改 作用范围 .spec.autoscaling.minNodeCount.maxNodeCount 大于等于0 0~10(Console) 允许 CCE Standard/ CCE Turbo 弹性伸缩场景配置,由autoscaler解析并限制客户端弹性伸缩决策。 此配置主要用于限制节点池弹性伸缩行为,避免超过预期规模的弹性伸缩行为。 配置建议: 节点池手动扩缩容时,建议联动调整相关上下限。 如节点池期望节点数超过此上下限,部分存量老版本autoscaler插件弹性伸缩功能将异常阻塞。最新插件版本不涉及此风险。
  • 节点池单节点缩容冷却时间 节点池开启弹性伸缩后,新扩容的节点创建完成后,在配置的单节点缩容冷却时间内将不会被评估为待缩容节点。 参数名 取值范围 默认值 是否允许修改 作用范围 .spec.autoscaling.scaleDownCooldownTime 大于等于0 0 允许 CCE Standard/CCE Turbo 弹性伸缩场景配置,由autoscaler解析并限制客户端弹性伸缩决策。 配置建议: 如果业务运行时间短且弹性扩容节点呈现分批规律,推荐配置合理缩容冷却时间,避免新扩容节点快速消费完前一批业务,在一批业务下发前由于低资源分配率被缩容,而影响业务整体执行耗时、资源冗余成本。
  • 节点池弹性扩缩容开关 节点池启用弹性扩缩容后,autoscaler插件将基于上下限、缩容冷却时间、节点池扩容优先级、 参数名 取值范围 默认值 是否允许修改 作用范围 .spec.autoscaling.enable TRUE/FALSE false 允许 CCE Standard/CCE Turbo 弹性伸缩场景配置,由autoscaler解析并限制客户端弹性伸缩决策。 开关启用时,相关弹性伸缩配置才生效。 通过Console或者API直接扩缩节点池时不受相关参数约束
  • 节点池优先级。 节点池弹性扩容的优先级。 数值越大节点池优先级越高。 参数名 取值范围 默认值 是否允许修改 作用范围 .spec.autoscaling.priority 大于等于0 0 允许 CCE Standard/CCE Turbo 弹性伸缩场景配置,由autoscaler解析并限制客户端弹性伸缩决策。 配置建议: autoscaler弹性扩容决策时,基于默认策略将优先选择高优先级节点池扩容;如存在同优先级节点池,则逐步通过最小浪费、随机选择等策略优选节点池。更多详情可参考autoscaler的expander相关参数说明。
  • 约束与限制 仅v1.19及以上版本的集群支持修改容器引擎、操作系统、系统盘/数据盘大小、数据盘空间分配、安装前/后执行脚本配置。 修改节点池资源标签、容器引擎、操作系统、安装前/后执行脚本时,修改后的配置仅对新增节点生效,存量节点如需同步配置,需要手动重置存量节点。 修改节点池系统盘/数据盘大小、数据盘空间分配则仅对新增节点生效,即使重置存量节点也无法同步配置。 修改K8s标签和污点数据会根据“存量节点标签及污点”开关状态决定是否自动同步已有节点,无需重置节点。
  • 注意事项 该操作会通过重置节点的方式升级操作系统,节点上已运行的工作负载业务可能会由于单实例部署、可调度资源不足等原因产生中断,请您合理评估升级风险,并挑选业务低峰期进行,或对关键业务应用设置PDB策略(Pod Disruption Budget,即干扰预算),升级过程中将严格根据PDB规则保障关键业务的可用性。 节点的系统盘和数据盘将会被清空,重置前请事先备份重要数据。 节点重置会清除用户单独添加的K8S标签和K8S污点,可能导致与节点有绑定关系的资源(本地存储,指定调度节点的负载等)无法正常使用。请谨慎操作,避免对运行中的业务造成影响。 升级操作完成后,节点将会自动开机。 为确保节点稳定性,系统会预留部分CPU和内存资源,用于运行必须的系统组件。
  • 默认节点池 登录CCE控制台。 单击集群名称进入集群,在左侧选择“节点管理”,在右侧选择“节点池”页签。 单击默认节点池名称后的“升级”。 在弹出的“升级操作系统”窗口中,设置升级参数。 目标操作系统:该项无需设置,用于展示目标版本的镜像信息。 升级方式:当前支持节点重置方式进行升级。 每批最大升级节点数:节点升级时,允许节点不可用的最大数量。节点重置方式进行同步时节点将不可用,请合理设置该参数,尽量避免出现集群节点不可用数量过多导致Pod无法调度的情况。 节点列表:选择需要升级的节点。 登录方式: 密码 用户名默认为“root”,请输入登录节点的密码,并确认密码。 登录节点时需要使用该密码,请妥善管理密码,系统无法获取您设置的密码内容。 密钥对 选择用于登录本节点的密钥对,支持选择共享密钥。 密钥对用于远程登录节点时的身份认证。若没有密钥对,可单击选项框右侧的“创建密钥对”来新建,创建密钥对操作步骤请参见创建密钥对。 安装前执行脚本: 请输入脚本命令,命令中不能包含中文字符。脚本命令会进行Base64转码。安装前/后执行脚本统一计算字符,转码后的字符总数不能超过10240。 脚本将在Kubernetes软件安装前执行,可能导致Kubernetes软件无法正常安装,需谨慎使用。 安装后执行脚本: 请输入脚本命令,命令中不能包含中文字符。脚本命令会进行Base64转码。安装前/后执行脚本统一计算字符,转码后的字符总数不能超过10240。 脚本将在Kubernetes软件安装后执行,不影响Kubernetes软件安装。 单击“确定”,即可开始操作系统滚动升级。
  • 简介 为帮助您更好地管理Kubernetes集群内的节点,云容器引擎CCE引入节点池概念。节点池是集群中具有相同配置的一组节点,一个节点池包含一个节点或多个节点。 您可以在CCE控制台创建新的自定义节点池,借助节点池基本功能方便快捷地创建、管理和销毁节点,而不会影响整个集群。新节点池中所有节点的参数和类型都彼此相同,您无法在节点池中配置单个节点,任何配置更改都会影响节点池中的所有节点。 通过节点池功能您还可以实现节点的动态扩缩容(仅按需计费的节点池支持): 当集群中出现因资源不足而无法调度的实例(Pod)时,自动触发扩容,为您减少人力成本。 当满足节点空闲等缩容条件时,自动触发缩容,为您节约资源成本。 本章节介绍节点池在云容器引擎(CCE)中的工作原理,以及如何创建和管理节点池。
  • 功能点及注意事项 功能点 功能说明 注意事项 创建节点池 新增节点池。 单个集群不建议超过100个节点池。 删除节点池 删除节点池时会先删除节点池中的节点,删除包周期节点池会先将节点迁移到默认节点池中,原有节点上的工作负载实例会自动迁移至其他节点池的可用节点。 如果工作负载实例具有特定的节点选择器,且如果集群中的其他节点均不符合标准,则工作负载实例可能仍处于无法安排的状态。 节点池开启弹性伸缩 开启弹性伸缩后,节点池将根据集群负载情况自动创建或删除节点池内的节点。 节点池中的节点建议不要放置重要数据,以防止节点被弹性缩容,数据无法恢复。 节点池关闭弹性伸缩 关闭弹性伸缩后,节点池内节点数量不随集群负载情况自动调整。 / 调整节点池大小 支持直接调整节点池内节点个数。若减小节点数量,将从现有节点池内随机缩容节点。 开启弹性伸缩后,不建议手动调整节点池大小。 调整节点池配置 可修改节点池名称、节点个数,删除或新增K8s标签、污点及资源标签。 删除或新增K8s标签和污点会对节点池内节点全部生效,可能会引起Pod重新调度,请谨慎变更。 移出节点池内节点 可以将同一个集群下某个节点池中的节点迁移到默认节点池(DefaultPool)中 暂不支持将默认节点池(DefaultPool)中的节点迁移到其他节点池中,也不支持将自定义节点池中的节点迁移到其他自定义节点池。 复制节点池 可以方便的复制现有节点池的配置,从而创建新的节点池。 / 配置Kubernetes参数 通过该功能您可以对核心组件进行深度配置。 本功能仅支持在v1.15及以上版本的集群中对节点池进行配置,v1.15以下版本不显示该功能。 默认节点池DefaultPool不支持修改该类配置。
  • 将工作负载部署到特定节点池 在定义工作负载时,您可以间接的控制将其部署在哪个节点池上。 例如,您可以通过CCE控制台工作负载页面的“调度策略”设置工作负载与节点的亲和性,强制将该工作负载部署到特定节点池上,从而实现该工作负载仅在该节点池中的节点上运行的目的。如果您需要更好地控制工作负载实例的调度位置,您可以使用调度策略(亲和与反亲和)章节中关于工作负载与节点的亲和或反亲和策略相关说明。 您也可以为容器指定资源请求,工作负载将仅在满足资源请求的节点上运行。 例如,如果工作负载定义了需要包含四个CPU的容器,则工作负载将不会选择在具有两个CPU的节点上运行。
  • 修改云服务器的数据盘 待纳管云服务器的数据盘数量、大小、类型需修改成和节点池的数据盘配置相同。 数据盘数量 更多操作指导请参见E CS 新增磁盘或ECS在线卸载磁盘。 登录ECS控制台。 单击目标云服务器名称,进入弹性云服务器详情页。 选择“云硬盘”页签。 如果待纳管节点的数据盘数量少于节点池配置中的数据盘数量,则需新增磁盘: 单击“新增磁盘”,设置新添加云硬盘的参数信息。云硬盘的参数信息配置请参考购买云硬盘。 配置新增磁盘时,磁盘规格及大小需和节点池中的磁盘配置保持一致,且高级配置中需勾选“SCSI”。 如果待纳管节点的数据盘数量多于节点池配置中的数据盘数量,则需卸载磁盘: 单击待卸载磁盘所在行的“卸载”,卸载云硬盘。 数据盘大小 更多操作指导请参见ECS扩容云硬盘。 登录ECS控制台。 单击目标云服务器名称,进入弹性云服务器详情页。 切换至“云硬盘”页签,单击待扩容云硬盘右侧的“扩容”,系统跳转至云硬盘控制台的“扩容磁盘”页面。 根据界面提示,设置“目标容量”。 设置完成后,单击“下一步”并根据界面提示完成订单提交。 数据盘类型 更多操作指导请参见变更云硬盘类型。 登录ECS控制台。 单击目标云服务器名称,进入弹性云服务器详情页。 切换至“云硬盘”页签,单击待扩容云硬盘右侧的“磁盘变配”。 根据界面提示,设置“磁盘类型”。 设置完成后,单击“提交”。
  • 排查思路 请根据节点池扩容失败的具体事件信息确定问题原因,如表1所示。 表1 节点池扩容失败 事件信息 问题原因 解决方案 ...call fsp to query keypair fail, error code : Ecs.0314, reason is : the keypair *** does not match the user_id ***... 该问题可能由以下原因引起: 创建节点池时使用的密钥对被删除。 创建节点池时使用的密钥对为私有密钥对,其他用户无法使用该密钥对创建节点。 无法获取节点池使用的密钥对 {"error":{"message":"encrypted key id [***] is invalid.","code":"Ecs.0912"}} 该问题可能由以下原因引起: 创建节点池输入的KMS密钥ID不存在。 创建节点池输入的KMS密钥ID为他人密钥,但他人未给您授权。 KMS密钥ID非法
  • 无法获取节点池使用的密钥对 当扩容节点池失败时,事件中包含Ecs.0314错误,表明无法查询到节点池使用的密钥对,导致创建云服务器失败。 ...call fsp to query keypair fail, error code : Ecs.0314, reason is : the keypair *** does not match the user_id ***... 该问题可能由以下原因引起: 原因一:创建节点池时使用的密钥对被删除。 原因二:用户使用私有密钥对创建节点池,而其他用户无法使用该私有密钥对创建节点,导致节点池扩容失败。 解决方案: 对于原因一引起的扩容失败,您可以创建一个新的密钥对,并使用该密钥对创建新的节点池。 对于原因二引起的扩容失败,该节点池只能通过私有密钥对的创建者进行扩容。您也可以使用其他密钥对创建一个新的节点池。