网络
虚拟私有云 VPC
弹性公网IP EIP
弹性负载均衡 ELB
NAT网关 NAT
云专线 DC
虚拟专用网络 VPN
云连接 CC
VPC终端节点 VPCEP
企业路由器 ER
企业交换机 ESW
全球加速 GA
企业连接 EC
云原生应用网络 ANC
安全与合规
安全技术与应用
Web应用防火墙 WAF
企业主机安全 HSS
云防火墙 CFW
安全云脑 SecMaster
DDoS防护 AAD
数据加密服务 DEW
数据库安全服务 DBSS
云堡垒机 CBH
数据安全中心 DSC
云证书管理服务 CCM
威胁检测服务 MTD
态势感知 SA
认证测试中心 CTC
边缘安全 EdgeSec
应用中间件
微服务引擎 CSE
分布式消息服务Kafka版
分布式消息服务RabbitMQ版
分布式消息服务RocketMQ版
API网关 APIG
分布式缓存服务 DCS
多活高可用服务 MAS
事件网格 EG
管理与监管
统一身份认证服务 IAM
消息通知服务 SMN
云监控服务 CES
应用运维管理 AOM
应用性能管理 APM
云日志服务 LTS
云审计服务 CTS
标签管理服务 TMS
配置审计 Config
应用身份管理服务 OneAccess
资源访问管理 RAM
组织 Organizations
资源编排服务 RFS
优化顾问 OA
IAM 身份中心
云运维中心 COC
资源治理中心 RGC
解决方案
高性能计算 HPC
SAP
混合云灾备
开天工业工作台 MIW
Haydn解决方案工厂
数字化诊断治理专家服务
云生态
云商店
合作伙伴中心
华为云开发者学堂
华为云慧通差旅
开发与运维
软件开发生产线 CodeArts
需求管理 CodeArts Req
流水线 CodeArts Pipeline
代码检查 CodeArts Check
编译构建 CodeArts Build
部署 CodeArts Deploy
测试计划 CodeArts TestPlan
制品仓库 CodeArts Artifact
移动应用测试 MobileAPPTest
CodeArts IDE Online
开源镜像站 Mirrors
性能测试 CodeArts PerfTest
应用管理与运维平台 ServiceStage
云应用引擎 CAE
开源治理服务 CodeArts Governance
华为云Astro轻应用
CodeArts IDE
Astro工作流 AstroFlow
代码托管 CodeArts Repo
漏洞管理服务 CodeArts Inspector
联接 CodeArtsLink
软件建模 CodeArts Modeling
Astro企业应用 AstroPro
CodeArts盘古助手
华为云Astro大屏应用
计算
弹性云服务器 ECS
Flexus云服务
裸金属服务器 BMS
云手机服务器 CPH
专属主机 DeH
弹性伸缩 AS
镜像服务 IMS
函数工作流 FunctionGraph
云耀云服务器(旧版)
VR云渲游平台 CVR
Huawei Cloud EulerOS
云化数据中心 CloudDC
网络
虚拟私有云 VPC
弹性公网IP EIP
弹性负载均衡 ELB
NAT网关 NAT
云专线 DC
虚拟专用网络 VPN
云连接 CC
VPC终端节点 VPCEP
企业路由器 ER
企业交换机 ESW
全球加速 GA
企业连接 EC
云原生应用网络 ANC
CDN与智能边缘
内容分发网络 CDN
智能边缘云 IEC
智能边缘平台 IEF
CloudPond云服务
安全与合规
安全技术与应用
Web应用防火墙 WAF
企业主机安全 HSS
云防火墙 CFW
安全云脑 SecMaster
DDoS防护 AAD
数据加密服务 DEW
数据库安全服务 DBSS
云堡垒机 CBH
数据安全中心 DSC
云证书管理服务 CCM
威胁检测服务 MTD
态势感知 SA
认证测试中心 CTC
边缘安全 EdgeSec
大数据
MapReduce服务 MRS
数据湖探索 DLI
表格存储服务 CloudTable
可信智能计算服务 TICS
推荐系统 RES
云搜索服务 CSS
数据可视化 DLV
数据接入服务 DIS
数据仓库服务 GaussDB(DWS)
数据治理中心 DataArts Studio
湖仓构建 LakeFormation
智能数据洞察 DataArts Insight
应用中间件
微服务引擎 CSE
分布式消息服务Kafka版
分布式消息服务RabbitMQ版
分布式消息服务RocketMQ版
API网关 APIG
分布式缓存服务 DCS
多活高可用服务 MAS
事件网格 EG
开天aPaaS
应用平台 AppStage
开天企业工作台 MSSE
开天集成工作台 MSSI
API中心 API Hub
云消息服务 KooMessage
交换数据空间 EDS
云地图服务 KooMap
云手机服务 KooPhone
组织成员账号 OrgID
云空间服务 KooDrive
管理与监管
统一身份认证服务 IAM
消息通知服务 SMN
云监控服务 CES
应用运维管理 AOM
应用性能管理 APM
云日志服务 LTS
云审计服务 CTS
标签管理服务 TMS
配置审计 Config
应用身份管理服务 OneAccess
资源访问管理 RAM
组织 Organizations
资源编排服务 RFS
优化顾问 OA
IAM 身份中心
云运维中心 COC
资源治理中心 RGC
区块链
区块链服务 BCS
数字资产链 DAC
华为云区块链引擎服务 HBS
解决方案
高性能计算 HPC
SAP
混合云灾备
开天工业工作台 MIW
Haydn解决方案工厂
数字化诊断治理专家服务
价格
成本优化最佳实践
专属云商业逻辑
云生态
云商店
合作伙伴中心
华为云开发者学堂
华为云慧通差旅
其他
管理控制台
消息中心
产品价格详情
系统权限
客户关联华为云合作伙伴须知
公共问题
宽限期保留期
奖励推广计划
活动
云服务信任体系能力说明
开发与运维
软件开发生产线 CodeArts
需求管理 CodeArts Req
流水线 CodeArts Pipeline
代码检查 CodeArts Check
编译构建 CodeArts Build
部署 CodeArts Deploy
测试计划 CodeArts TestPlan
制品仓库 CodeArts Artifact
移动应用测试 MobileAPPTest
CodeArts IDE Online
开源镜像站 Mirrors
性能测试 CodeArts PerfTest
应用管理与运维平台 ServiceStage
云应用引擎 CAE
开源治理服务 CodeArts Governance
华为云Astro轻应用
CodeArts IDE
Astro工作流 AstroFlow
代码托管 CodeArts Repo
漏洞管理服务 CodeArts Inspector
联接 CodeArtsLink
软件建模 CodeArts Modeling
Astro企业应用 AstroPro
CodeArts盘古助手
华为云Astro大屏应用
存储
对象存储服务 OBS
云硬盘 EVS
云备份 CBR
高性能弹性文件服务 SFS Turbo
弹性文件服务 SFS
存储容灾服务 SDRS
云硬盘备份 VBS
云服务器备份 CSBS
数据快递服务 DES
云存储网关 CSG
专属分布式存储服务 DSS
数据工坊 DWR
地图数据 MapDS
键值存储服务 KVS
容器
云容器引擎 CCE
云容器实例 CCI
容器镜像服务 SWR
云原生服务中心 OSC
应用服务网格 ASM
华为云UCS
数据库
云数据库 RDS
数据复制服务 DRS
文档数据库服务 DDS
分布式数据库中间件 DDM
云数据库 GaussDB
云数据库 GeminiDB
数据管理服务 DAS
数据库和应用迁移 UGO
云数据库 TaurusDB
人工智能
AI开发平台ModelArts
华为HiLens
图引擎服务 GES
图像识别 Image
文字识别 OCR
自然语言处理 NLP
内容审核 Moderation
图像搜索 ImageSearch
医疗智能体 EIHealth
企业级AI应用开发专业套件 ModelArts Pro
人脸识别服务 FRS
对话机器人服务 CBS
语音交互服务 SIS
人证核身服务 IVS
视频智能分析服务 VIAS
城市智能体
自动驾驶云服务 Octopus
盘古大模型 PanguLargeModels
IoT物联网
设备接入 IoTDA
全球SIM联接 GSL
IoT数据分析 IoTA
路网数字化服务 DRIS
IoT边缘 IoTEdge
设备发放 IoTDP
企业应用
域名注册服务 Domains
云解析服务 DNS
企业门户 EWP
ICP备案
商标注册
华为云WeLink
华为云会议 Meeting
隐私保护通话 PrivateNumber
语音通话 VoiceCall
消息&短信 MSGSMS
云管理网络
SD-WAN 云服务
边缘数据中心管理 EDCM
云桌面 Workspace
应用与数据集成平台 ROMA Connect
ROMA资产中心 ROMA Exchange
API全生命周期管理 ROMA API
政企自服务管理 ESM
视频
实时音视频 SparkRTC
视频直播 Live
视频点播 VOD
媒体处理 MPC
视频接入服务 VIS
数字内容生产线 MetaStudio
迁移
主机迁移服务 SMS
对象存储迁移服务 OMS
云数据迁移 CDM
迁移中心 MGC
专属云
专属计算集群 DCC
开发者工具
SDK开发指南
API签名指南
DevStar
华为云命令行工具服务 KooCLI
Huawei Cloud Toolkit
CodeArts API
云化转型
云架构中心
云采用框架
用户服务
账号中心
费用中心
成本中心
资源中心
企业管理
工单管理
客户运营能力
国际站常见问题
支持计划
专业服务
合作伙伴支持计划
我的凭证
华为云公共事业服务云平台
工业软件
工业数字模型驱动引擎
硬件开发工具链平台云服务
工业数据转换引擎云服务
文档首页/ 云容器引擎 CCE/ 用户指南/ 节点/ 节点运维/ 配置节点故障检测策略

