本文介绍如何使用注册节点专线版相关功能。
使用须知
操作步骤
1. 注册节点安装操作系统
目前注册节点的操作系统仅支持 TencentOS Server 3.1 和 TencentOS Server 2.4(TK4)。具体信息如下:
操作系统名称 | 说明 |
TencentOS Server 3.1 | 与 CentOS 8 用户态完全兼容,配套基于社区 5.4 LTS 内核深度优化的 tkernel4 版本。 |
TencentOS Server 2.4(TK4) | 与 CentOS 7 用户态完全兼容,配套基于社区 5.4 LTS 内核深度优化的 tkernel4 版本。 |
说明:
TencentOS Server 是腾讯云针对云场景研发的 Linux 操作系统,提供特定的功能及性能优化,为云服务器实例中的应用程序提供更高的性能及更加安全可靠的运行环境。更多详细介绍,请参见 TencentOS Server。
2. NVIDIA-SMI 驱动安装(仅限 GPU 节点)
1. 注册节点(专线版)节点池支持 GPU 节点池,需要用户自行安装 NVIDIA 驱动以及 CUDA。
2. NVIDIA 驱动下载安装请参见:
NVIDIA Tesla 驱动:安装 NVIDIA Tesla 驱动
NVIDIA GRID 驱动:安装 NVIDIA GRID 驱动
3. 安装 CUDA 请参见:安装 CUDA
3. 注册节点特性支持
对于 TKE 集群不同的网络类型,开启注册节点功能支持的方式有所不同,具体开启步骤参考如下:
3.1 Cilium-Overlay 网络模式集群
云上云下节点统一 Cilium Overlay 的网络,仅支持在网络模型为 Cilium Overlay 的集群中添加注册节点。您可以选择已有的 Cilium Overlay 集群或新建集群。
新建 Cilium Overlay 集群的操作步骤如下:
1. 登录 容器服务管理控制台,选择左侧导航中的集群。
2. 在集群管理页面,单击新建。具体操作请参见 创建集群。
3. 在集群信息中,请参考如下信息进行填写:

容器网络插件:此处需选择 Cilium-Overlay(注意:仅支持操作系统 TencentOS Server 2.4/2.6/3.1/3.2 选择)。
子网选择:TKE 会在上述子网内创建代理弹性网卡,用于代理注册节点访问云上资源。
4. Cilium Overlay 集群创建完毕后,默认开启注册节点的特性,无需您手动开启。
3.2 GlobalRouter 和 VPC-CNI 模式集群
在这两种网络模式下,需要用户手动开启注册节点(专线版)特性能力,开启方式如下:
1. 登录 容器服务控制台,选择左侧导航中的集群。
2. 在集群管理页面,单击集群 ID,进入集群基本信息页面。
3. 在节点和网络信息中,单击注册节点能力右侧的
,开启能力。

4. 在开启注册节点能力对话框中,请根据以下信息进行设置:

专线连接:选择开启支持。
子网选择:选择代理访问子网 subnet 网段。
代理访问网段:TKE 会在上述子网内创建代理弹性网卡,用于代理注册节点访问云上资源。代理访问网段的详情解释,请参见 注册节点代理介绍。
容器网络:目前默认只支持 HostNetwork。
注意:
5. 单击确认开启,开启成功后,节点和网络信息如下图所示:

注意:
为保证 coredns、ipamd、csi-cbs-controller、l7-lb-controller、csi-cbs-node 组件的正常运行,需要确保组件运行在云上节点,因此开启过程中会对组件增加亲和性调度属性并且重建组件的 Pod,会产生如下影响:
1. ipamd 组件重建过程中,Pod 创建会因为分配不到 ip 而暂时 pending,待 ipamd 组件恢复后 Pod 创建会自动恢复正常。
2. 采用了 ipvs 转发模式的情况下,配置的 ipvs-udp-timeout 过大会导致业务访问 DNS 失败,具体处理方式请参见 配置会话保持。
6. 单击“支持的节点类型:专线版”右侧的详情,可以查看专线版开启细节。如下图所示:


4. 添加注册节点
创建注册节点池(专线版)
说明:
注册节点(专线版)仅支持通过节点池管理,同时专线版支持 GPU 节点,CPU 节点和 GPU 节点在不同的节点池进行管理。
1. 登录 容器服务控制台 ,选择左侧导航栏中的集群。
2. 在集群管理页面,选择目标集群 ID,进入集群的基本信息页面。
3. 在节点管理页面,选择节点池,单击新建。
4. 选择节点类型为注册节点,单击创建。在新建节点池页面,参考以下提示进行设置。


