故障创建与编排更胜一筹的K8S混沌工程开源平台Litmus

2023-08-15 15:18:07 浏览数 (2)

Litmus 最初是 OpenEBS(K8S下存储系统) 的测试工具,后来发展成为知名的 Kubernetes 原生混沌工程开源平台。

创建者

MayaData

一句话介绍

LitmusChaos 是一个在故障创建与编排方面更胜一筹的K8S混沌工程开源平台,如提供故障注入实验库 ChaosHub,使团队能够以受控方式,引入故障注入实验来识别基础设施中的弱点和潜在停机隐患 。

Litmus 2.0关键特性

故障注入实验场景创建与编排

可用以下方式创建实验:实验模板,使用ChaosHub的实验从头自定义,预先创建的 YAML实验。支持故障注入实验调度(并行和顺序执行步骤)。可安排单次或 Cron定时故障注入场景。可以用例优先级标注故障注入实验。

ChaosHub故障注入实验市场

Litmus拥有ChaosHub这个开源故障注入实验市场,托管 Litmus 所提供的各种故障注入实验。 这些实验是声明性的,并且可以根据需要进行调整。 使用hub接口来调整和部署实验,并迈出实验的第一步。

7类故障注入实验类型

ChaosHub中的49个故障注入实验,可以分为7类:通用、亚马逊云kube-aws、亚马逊云系统管理服务SSM、谷歌云gcp、微软云azure、VMware和SpringBoot。

通用实验,包括pod-delete、pod-dns-error、container-kill、pod-cpu-hog、pod-network-corruption、pod-memory-hog、pod-network-latency、pod-network-loss、disk-fill、pod-io-stress、node-cpu-hog、pod-network-duplication、node-memory-hog、kubelet-service-kill、pod-memory-hog-exec、node-drain、pod-cpu-hog-exec、node-io-stress、node-restart、pod-autoscaler、pod-dns-spoof、node-taint、pod-http-status-code、pod-http-latency、pod-network-partion、docker-service-kill、pod-http-reset-peer、pod-http-modify-header、pod-http-modify-body。

亚马逊云kube-aws实验,包括ec2-terminate-by-tag、ec2-terminate-by-id、ebs-loss-by-tag、ebs-loss-by-id、aws-az-chaos。

亚马逊云系统管理服务SSM实验,包括aws-ssm-chaos-by-id、aws-ssm-chaos-by-tag。

谷歌云gcp实验,包括gcp-vm-instance-stop、gcp-vm-disk-loss、gcp-vm-instance-stop-by-label、gcp-vm-disk-loss-by-label。

微软云azure实验,包括azure-instance-stop、azure-disk-loss。

VMware实验,vm-poweroff。

SpringBoot实验,包括spring-boot-latency、spring-boot-exceptions、spring-boot-cpu-stress、spring-boot-memory-stress、spring-boot-app-kill、spring-boot-faults。

Litmus探针

可以在 ChaosEngine 中为任何故障注入实验定义可插入的Litmus 探针,使得实验容器可以根据定义的模式,执行相关检查,以确定实验结论。

混沌工程可观测性

可连接数据源(来自任何 Chaos Delegate)并监控故障注入场景。能可视化故障注入场景运行的统计数据和并做数据聚合。可比较两个或多个故障注入场景的观测数据。可上传社区中可用的共享或可下载的仪表盘。可编辑查询、调整仪表板以从头开始创建自定义的仪表盘。可使用 Prometheus 数据源中的交错事件和指标实时监控故障注入实验的影响。

K8S多租户

Kubernetes 命名空间可用作 Kubernetes 上个人开发人员的完全托管环境。 Litmus 的所有功能都可以在 Kubernetes 命名空间中使用,以便实现故障注入实验在租户之间的隔离。

实验权限控制

可创建基于角色访问控制的用户。可创建拥有多个用户的团队。可验证用户身份。

故障注入场景管理

支持使用基础设施即代码的 GitOps 实现故障自动注入。允许从自定义镜像服务器(公共和私有)添加镜像。可测量并分析每个故障注入场景的韧性分数。

适用平台

K8S

适用场景

对于开发人员:在应用程序开发过程中运行故障注入实验,作为单元测试或集成测试的扩展。

对于 CI/CD 流水线构建者:将故障注入实验作为流水线的阶段运行,以检验应用程序能否应对流水线中的故障场景。

对于 SRE:规划和安排应用程序和相关基础设施的故障注入实验,以识别部署系统中的弱点并提高韧性。

优势

拥有较强故障创建与编排能力,如拥有开源故障注入实验市场ChaosHub。

可通过Web UI 查看实验及其历史记录。

原生集成可观测性工具,方便在实验期间监控系统运行状况。

劣势

Litmus 是一个功能全面的工具,但要用好它,需要学习很多知识。

ChaosCenter Web 界面可以轻松运行实验,但没有提供太多指导。 选用 Litmus 的团队需要知道要运行什么实验,要测试什么以及如何解释结果。这对于刚刚接触混沌工程的团队来说,是一项挑战。

开源许可证

Apache-2.0 license

GitHub点赞数

3.8k

最近发布日期与版本

2023.07: 3.0.0-beta10

所属项目

CNCF云原生计算基金会项目

* * *

你还知道有什么好用的开源故障注入工具?你还希望我聊有关混沌工程的其他什么新话题?欢迎在评论区留言。我会仔细阅读每一条留言。期待听到你的声音。

如果觉得本文对你有帮助,欢迎点赞,并转发给其他志同道合的小伙伴。

企业生意好,系统运行稳。你所阅读的文章,来自“吾真本说混沌工程”知乎专栏。

0 人点赞