openEuler社区开源项目:CPDS(容器故障检测系统)介绍

容器故障检测系统 CPDS (Container Problem Detect System) 是由北京凝思软件股份有限公司(以下简称“凝思软件”)设计并开发的容器集群故障检测系统,该软件系统实现了对容器TOP故障、亚健康状态的监测与识别。

2022年11月,凝思软件正式将该项目开源至openEuler社区。

背景介绍:

随着近几年企业数字化发展浪潮及云原生技术的普及,低时延和高并发的线上场景频繁出现在企业日常经营中,业务创新的需求也在倒逼企业不断运用新兴技术手段。现如今,容器技术被广泛应用于人工智能、大数据、边缘计算等场景,作为轻量化的计算载体,为更多的场景赋予高度的弹性与敏捷性。

业务规模的增长,容器集群规模不断扩张,IT运维压力也成比例增大。各种软、硬件故障而造成的业务中断,成为稳定性影响的重要因素之一。目前业内对容器集群故障的检测方案主要基于集群组件状态检测、服务入口监控、自定义接口检活等,具有一定的局限性,难以对服务的亚健康状态进行检测与识别。处理方式也缺乏故障的诊断与执行策略的制定,难以处理一些关键、核心故障。

针对目前云原生领域存在的问题,凝思软件(LINX SOFTWARE)发起了CPDS(容器故障检测系统)开源项目,该项目开发的系统实现了对容器集群的故障检测、诊断与策略执行,解决了行业内的一个核心痛点问题。

技术路线:

容器集群异常总体为三大类,即:集群基础服务异常、集群OS异常、业务服务异常。

集群基础服务异常类问题,利用systemd、initv等技术对相关关键服务进行启动、监控与策略执行。

集群OS异常类问题,在宿主机上实现节点代理,对节点网络、系统调用、磁盘LVM等相关信息进行采集、上报及策略执行。

业务服务异常类问题,采用业务无侵入的方式在节点、容器内设置跨NS的代理,针对容器内的应用状态、资源消耗情况、关键系统函数执行情况、IO执行状态等进行全方位的监控、分析与异常检测。针对如CPU占用高的这类现象,对其多个参数、指标(irq、iowait等)进行细化分析,定位问题方向,同时结合系统调用、网络、磁盘等方面采集到的数据进行联合分析,定位故障原因,采取相应措施。同时针对业务容器内应用的相关系统调用进行执行结果、耗时等多维度分析,定位容器亚健康等潜在问题,采取相应措施,保障业务容器的稳定运行。

系统架构:

CPDS系统技术架构如下图所示。其中信息采集模块通过节点、容器信息采集程序从集群基础服务、集群系统、业务容器服务等多层面进行关键数据采集,并上报异常检测模块;异常检测模块完成数据预处理后基于异常规则对采集数据进行异常检测,完成后将检测结果数据进行上传诊断模块;诊断模块基于诊断规则进行节点、业务容器的故障/亚健康诊断,并通过用户交互模块进行可视化诊断结果展示。

未来规划:

CPDS由CloudNative SIG进行开发维护,计划在23年下半年发布第一个R版本,提供对openEuler-22.03-LTS的支持。

项目地址:

https://gitee.com/openeuler/Cpds

1 个赞