参数项 | 描述 |
网络类型 | 这里因为只开启了“专线连接”,因此选择默认“专线连接”即可;如果同时开启了“专线连接”和“公网连接”,这里选择“专线连接”即可。 |
节点类型 | 选择线下 IDC 节点资源类型,CPU 节点和 GPU 节点在不同的节点池进行异构管理。 |
节点池名称 | 自定义,可根据业务需求等信息进行命名,方便后续资源管理。 |
节点池类型 | 默认为注册节点池类型。 |
容器网络 | 默认为 HostNetwork 网络。 |
容器目录 | 勾选即可设置容器和镜像存储目录,建议存储到数据盘。例如 /var/lib/docker。 |
运行时组件 | 容器运行时组件,当前支持 Docker 和 containerd。 |
运行时版本 | 容器运行时组件的版本。 |
封锁初始节点 | |
Label | 单击新增 Label,即可进行 Label 自定义设置。该节点池下所创建的节点均将自动增加此处设置的 Label,可用于后续根据 Label 筛选、管理第三方节点。 |
Taints | 节点属性,通常与 Tolerations 配合使用。此处可为节点池下的所有节点设置 Taints,确保不符合条件的 Pod 不能够调度到这些节点上,且这些节点上已存在的不符合条件的 Pod 也将会被驱逐。Taints 内容一般由 key、value 及 effect 三个元素组成。其中 effect 可取值通常包含以下三种:PreferNoSchedule:非强制性条件,尽量避免将 Pod 调度到设置了其不能容忍的 Taint 的节点上。 NoSchedule:当节点上存在 Taint 时,没有对应容忍的 Pod 一定不能被调度。 NoExecute:当节点上存在 Taint 时,对于没有对应容忍的 Pod,不仅不会被调度到该节点上,该节点上已存在的 Pod 也会被驱逐。以设置 Taints key1=value1: PreferNoSchedule 为例,控制台配置如下图所示: ![]() |
Annotations | 单击新增,即可进行 Annotations 自定义设置。 |
Management | 单击新增,即可进行 Management 自定义设置。 |
Kubelet 自定义参数 | 单击新增,即可对注册节点上的 Kubelet 的参数进行自定义设置。 |
自定义数据 | 指定自定义数据来配置节点,即当节点启动后运行配置的脚本。需确保脚本的可重入及重试逻辑,脚本及其生成的日志文件可在节点的 /usr/local/qcloud/tke/userscript 路径查看。 |
5. 单击创建节点池,创建成功后,会显示节点池信息如下:

添加专线版注册节点
成功创建注册节点池后,此时节点池内还没有节点,请参考以下步骤添加注册节点:
1. 在节点池名片页面,单击目标节点池 ID。
2. 进入该节点池详情页,单击新建节点,获取导入节点的脚本。
3. 在弹出的对话框中,选择节点初始化脚本的下载方式,复制或下载脚本。如下图所示:

公网:默认选中,IDC 节点通过公网直接下载安装脚本文件(文件大小31KB)。
内网:用户 IDC 节点无法访问公网时,经由专线访问内网来下载安装脚本文件。
4. 在您的机器上执行脚本。
注意:
脚本下载链接1小时后过期。因为脚本通过 COS 下载,所以您需要确保 IDC 节点能够通过内网/外网访问 COS。
5. 执行如下命令,完成节点添加:
执行下载脚本的命令后,会在本地生成一个 add2tkectl-<集群ID>-<节点池> 格式文件名的文件,然后执行该脚本的 install 命令。执行成功后,节点就会注册到集群中,刚开始由于节点会拉取基础镜像来初始化节点,可能在控制台看到节点短暂处于异常状态,稍等一会就可以转为健康了。
# 请勿直接复制该命令执行,需根据实际下载的脚本名称进行执行./add2tkectl-<集群ID>-<节点池ID> install
说明:
如外部节点上安装有相关 Docker、containerd 组件而添加失败的情况,可以先执行以下清理的指令,再进行添加。
./add2tkectl-cls-m57oxxxp-np-xxxx clear
附录
注册节点代理介绍
开启注册节点专线版时,需要用户选择子网创建代理网卡后,作为代理提供给用户节点访问云上资源,其原理如下图:


开启注册节点专线版后,会在用户选择的 VPC 以及 subnet 下创建上图中的 “vpc 资源代理”,此代理服务会占用用户选择的子网下的一个 vpc IP 地址,用于和用户 IDC 节点通信。
用户 IDC 节点通过 iptables 规则,会将 ccr 镜像的访问地址,以及监控 agent 上报监控信息的目标地址,都 DNAT 到 “VPC 资源代理”的 IP,另外还会代理云上认证服务等其他各种类型服务地址。
