操作场景
本文介绍如何管理集群中的第三方节点池,包括如何调整第三方节点池和调整节点池中的第三方节点。
前提条件
- 已 创建集群。
- 集群的网络模型为 VPC-CNI-单网卡多IP模式 或者 Cilium-Overlay。
- 集群 Kubernetes 版本为 1.18 及以上版本。
操作步骤
开启第三方节点功能
- 登录 容器服务控制台,选择左侧导航栏中的集群。
- 在“集群管理”列表页面,选择目标集群 ID,进入该集群 “基本信息” 页面。
- 在节点和网络信息中,单击“支持导入第三方节点”右侧的。
- 在“开启第三方节点功能”中根据实际需求配置相关参数。
- 子网:节点访问 kube-apiserver 需要通过您的 VPC 弹性网卡,因此需要您提供 VPC 子网,容器服务 TKE 会自动在选定的子网内创建代理弹性网卡。
- 容器网络插件:针对于云下第三方节点的网络插件,目前支持 Cilium VXLan 和 Cilium BGP 两种类型。云上和云下必须是同一类型的网络插件,全是 Underlay 或者全是 Overlay。如云上网络插件是 Cilium-Overlay,则这里默认是 Cilium-Overlay;如云上是 VPC-CNI-单网卡多IP模式(Underlay),则这里默认是 Cilium BGP。
- 容器网络:系统将为第三方节点上运行的 Pod 分配该容器网络地址范围内的 IP 地址,仅当云下的网络插件是 Cilium-BGP 需要填写。
- 单击确认开启。
创建第三方节点池
- 登录 容器服务控制台,选择左侧导航栏中的集群。
- 在“集群管理”列表页面,选择目标集群 ID,进入该集群 “Deployment” 页面。
- 选择左侧菜单栏中的节点管理 > 节点池,进入“节点池列表”页面。
- 单击新建节点池,进入“新建节点池”页面,参考以下提示进行设置。如下图所示:
- 节点池名称:自定义,可根据业务需求等信息进行命名,方便后续资源管理。
- 节点池类型:目前支持云服务器和虚拟节点和第三方节点三种类型。当开启第三方节点功能后,选择第三方节点类型。
- 容器目录:勾选即可设置容器和镜像存储目录,建议存储到数据盘。例如 /var/lib/docker。
- 运行时组件:容器运行时组件,当前支持docker和containerd。
- 运行时版本:容器运行时组件的版本。
- 封锁初始节点:勾选开启封锁后,将不接受新的 Pod 调度到该节点,需要手动取消封锁的节点,或在自定义数据中执行 取消封锁命令,请按需设置。
- Label:单击新增Label,即可进行 Label 自定义设置。该节点池下所创建的节点均将自动增加此处设置的 Label,可用于后续根据 Label 筛选、管理第三方节点。
说明
必填 Label 说明(仅填写 value,请勿更改 key):
- tke.cloud.tencent.com/location
- 如果容器网络模式设置为 Cilium BGP 模式,还需填写如下两组 Label:
- infra.tce.io/as 为节点所属交换机的 BGP AS 号,请根据业务环境设置。
- infra.tce.io/switch-ip 为节点所属交换机的交换机 IP,请根据业务环境配置。
- Taints:节点属性,通常与
Tolerations
配合使用。此处可为节点池下的所有节点设置 Taints,确保不符合条件的 Pod 不能够调度到这些节点上,且这些节点上已存在的不符合条件的 Pod 也将会被驱逐。
Taints 内容一般由 key
、value
及 effect
三个元素组成。其中 effect
可取值通常包含以下三种:
- PreferNoSchedule:非强制性条件,尽量避免将 Pod 调度到设置了其不能容忍的 taint 的节点上。
- NoSchedule:当节点上存在 taint 时,没有对应容忍的 Pod 一定不能被调度。
- NoExecute:当节点上存在 taint 时,对于没有对应容忍的 Pod,不仅不会被调度到该节点上,该节点上已存在的 Pod 也会被驱逐。以设置 Taints
key1=value1:PreferNoSchedule
为例,控制台配置如下图所示:
- 自定义数据:指定自定义数据来配置节点,即当节点启动后运行配置的脚本。需确保脚本的可重入及重试逻辑,脚本及其生成的日志文件可在节点的
/usr/local/qcloud/tke/userscript
路径查看。
- 单击创建节点池即可创建第三方节点池。
新建第三方节点
成功创建第三方节点池后,此时节点池内还没有节点,请参考以下步骤导入节点:
- 登录 容器服务控制台,选择左侧导航栏中的集群。
- 在“集群管理”列表页面,选择目标集群 ID,进入该集群 “Deployment” 页面。
- 选择左侧菜单栏中的节点管理 > 节点池,进入“节点池列表”页面。
- 在“节点池名片页”中,单击目标节点池 ID。
- 进入该节点池详情页,单击新建节点,获取导入节点的脚本。
- 在“初始化脚本”弹窗中,复制或下载脚本,如下图所示:
- 在您的机器上执行脚本。
注意
脚本下载链接1小时后过期。因为脚本通过 COS 下载,所以需要确保 IDC 节点能够通过内网/外网访问 COS。
- 执行如下命令,完成节点添加:
./add2tkectl-cls-m57oxxxp-np-xxxx install
编辑第三方节点池
- 登录 容器服务控制台,选择左侧导航栏中的集群。
- 在“集群管理”列表页面,选择目标集群 ID,进入该集群 “Deployment” 页面。
- 选择左侧菜单栏中的节点管理 > 节点池,进入“节点池列表”页面。
- 在“节点池名片页”中,选择计划修改的类型为第三方节点的节点池,单击编辑。
- 在“调整第三方节点池配置”弹窗中,支持修改节点池名称、Labels、Taints 等信息。
注意:
Labels、Taints 相关的修改会在节点池中的所有第三方节点上生效,如果有特殊调度策略请务必谨慎操作。
删除第三方节点池
- 登录 容器服务控制台,选择左侧导航栏中的集群。
- 在“集群管理”列表页面,选择目标集群 ID,进入该集群 “Deployment” 页面。
- 选择左侧菜单栏中的节点管理 > 节点池,进入“节点池列表”页面。
- 选择计划删除节点池名片页右上角的删除。
- 在“删除第三方节点池”弹窗中,单击确认删除节点池。
本页内容是否解决了您的问题?