用户指南

最佳实践

API 文档

分布式健康探测

最近更新时间:2021-08-26 15:58:07

操作场景

边缘集群中节点和控制端一般在不同机房,网络连接不如常规的 K8S 集群稳定,可能会产生边缘部分节点与 apiserver 断联的情况,此时云端将无法准确获取节点和节点上 pod 的运行状况。

原生 K8S 默认长时间的断联后,节点状态会变为 Unknown,且节点会被打上 NoSchedule 和 NoExecute 的 Taints,继而造成节点上的 pod 被驱逐和重建,同时 pod 会从 service 的 endpoint 中被删除。但实际上节点可能是正常运行状态,此时 pod 的驱逐和重建是完全不必要的。

在断联造成的节点 pod 大规模重建过程中,服务的访问会产生波动甚至不可用,会对服务质量造成严重影响。重建时,节点的网络和 IO 带宽过高,可能造成节点短时间内的负载过高,也可能会增加用户的网络费用。除此之外,重建会造成应用强依赖 pod 的 IP 变动,使服务需要重新部署。您可参考本文,了解并开始使用边缘健康检查功能及多地域检查功能,避免此类问题发生。

功能介绍

边缘健康检查功能

边缘计算场景不能依赖边缘端和 apiserver 的连接来判断节点是否异常,可能会因为网络连接问题造成误判。边缘端节点之间的连接比云端和边缘端的连接更稳定,具有一定的参考价值。因此边缘健康检查功能除了 apiserver 外,还引入了节点的评估因素,进而对节点进行更为全面的状态判断。

多地域检查功能

为了保证服务的稳定,可通过边缘健康检查功能,有效避免云边网络不稳定造成大量 pod 迁移和重建。边缘健康检查多地域功能还支持多地域内的节点健康检查,依据地域或者其他方式对节点进行分组,实现组内检查。在边缘计算场景下,同一个集群内的节点很可能分布在不同地域,不同地域之间的节点通常不可互通,不同地域的节点之间相互探测会影响健康探测机制效果。

前提条件

该功能需要打开节点的51005端口,以便节点之间进行分布式智能健康探测。

操作步骤

注意:

边缘检查和多地域检查功能需要一定的部署和配置时间,并非即时生效。

开启边缘检查功能

边缘检查功能默认关闭,请参考以下步骤手动开启:

  1. 登录 容器服务控制台,选择左侧导航栏中的边缘集群
  2. 在“边缘集群”列表页面,选择目标集群 ID,进入集群详情页面。
  3. 选择左侧菜单栏中的基本信息,进入“基础信息”页面,
  4. 在“基础信息”页面中,单击开启Edge Health即可开启边缘检查功能。如下图所示:

开启多地域检查功能

多地域检查功能按地域划分节点:节点地域根据节点上的 tencent.tkeedgehealth/topology-zone 标签区分。例如,tencent.tkeedgehealth/topology-zone: zone0 表明将节点划分到地域 zone0。标签取值相同的节点视为同一个地域。开启多地域功能时,同一个地域内的节点会相互探测和投票。

注意:

  • 如果开启此功能时没有给节点打上 tencent.tkeedgehealth/topology-zone 的标签,该节点只会检查自己的健康状态。
  • 如果没有开启此功能,则一个集群内的所有节点会进行相互检查,即使节点上有 tencent.tkeedgehealth/topology-zone 标签。

控制台设置节点地域标签

  1. 登录 容器服务控制台,选择左侧导航栏中的边缘集群
  2. 在“边缘集群”列表页面,选择目标集群 ID,进入集群详情页面。
  3. 选择左侧菜单栏中的节点管理 > 节点,进入“节点列表” 页面。
  4. 选择需要设置 Label 的节点行,选择更多 > 编辑标签
  5. 在弹出的 “编辑 Label” 窗口中,编辑 Label,单击提交。如下图所示:

开启多地域检查功能

开启边缘检查功能 后,单击开启多地域即可开启多地域检查功能。如下图所示:

目录