配置节点故障检测策略

更新时间:2024-08-09 GMT+08:00
分享

节点故障检查功能依赖node-problem-detector(简称:npd),npd是一款集群节点监控插件,插件实例会运行在每个节点上。本文介绍如何开启节点故障检测能力。

前提条件

集群中已安装CCE节点故障检测插件。

开启节点故障检测

  1. 登录CCE控制台,单击集群名称进入集群。
  2. 在左侧选择“节点管理”,切换至“节点”页签,检查集群中是否已安装npd插件,或将其升级至最新版本。npd安装成功后,可正常使用故障检测策略功能。
  3. npd运行正常时,单击“故障检测策略”,可查看当前故障检测项。关于NPD检查项列表请参见NPD检查项
  4. 当前节点检查结果异常时,将在节点列表处提示“指标异常”。

  5. 您可单击“指标异常”,按照修复建议提示修复。

自定义检查项配置

  1. 登录CCE控制台,单击集群名称进入集群。
  2. 在左侧选择“节点管理”,切换至“节点”页签,单击“故障检测策略”
  3. 在跳转的页面中查看当前检查项配置,单击检查项操作列的“编辑”,自定义检查项配置。

    当前支持以下配置:
    • 启用/停用:自定义某个检查项的开启或关闭。
    • 目标节点配置:检查项默认运行在全部节点,用户可根据特殊场景需要自定义修改故障阈值。例如竞价实例中断回收检查只运行在竞价实例节点。

    • 触发阈值配置:默认阈值匹配常见故障场景,用户可根据特殊场景需要自定义修改故障阈值。例如调整“连接跟踪表耗尽”触发阈值由90%调整至80%。

    • 检查周期:默认检查周期为30秒,可根据用户场景需要自定义修改检查周期。

    • 故障应对策略:故障产生后,可根据用户场景自定义修改故障应对策略,当前故障应对策略如下:
      表1 故障应对策略

      故障应对策略

      效果

      提示异常

      上报Kuberentes事件。

      禁止调度

      上报Kuberentes事件,并为节点添加NoSchedule污点。

      驱逐节点负载

      上报Kuberentes事件,并为节点添加NoExecute污点。该操作会驱逐节点上的负载,可能导致业务不连续,请谨慎选择。

