集群中的 Worker 节点(工作节点)可为应用提供计算和存储资源,可通过添加已有云服务器的方式,为集群添加一个或多个节点。本文为您介绍添加已有节点的详细步骤和参数配置。
前提条件
- 已创建容器服务集群,操作方法,请参见 创建集群。
- 已有可添加的云服务器(ECS)实例,且云服务器实例必须与目标集群在同一个私有网络下。操作方法,请参见 购买云服务器。
注意事项
- 配置 Worker 节点前,请务必了解节点配置规则:
- 所选择的云服务器将会重装操作系统,云服务器系统盘原有的数据会被清除。
- 所选择的云服务器将会自动迁移至集群所属的项目。
- 所选择的云服务器将会重新绑定安全组。
- 如需将添加到容器服务的云服务器实例数据盘格式化并挂载到容器、镜像存储目录
/var/lib/containerd
和/var/lib/kubelet
,则必须确保该云服务器实例数据盘无数据残留,否则会添加不成功。 - 添加 弹性裸金属型 节点或部分高性能计算 GPU 型节点时,ECS 侧会对该类型实例执行强制关机。更多信息,请参见 StopInstance。
- 本文主要描述在默认节点池
vke-default-nodepool
中添加已有节点的操作。部分限定条件的自定义节点池,也支持添加已有节点。详情请参见 管理节点池。
集群首次添加已有节点
集群首次添加已有节点时,需要配置纳管此节点(云服务器实例)的节点池。节点池名称由容器服务指定,名为vke-default-nodepool
,添加完成节点后,可在 节点池 页面查看。vke-default-nodepool
的其他参数配置,需要您根据下方操作提示,自定义设置。
说明
vke-default-nodepool
被创建后,会作为该集群的默认节点池。后续该集群中添加的已有节点,都会被纳管到vke-default-nodepool
节点池中。- 默认节点池不会占用您的节点池配额。配额详情,请参见 使用限制。
- 登录 容器服务控制台。
- 在容器服务的左侧导航栏,选择 集群。
- 在集群列表,单击需要添加节点的目标集群名称。
- 在集群管理页面的左侧导航栏,选择 节点管理 > 节点。
- 在 节点 页面单击 添加已有节点。
- 根据如下参数说明,配置节点参数。
- 云服务器选择
配置项 | 说明 |
---|
全部服务器 | 显示您账号下本地域中,与当前集群在同一个私有网络下的所有云服务器实例。请根据您的需求,勾选目标云服务器实例。 |
已选服务器 | 显示您已选中的云服务器实例。 |
保留云服务器实例名称 | - 勾选表示:将云服务器实例添加到集群后,保留原来的名称。
说明 保留的云服务器实例名称中若有中文字符,则该节点的cluster.vke.volcengine.com/node-name 系统标签为无效标签。因此在后续该节点的亲和调度中等场景中,请使用其他标签,避免使用cluster.vke.volcengine.com/node-name 标签。 - 不勾选表示:容器服务将云服务器实例添加到集群后重新命名。
|
数据盘挂载 | - 勾选表示:将数据盘格式化并挂载到容器、镜像存储目录
/var/lib/containerd 和/var/lib/kubelet ,同时需要设置 设备名称,指定数据盘设备。您可以自行填写数据盘设备名,如/dev/vdb ;也可自行填写数据盘的分区名,如/dev/vdb1 。注意 - 若勾选,请确保已选择添加到集群的云服务器实例的数据盘无数据残留,否则会添加已有节点失败。清理数据盘数据残留的操作,请参见 FAQ。
- 该功能适用于 v1.20.15-vke.4 及以上 Kubernetes 版本的集群。低版本集群数据盘仅针对
/var/lib/containerd 目录进行挂载。
- 不勾选表示:(默认)将
/var/lib/containerd 和/var/lib/kubelet 目录挂载到系统盘操作系统所在分区中。
|
系统镜像 | 根据实际情况,选择节点使用的系统镜像,包括:公共镜像、自定义镜像、共享镜像。 公共镜像:火山引擎官方提供的正版版权镜像,包含基础操作系统和火山引擎提供的初始化组件,安全稳定性高且所有用户均可使用。 容器服务支持的公共镜像及其关联的规格族参见:容器服务支持的公共镜像。 自定义镜像:【邀测·申请试用】用户自行制作并上传的镜像,除操作系统外,还可以预装公共应用或私有应用,具有更高的定制化性,适用于需要重新部署复杂初始化系统或多次部署同样配置的场景。 容器服务支持自定义镜像作为节点操作系统,更多详细介绍参见:如何打包和使用自定义镜像? 共享镜像:其他火山引擎账户共享的镜像,可使用共享镜像快速部署与其他用户已创建节点相同的软件环境,也可以将自己创建或上传的自定义镜像共享给其他火山引擎账户使用。
|
重启安装批量作业 Agent | 默认安装 Agent,不支持修改。使用 Agent 进行节点管理,方便节点的故障监测和自愈。 |
ECS 实例标签 | 容器服务为添加到集群的 ECS 实例绑定火山引擎平台标签,用于搜索、管理 ECS 实例。 单击 添加标签,根据界面提示输入 键 和 值。 |
- 安全配置
配置项 | 说明 |
---|
安全组 | 为保证集群和节点本身功能的正常运作,容器服务默认提供一个安全组。 若需要添加自定义安全组规则,请勿与集群默认安全组规则冲突。集群默认安全组相关说明,请参见 集群默认安全组。 |
登录方式 | 配置节点登录方式,以确保容器服务集群内节点可以登录。 - 密码:使用 root 用户登录认证,需配置 root 密码并二次确认。
- SSH 密钥对:一种安全的登录认证方式,包括公钥和私钥,仅支持 Linux 实例。若无可用 SSH 密钥对,请单击 创建密钥对 创建。密钥对相关介绍和创建操作,请参见 密钥对。
说明 在 系统镜像 处已重置所选云服务器的操作系统,因此需要重新设置节点登录方式。后续添加到默认节点池vke-default-nodepool 中的云服务器,都将继承该登录方式。后续您可以通过编辑默认节点池,修改登录方式。 |
安全加固 | 配置主机安全加固: - 开启:(默认)HIDS 主机防护免费提供异常登录等风险告警服务,在保证主机系统镜像兼容性的基础上,为节点(云服务器实例)提供实时监控、文件监控、进程监控、系统动态分析等安全加固功能。
- 关闭:关闭主机安全加固。
|
- 更多配置
配置项 | 说明 |
---|
节点标签(Labels) | 对应 Kubernetes 中的 Label,能够为节点定义不同的属性,方便批量筛选等需求,可为节点池中的节点批量添加相同标签。 单击 添加节点标签,根据界面提示输入 键 和 值。 |
节点污点(Taints) | 污点(Taints)能够使节点排斥某些特定的 Pod,避免 Pod 调度到该节点上,可为节点池中的节点批量添加相同污点。 单击 添加节点污点(Taints),根据界面提示输入 键 和 值。 |
节点标签及污点自动更新 | 配置节点标签和污点的自动更新功能。 - 勾选(默认):开启节点标签和污点自动更新功能。在节点池中新增或修改标签或污点,会自动更新到新建节点和存量节点。同时,修改存量节点上的标签和污点后,节点上的配置会被节点池的配置刷新。
- 取消勾选:关闭节点标签和污点自动更新功能。在节点池中新增或修改标签或污点 ,仅会同步到新建节点,不会更新到存量节点。同时,修改存量节点上的标签和污点后,存量节点上的配置以修改后的配置为准,不会被节点池的配置刷新。
注意 关闭节点标签和污点自动更新功能,可能导致某些使用固定节点标签的功能异常,请谨慎操作! |
节点池标签 | 自定义的资源标签,用于灵活管理默认节点池vke-default-nodepool 。单击 添加标签,根据界面提示输入 键 和 值。 |
- 高级配置
配置项 | 说明 |
---|
节点名称自定义 | 开启后,vke-default-nodepool 节点池中新添加的节点将自动使用此处定义的节点名称前缀。 |
节点元数据名称自定义 | 默认不开启,开启后设置 节点元数据名称前缀(metadata.name),用于在监控、告警等外部系统中标识资源。后续该节点池中新增扩容的节点将自动使用此处定义的节点元数据名称前缀。 |
镜像懒加载 | 【邀测·申请试用】默认不开启。开启后,vke-default-nodepool 节点池中的节点具备按需使用容器加速镜像的能力。 注意 仅 Containerd 版本为 1.4.13-vke.3 及以上版本的节点才可用该功能。Containerd 版本查看方法,请参见 FAQ。 |
部署执行脚本 | 输入 Shell 格式的脚本,节点部署 Kubernetes 组件后将自动执行该脚本。需要您自行实现脚本命令,并保证脚本的可重入及重试逻辑。脚本及其日志文件可在节点的/usr/local/vke/userscripts 目录下查看。该功能常用于修改 Containerd 配置参数等场景。 |
封锁节点 | 默认不开启。开启封锁节点后,将无法调度新创建的 Pod 到该节点上,该操作仅对 Worker 节点生效。可手动执行kubectl uncordon 命令取消封锁。 |
- 确认配置后,单击 确定,添加完成节点。
在 节点 页面查看刚添加的节点状态。当 状态 显示为 运行中,表示添加已有节点成功。
集群非首次添加已有节点
非首次添加已有节点表示该集群已有默认节点池vke-default-nodepool
,因此在集群中继续添加已有节点时,按如下说明操作。
- 登录 容器服务控制台。
- 在容器服务的左侧导航栏,选择 集群。
- 在集群列表,单击需要添加节点的目标集群名称。
- 在集群管理页面的左侧导航栏,选择 节点管理 > 节点。
- 在 节点 页面单击 添加已有节点。
- 根据如下参数说明,配置节点参数。
- 默认节点池信息
配置项 | 说明 |
---|
节点池 | 显示默认节点池名称以及配置信息。为集群添加的已有节点,继承默认节点池的所有配置。该参数不可更新。 |
- 云服务器配置
配置项 | 说明 |
---|
全部服务器 | 显示您账号下本地域中,与当前集群在同一个私有网络下的所有云服务器实例。请根据您的需求,勾选目标云服务器实例。 |
已选服务器 | 显示您已选中的云服务器实例。 |
保留云服务器实例名称 | - 勾选表示:将云服务器实例添加到集群后,保留原来的名称。
说明 保留的云服务器实例名称中若有中文字符,则该节点的cluster.vke.volcengine.com/node-name 系统标签为无效标签。因此在后续该节点的亲和调度中等场景中,请使用其他标签,避免使用cluster.vke.volcengine.com/node-name 标签。 - 不勾选表示:容器服务将云服务器实例添加到集群后重新命名。
|
数据盘挂载 | - 勾选表示:将数据盘格式化并挂载到容器、镜像存储目录
/var/lib/containerd 和/var/lib/kubelet ,同时需要设置 设备名称,指定数据盘设备。您可以自行填写数据盘设备名,如/dev/vdb ;也可自行填写数据盘的分区名,如/dev/vdb1 。注意 - 若勾选,请确保已选择添加到集群的云服务器实例的数据盘无数据残留,否则会添加已有节点失败。清理数据盘数据残留的操作,请参见 FAQ。
- 该功能适用于 v1.20.15-vke.4 及以上 Kubernetes 版本的集群。低版本集群数据盘仅针对
/var/lib/containerd 目录进行挂载。
- 不勾选表示:(默认)将
/var/lib/containerd 和/var/lib/kubelet 目录挂载到系统盘操作系统所在分区中。
|
系统镜像 | 选择节点使用的操作系统。此处是重置已有云服务器的操作系统,使其符合容器服务集群。 公共镜像:火山引擎官方提供的正版版权镜像,包含基础操作系统和火山引擎提供的初始化组件,安全稳定性高且所有用户均可使用。 容器服务支持的公共镜像及其关联的规格族参见:容器服务支持的公共镜像。 自定义镜像:【邀测·申请试用】容器服务支持自定义镜像作为节点操作系统。功能使用说明,请参见 自定义镜像说明。
|
- 更多配置
配置项 | 说明 |
---|
节点标签 | 对应 Kubernetes 中的 Label,能够为节点定义不同的属性,方便批量筛选等需求,可为节点池中的节点批量添加相同标签。 单击 添加节点标签,根据界面提示输入 键 和 值。 |
Taints | 污点(Taints)能够使节点排斥某些特定的 Pod,避免 Pod 调度到该节点上,可为节点池中的节点批量添加相同污点。 单击 添加 Taints,根据界面提示输入 键 和 值。 |
- 高级配置
配置项 | 说明 |
---|
镜像懒加载 | 【邀测·申请试用】默认不开启。开启后,vke-default-nodepool 节点池中的节点具备按需使用容器加速镜像的能力。 注意 仅 Containerd 版本为 1.4.13-vke.3 及以上版本的节点才可用该功能。Containerd 版本查看方法,请参见 FAQ。 |
部署执行脚本 | 输入 Shell 格式的脚本,节点部署 Kubernetes 组件后将自动执行该脚本。需要您自行实现脚本命令,并保证脚本的可重入及重试逻辑。脚本及其日志文件可在节点的/usr/local/vke/userscripts 目录下查看。该功能常用于修改 Containerd 配置参数等场景。 |
封锁节点 | 默认不开启。开启封锁节点后,将无法调度新创建的 Pod 到该节点上,该操作仅对 Worker 节点生效。可手动执行kubectl uncordon 命令取消封锁。 |
- 确认配置后,单击 确定,添加完成节点。
在 节点 页面查看刚添加的节点状态。当 状态 显示为 运行中,表示添加已有节点成功。