用户指南

最佳实践

API 文档

管理第三方节点池

最近更新时间:2021-06-28 21:27:37

操作场景

本文介绍如何管理集群中的第三方节点池,包括如何调整第三方节点池和调整节点池中的第三方节点。

前提条件

  • 创建集群
  • 集群 Kubernetes 版本为 1.18 及以上版本。

操作步骤

开启第三方节点功能

  1. 登录 容器服务控制台,选择左侧导航栏中的【集群】。
  2. 在“集群管理”列表页面,选择目标集群 ID,进入该集群 “基本信息” 页面。
  3. 在【节点和网络信息】中,单击“支持导入第三方节点”右侧的
  4. 在“开启第三方节点功能”中根据实际需求配置相关参数。如下图所示:
    • 子网:节点访问 kube-apiserver 需要通过您的 VPC 弹性网卡,因此需要您提供 VPC 子网,容器服务 TKE 会自动在选定的子网内创建代理弹性网卡。
    • 容器网络插件:目前支持【Cilium VXLan】和【Cilium BGP】两种类型。
    • 容器网络:系统将为第三方节点上运行的 Pod 分配该容器网络地址范围内的 IP 地址。
      说明

      开启第三方节点功能后,您创建集群时设置的容器网段/容器子网将会失效,并以此容器网络设置为准。

  5. 单击【确认开启】。

创建第三方节点池

  1. 登录 容器服务控制台,选择左侧导航栏中的【集群】。
  2. 在“集群管理”列表页面,选择目标集群 ID,进入该集群 “Deployment” 页面。
  3. 选择左侧菜单栏中的【节点管理】>【节点池】,进入“节点池列表”页面。
  4. 单击【新建节点池】,进入“新建节点池”页面,参考以下提示进行设置。如下图所示:
    • 节点池名称:自定义,可根据业务需求等信息进行命名,方便后续资源管理。
    • 节点池类型:目前支持【云服务器】和【虚拟节点】和【第三方节点】三种类型。当开启第三方节点功能后,仅支持【第三方节点】类型。
    • 容器目录:勾选即可设置容器和镜像存储目录,建议存储到数据盘。例如 /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 内容一般由 keyvalueeffect 三个元素组成。其中 effect 可取值通常包含以下三种:
      • PreferNoSchedule:非强制性条件,尽量避免将 Pod 调度到设置了其不能容忍的 taint 的节点上。
      • NoSchedule:当节点上存在 taint 时,没有对应容忍的 Pod 一定不能被调度。
      • NoExecute:当节点上存在 taint 时,对于没有对应容忍的 Pod,不仅不会被调度到该节点上,该节点上已存在的 Pod 也会被驱逐。以设置 Taints key1=value1:PreferNoSchedule 为例,控制台配置如下图所示:
    • 自定义数据:指定自定义数据来配置节点,即当节点启动后运行配置的脚本。需确保脚本的可重入及重试逻辑,脚本及其生成的日志文件可在节点的 /usr/local/qcloud/tke/userscript 路径查看。
  5. 单击【创建节点池】即可创建第三方节点池。

新建第三方节点

成功创建第三方节点池后,此时节点池内还没有节点,请参考以下步骤导入节点:

  1. 登录 容器服务控制台,选择左侧导航栏中的【集群】。
  2. 在“集群管理”列表页面,选择目标集群 ID,进入该集群 “Deployment” 页面。
  3. 选择左侧菜单栏中的【节点管理】>【节点池】,进入“节点池列表”页面。
  4. 在“节点池名片页”中,单击目标节点池 ID。
  5. 进入该节点池详情页,单击【新建节点】,获取导入节点的脚本。
  6. 在“初始化脚本”弹窗中,复制或下载脚本,如下图所示:
  7. 在您的机器上执行脚本。
    注意

    脚本下载链接1小时后过期。因为脚本通过 COS 下载,所以需要确保 IDC 节点能够通过内网/外网访问 COS。

  8. 执行如下命令,完成节点添加:
    ./ add2tkectl-cls-m57oxxxp-np-xxxx install

编辑第三方节点池

  1. 登录 容器服务控制台,选择左侧导航栏中的【集群】。
  2. 在“集群管理”列表页面,选择目标集群 ID,进入该集群 “Deployment” 页面。
  3. 选择左侧菜单栏中的【节点管理】>【节点池】,进入“节点池列表”页面。
  4. 在“节点池名片页”中,选择计划修改的类型为【第三方节点】的节点池,单击【编辑】。
  5. 在“调整第三方节点池配置”弹窗中,支持修改节点池名称、Labels、Taints 等信息。如下图所示:
    注意

    Labels、Taints 相关的修改会在节点池中的所有第三方节点上生效,如果有特殊调度策略请务必谨慎操作。

删除第三方节点池

  1. 登录 容器服务控制台,选择左侧导航栏中的【集群】。
  2. 在“集群管理”列表页面,选择目标集群 ID,进入该集群 “Deployment” 页面。
  3. 选择左侧菜单栏中的【节点管理】>【节点池】,进入“节点池列表”页面。
  4. 选择计划删除节点池名片页右上角的【删除】。
  5. 在“删除第三方节点池”弹窗中,单击【确认】删除节点池。
    注意
    • 删除第三方节点池后,池内所有第三方节点仅会被移出集群,不会清除节点上运行的 Pod。
    • 删除节点后为了保证安全,建议重装节点或者执行以下命令删除节点上 kube-apiserver 访问配置:
      >rm - rf /etc/kubernetes $HOME/.kube
目录