NPD检查项

说明:

当前检查项仅1.16.0及以上版本支持。

NPD的检查项主要分为事件类检查项和状态类检查项。

  • 事件类检查项

    对于事件类检查项,当问题发生时,NPD会向APIServer上报一条事件,事件类型分为Normal(正常事件)和Warning(异常事件)

    表2 事件类检查项

    故障检查项

    功能

    说明

    OOMKilling

    监听内核日志,检查OOM事件发生并上报

    典型场景:容器内进程使用的内存超过了Limt,触发OOM并终止该进程

    Warning类事件

    监听对象:/dev/kmsg

    匹配规则:"Killed process \\d+ (.+) total-vm:\\d+kB, anon-rss:\\d+kB, file-rss:\\d+kB.*"

    TaskHung

    监听内核日志,检查taskHung事件发生并上报

    典型场景:磁盘卡IO导致进程卡住

    Warning类事件

    监听对象:/dev/kmsg

    匹配规则:"task \\S+:\\w+ blocked for more than \\w+ seconds\\."

    ReadonlyFilesystem

    监听内核日志,检查系统内核是否有Remount root filesystem read-only错误

    典型场景:用户从ECS侧误操作卸载节点数据盘,且应用程序对该数据盘的对应挂载点仍有持续写操作,触发内核产生IO错误将磁盘重挂载为只读磁盘。

    说明:

    节点容器存储Rootfs为Device Mapper类型时,数据盘卸载会导致thinpool异常,影响NPD运行,NPD将无法检测节点故障。

    Warning类事件

    监听对象:/dev/kmsg

    匹配规则:"Remounting filesystem read-only"

  • 状态类检查项

    对于状态类检查项,当问题发生时,NPD会向APIServer上报一条事件,并同步修改节点状态,可配合Node-problem-controller故障隔离对节点进行隔离。

    下列检查项中若未明确指出检查周期,则默认周期为30秒。

    表3 系统组件检查

    故障检查项

    功能

    说明

    容器网络组件异常

    CNIProblem

    检查CNI组件(容器网络组件)运行状态

    容器运行时组件异常

    CRIProblem

    检查节点CRI组件(容器运行时组件)Docker和Containerd的运行状态

    检查对象:Docker或Containerd

    Kubelet频繁重启

    FrequentKubeletRestart

    通过定期回溯系统日志,检查关键组件Kubelet是否频繁重启

    • 默认阈值:10分钟内重启10次

      即在10分钟内组件重启10次表示频繁重启,将会产生故障告警。

    • 监听对象:/run/log/journal目录下的日志
    说明:

    Ubuntu和HCE2.0操作系统由于日志格式不兼容,暂不支持上述检查项。

    Docker频繁重启

    FrequentDockerRestart

    通过定期回溯系统日志,检查容器运行时Docker是否频繁重启

    Containerd频繁重启

    FrequentContainerdRestart

    通过定期回溯系统日志,检查容器运行时Containerd是否频繁重启

    Kubelet服务异常

    KubeletProblem

    检查关键组件Kubelet的运行状态

    KubeProxy异常

    KubeProxyProblem

    检查关键组件KubeProxy的运行状态

    表4 系统指标

    故障检查项

    功能

    说明

    连接跟踪表耗尽

    ConntrackFullProblem

    检查连接跟踪表是否耗尽

    • 默认阈值:90%
    • 使用量:nf_conntrack_count
    • 最大值:nf_conntrack_max

    磁盘资源不足

    DiskProblem

    检查节点系统盘、CCE数据盘(包含CRI逻辑盘与Kubelet逻辑盘)的磁盘使用情况

    • 默认阈值:90%
    • 数据来源:
      df -h

    当前暂不支持额外的数据盘

    文件句柄数不足

    FDProblem

    检查系统关键资源FD文件句柄数是否耗尽

    • 默认阈值:90%
    • 使用量:/proc/sys/fs/file-nr中第1个值
    • 最大值:/proc/sys/fs/file-nr中第3个值

    节点内存资源不足

    MemoryProblem

    检查系统关键资源Memory内存资源是否耗尽

    • 默认阈值:80%
    • 使用量:/proc/meminfo中MemTotal-MemAvailable
    • 最大值:/proc/meminfo中MemTotal

    进程资源不足

    PIDProblem

    检查系统关键资源PID进程资源是否耗尽

    • 默认阈值:90%
    • 使用量:/proc/loadavg中nr_threads
    • 最大值:/proc/sys/kernel/pid_max和/proc/sys/kernel/threads-max两者的较小值。
    表5 存储检查

    故障检查项

    功能

    说明

    磁盘只读

    DiskReadonly

    通过定期对节点系统盘、CCE数据盘(包含CRI逻辑盘与Kubelet逻辑盘)进行测试性写操作,检查关键磁盘的可用性

    检测路径:

    • /mnt/paas/kubernetes/kubelet/
    • /var/lib/docker/
    • /var/lib/containerd/
    • /var/paas/sys/log/cceaddon-npd/

    检测路径下会产生临时文件npd-disk-write-ping

    当前暂不支持额外的数据盘

    节点emptydir存储池异常

    EmptyDirVolumeGroupStatusError

    检查节点上临时卷存储池是否正常

    故障影响:依赖存储池的Pod无法正常写对应临时卷。临时卷由于IO错误被内核重挂载成只读文件系统。

    典型场景:用户在创建节点时配置两个数据盘作为临时卷存储池,用户误操作删除了部分数据盘导致存储池异常。

    • 检测周期:30秒
    • 数据来源:
      vgs -o vg_name, vg_attr
    • 检测原理:检查VG(存储池)是否存在p状态,该状态表征部分PV(数据盘)丢失。
    • 节点持久卷存储池异常调度联动:调度器可自动识别此异常状态并避免依赖存储池的Pod调度到该节点上。
    • 例外场景:NPD无法检测所有PV(数据盘)丢失,导致VG(存储池)丢失的场景;此时依赖kubelet自动隔离该节点,其检测到VG(存储池)丢失并更新nodestatus.allocatable中对应资源为0,避免依赖存储池的Pod调度到该节点上。无法检测单个PV损坏;此时依赖ReadonlyFilesystem检测异常。

    节点持久卷存储池异常

    LocalPvVolumeGroupStatusError

    检查节点上持久卷存储池是否正常

    故障影响:依赖存储池的Pod无法正常写对应持久卷。持久卷由于IO错误被内核重挂载成只读文件系统。

    典型场景:用户在创建节点时配置两个数据盘作为持久卷存储池,用户误操作删除了部分数据盘。

    挂载点异常

    MountPointProblem

    检查节点上的挂载点是否异常

    异常定义:该挂载点不可访问(cd)

    典型场景:节点挂载了nfs(网络文件系统,常见有obsfs、s3fs等),当由于网络或对端nfs服务器异常等原因导致连接异常时,所有访问该挂载点的进程均卡死。例如集群升级场景kubelet重启时扫描所有挂载点,当扫描到此异常挂载点会卡死,导致升级失败。

    等效检查命令:

    for dir in `df -h | grep -v "Mounted on" | awk "{print \\$NF}"`;do cd $dir; done && echo "ok"

    磁盘卡IO

    DiskHung

    检查节点上所有磁盘是否存在卡IO,即IO读写无响应

    卡IO定义:系统对磁盘的IO请求下发后未有响应,部分进程卡在D状态

    典型场景:操作系统硬盘驱动异常或底层网络严重故障导致磁盘无法响应

    • 检查对象:所有数据盘
    • 数据来源:

      /proc/diskstat

      等效查询命令:
      iostat -xmt 1
    • 阈值(需同时满足):
      • 平均利用率(ioutil)>= 0.99
      • 平均IO队列长度(avgqu-sz)>=1
      • 平均IO传输量 <= 1

        平均IO传输量 = 每秒完成写次数(iops,单位为w/s)+每秒写数据量(ioth,单位为wMB/s)

      说明:

      部分操作系统卡IO时无数据变化,此时计算CPU IO时间占用率,iowait > 0.8。

    磁盘慢IO

    DiskSlow

    检查节点上所有磁盘是否存在慢IO,即IO读写有响应但响应缓慢

    典型场景:云硬盘由于网络波动导致慢IO。

    • 检查对象:所有数据盘
    • 数据来源:

      /proc/diskstat

      等效查询命令
      iostat -xmt 1
    • 默认阈值:

      平均IO时延,await >= 5000ms

    说明:

    卡IO场景下该检查项失效,原因为IO请求未有响应,await数据不会刷新。

    表6 其他检查

    故障检查项

    功能

    说明

    NTP异常

    NTPProblem

    检查节点时钟同步服务ntpd或chronyd是否正常运行,系统时间是否漂移

    默认时钟偏移阈值:8000ms

    进程D异常

    ProcessD

    检查节点是否存在D进程

    默认阈值:连续3次存在10个异常进程

    数据来源:

    • /proc/{PID}/stat
    • 等效命令:ps aux

    例外场景:ProcessD忽略BMS节点下的SDI卡驱动依赖的常驻D进程heartbeat、update

    进程Z异常

    ProcessZ

    检查节点是否存在Z进程

    ResolvConf配置文件异常

    ResolvConfFileProblem

    检查ResolvConf配置文件是否丢失

    检查ResolvConf配置文件是否异常

    异常定义:不包含任何上游域名解析服务器(nameserver)。

    检查对象:/etc/resolv.conf

    存在计划事件

    ScheduledEvent

    检查节点是否存在热迁移计划事件。热迁移计划事件通常由硬件故障触发,是IaaS层的一种自动故障修复手段。

    典型场景:底层宿主机异常,例如风扇损坏、磁盘坏道等,导致其上虚机触发热迁移。

    数据来源:

    • http://169.254.169.254/meta-data/latest/events/scheduled

    该检查项为Alpha特性,默认不开启。

    另外kubelet组件内置如下检查项,但是存在不足,您可通过集群升级或安装NPD进行补足。

    表7 Kubelet内置检查项

    故障检查项

    功能

    说明

    PID资源不足

    PIDPressure

    检查PID是否充足

    • 周期:10秒
    • 阈值:90%
    • 缺点:社区1.23.1及以前版本,该检查项在pid使用量大于65535时失效,详见issue 107107。社区1.24及以前版本,该检查项未考虑thread-max。

    内存资源不足

    MemoryPressure

    检查容器可分配空间(allocable)内存是否充足

    • 周期:10秒
    • 阈值:最大值-100MiB
    • 最大值(Allocable):节点总内存-节点预留内存
    • 缺点:该检测项没有从节点整体内存维度检查内存耗尽情况,只关注了容器部分(Allocable)。

    磁盘资源不足

    DiskPressure

    检查kubelet盘和docker盘的磁盘使用量及inodes使用量

    • 周期:10秒
    • 阈值:90%
提示

您即将访问非华为云网站,请注意账号财产安全

文档反馈

文档反馈

意见反馈

0/500

标记内容

同时提交标记内容