如需将购买的ECS实例添加到ACK集群中作为Worker节点,或将移除的Worker节点重新加入节点池,您可以在容器服务管理控制台自动添加或手动添加节点。添加后,节点将默认使用节点池的配置,并在节点池维度进行统一管理。
使用限制
实例规格限制
限制项 | 说明 | 推荐解决方案 |
神龙裸金属GPU实例 | 神龙裸金属GPU实例(ECS规格族为ebmgn7、ebmgn7e)不支持自动MIG清理。因此,ACK添加该类型的节点时会重置已有的MIG设置。由于重置时间不定,可能会出现重置时间过长导致自动添加节点失败。 | 排查失败原因,请参见裸金属实例节点添加失败怎么办?。 |
配额限制
限制项 | 说明 | 推荐解决方案 |
节点配额 | 需确保您的集群节点配额充足。关于ACK集群的配额限制,请参见配额与限制。 | 如需添加更多节点,前往配额中心调整。 |
ECS实例限制
限制项 | 说明 | 推荐解决方案 |
所属账号、地域、VPC | 仅支持添加同一账号下的ECS实例,且添加的ECS实例必须与集群在同一地域、同一VPC下。 | 重新创建符合要求的ECS实例或集群。 |
所属集群 | 不支持添加已属于其他集群的ECS实例。 | 如ECS实例已属于其他集群,请先将该节点移除出旧集群,再将节点添加到目标集群中。移除方式,请参见移除节点。 |
网络限制
限制项 | 说明 | 推荐解决方案 |
Terway网络插件 | 对待添加的ECS实例机型支持的最大Pod数有如下限制。
需要注意的是,不同弹性网卡模式支持的最大Pod数取决于该云服务器机型所支持的最大的弹性网卡(ENI)数。关于如何计算不同弹性网卡模式支持的最大Pod数,请参见使用Terway网络插件;关于如何查看实例规格支持的Pod数量,请参见使用Terway网络插件。 | |
对弹性网卡有如下限制。 | ||
当添加的节点包含新增可用区时,您需要为Terway更新vSwitch配置,否则Pod IP将从节点主网卡对应的vSwitch分配。 | ||
当添加已有节点到节点池时,已有节点上已经绑定的弹性网卡(ENI)会继续保留,Pod IP会从已经绑定的弹性网卡所关联的vSwitch上分配。请确保添加的节点中弹性网卡只包含一个主网卡。 | 如果有Pod IP不属于您配置的vSwitch,请在集群中移除节点,删除除主网卡外的辅助网卡,再重新加入集群。 | |
当添加已有节点到节点池时,需确保目标ECS实例已绑定集群RAM Role,避免因权限问题无法正确计算MaxPod(节点最大可用Pod数),继而导致弹性网卡数量计算错误。 | ||
Flannel网络插件 | 对集群VPC下的系统路由表自定义路由条目数量存在限制,不能超过每个路由表中可保有的自定义路由条目配额,自定义路由条目的相关信息,请参见路由表。 | 在配额中心调整。 |
IPv6双栈 | 需要为ECS主网卡分配一个IPv6地址。 | 关于如何为ECS主网卡分配IPv6地址,IPv6通信。 |
安全组限制
限制项 | 说明 | 推荐解决方案 |
安全组类型 | 添加已有ECS实例到节点池时,会将ECS实例加入到节点池安全组中。由于ECS的限制,ECS实例无法同时加入普通安全组和企业安全组。因此,ECS实例已加入的安全组类型必须与节点池安全组类型相同。 您可以单击目标节点池后面的详情,在基本信息页签中查看节点池的安全组信息;可以登录ECS控制台查看ECS实例已加入的安全组信息。关于安全组的详细信息,请参见安全组概述。 | 节点池的安全组不支持修改,安全组的类型也不允许变更。如遇冲突,请通过以下方式解决。
|
安全组规则 | ECS实例已有安全组规则不能与即将加入的节点池安全组以及集群安全组规则冲突。 | 提前将已有节点加入到节点池安全组中。 通过安全组规则检测功能,检测节点池安全组中的每一条规则。安全组规则检测的详细操作步骤,请参见安全组规则检测。 |
安全组数量 | 添加已有ECS实例到节点池时,会将实例加入到节点池安全组中,需要保证ECS实例加入的安全组数量未超过限制(默认5个)。 | 关于安全组的数量限制以及如何申请提升ECS实例能够加入的安全组数量,请参见安全组。 |
注意事项
实例释放
添加到节点池的ECS实例不会随集群或节点池的删除而释放,需手动移除。如需手动移除,请参见移除节点。
相关计费
添加到集群中的ECS实例不会随集群或节点池的删除而释放。请您关注ECS计费状态,避免产生额外费用。更多信息,请参见计费概述。
节点池和实例配置
向节点池中添加已有ECS实例时,其付费类型和规格保持不变。
本功能不支持开启自动伸缩的节点池,即扩缩容模式配置为自动的节点池。
操作系统与云盘
强烈建议您在操作前做好相关备份,以免数据丢失造成损失。具体操作,请参见创建快照。
自动添加节点会根据节点池当前的操作系统重置该节点原有的操作系统;手动添加节点会保留节点原有操作系统。如需保留节点原操作系统,请手动添加节点。
自动添加节点时,原系统盘会被释放,数据盘不会被释放,但数据盘磁盘ID会发生变更,其中存储的数据不受影响。
自动添加节点时,原系统盘的用户快照会保留,自动快照则根据该系统盘属性值“自动快照是否随磁盘释放”的选项来判断是保留还是随磁盘删除。您可以登录ECS管理控制台,在磁盘列表单击修改属性,查看或修改属性值。
为确保快照额度充足,以顺利完成周期性的自动快照策略,您可以删除无需使用的用户快照和自动快照。
自动或手动添加节点
自动或手动添加并不影响您集群已有的节点和应用的运行。为避免兼容性问题,不建议您将已创建服务的ECS实例初始化为Worker节点。
自动添加节点:会根据节点池当前的操作系统重置该节点原有的操作系统。如果不希望重置节点操作系统,请使用手动方式添加节点。
手动添加节点:会保留节点原有操作系统,即不重置操作系统。手动添加节点前,除使用限制外,还需关注如下限制。
不支持添加操作系统类型为ContainerOS的ECS实例。
操作系统不支持启用Swap。
如果将容器和镜像存储在数据盘,则仅支持ext和xfs文件系统。
登录容器服务管理控制台,在左侧导航栏选择集群列表。
在集群列表页面,单击目标集群名称,然后在左侧导航栏,选择 。
在节点池页面,单击目标节点池右侧操作列下的
,然后单击添加已有节点。
手动添加节点
需获取安装命令,登录到对应的ECS云服务器上进行安装。每次只能添加一个ECS云服务器。
在选择已有云服务器实例配置项页面,选择添加方式为手动添加,在已有云服务器的列表,选择所需的ECS云服务器,然后单击下一步。
在填写实例信息页面,填写相关信息,然后单击下一步。
配置项
说明
集群ID/名称
当前要添加的集群信息,已默认配置。
数据盘挂载
设置是否将容器和镜像存储在数据盘。
如果ECS已挂载数据盘,且最后一块数据盘的文件系统未初始化,系统会自动将最后一块数据盘格式化为ext4,用于存放内容/var/lib/docker、/var/lib/kubelet(分别为Docker容器运行时和kubelet组件默认对应的数据目录)。
重要被格式化的数据盘内原有数据将会丢失,请提前备份数据。
如果ECS未挂载数据盘,则不会自动挂载新的数据盘。
保留实例名称
添加节点时,默认开启保留实例名称。如果您不需要保留实例名称,您可以关闭保留实例名称,此时会按照自定义节点名称指定的规则来重命名节点。
实例信息
待添加云服务器实例的实例ID及名称。
在添加完成页面,复制执行命令,供下文远程连接ECS实例使用,然后单击完成。
登录ECS管理控制台,单击左侧导航栏中的实例与镜像实例,选择集群所在的地域,选择需要添加的ECS实例。
单击ECS实例右侧的远程连接。在远程连接与命令对话框,选择远程连接方式后进入ECS远程连接界面。
关于远程连接方式介绍,请参见ECS远程连接方式概述。
在ECS实例远程连接界面,根据页面指导,输入此前保存的命令,单击执行开始执行脚本。
脚本执行成功后,该云服务器添加成功。
成功添加后,您可以在节点池页面的操作列单击目标节点池右侧的详情,然后在节点管理页签查看添加的节点信息。
自动添加节点
会列出当前账号下可用的ECS实例,在控制台界面进行安装部署,并自动添加到集群。
在选择已有云服务器实例配置向导页面,选择添加方式为自动添加,在已有云服务器的列表中,选择所需的ECS云服务器,然后单击下一步。
在填写实例信息页面,填写相关信息,然后单击下一步。
配置项
说明
集群ID/名称
当前要添加的集群信息,已默认配置。
数据盘挂载
设置是否将容器和镜像存储在数据盘。
如果ECS已挂载数据盘,且最后一块数据盘的文件系统未初始化,系统会自动将最后一块数据盘格式化为ext4,用于存放内容/var/lib/docker、/var/lib/kubelet(分别为Docker容器运行时和kubelet组件默认对应的数据目录)。
重要被格式化的数据盘内原有数据将会丢失,请提前备份数据。
如果ECS未挂载数据盘,则不会自动挂载新的数据盘。
保留实例名称
添加节点时,默认开启保留实例名称。如果您不需要保留实例名称,您可以关闭保留实例名称,此时会按照自定义节点名称指定的规则来重命名节点。
实例信息
待添加云服务器实例的实例ID及名称。
在添加已有实例到集群对话框,仔细阅读注意事项,然后单击确定。
成功添加后,您可以在节点池页面的操作列单击目标节点池右侧的详情,然后在节点管理页签查看添加的节点信息。
常见问题
ECS实例加入集群后,后续ECS升降配是否会对集群业务产生影响?
ECS升降配通常包含修改实例规格、修改公网带宽计费方式、修改公网带宽、修改数据盘计费方式等,详情请参见升降配方式概述。不同的升降配方式对于ECS实例的影响不同。
添加已有节点后报错,提示timeout,怎么办?
请排查节点与API Server CLB的网络是否可以连通,请先排查安全组是否符合要求。添加已有节点时安全组的使用限制,请参见安全组限制。关于网络不通的其他问题,请参见网络管理FAQ。
我可以将不同规格的已有节点添加到ACK集群中吗?
可以。您可以在节点池中指定多个实例规格,避免由于实例规格不可用或库存不足,导致节点池弹出节点失败。流程如下。
如何跨ACK集群移动节点?
ACK不支持直接跨集群移动节点,但您可以通过添加已有节点的方式来完成。流程如下。
添加已有节点后,节点池的期望节点数会自动变化吗?
添加已有节点后,期望节点数会自动增加添加节点的数量。例如,您节点池配置的期望节点数为5,此时通过添加已有节点的方式在节点池中增加了1台ECS实例,那么节点池的期望节点数会自动变为6。
相关文档
除控制台外,您还可以通过OpenAPI(手动添加已有实例至节点池)、CLI(添加已有ECS实例)将ECS实例添加至ACK集群。
节点池功能上线前的老集群中可能存在游离节点(不属于任何节点池的集群节点),请参见迁移游离节点至节点池将其纳入节点池进行统一管理。