AI实践哪家强?来 AICon, 解锁技术前沿,探寻产业新机! 了解详情
写点什么

开源框架 Litmus,支持 Kubernetes 混沌工程

作者:K Jonas

  • 2019-06-12
  • 本文字数:1284 字

    阅读完需:约 4 分钟

开源框架 Litmus,支持 Kubernetes 混沌工程

Litmus是一种开源混沌工程框架,用于在 Kubernetes 环境中运行有状态应用。Litmus 项目由MayaData公司推出,支持用户运行测试套件、捕获日志、生成报告并执行混沌测试。Litmus 也支持作为端到端测试方法的组成部分,添加到 CI/CD 流水线中。


Litmus 设计用于捕获难以检测的 Kubernetes 中软件缺陷,这些软件缺陷通常会被单元测试或集成测试遗漏。Litmus 支持运行两类测试:混沌测试和功能测试。混沌测试主要针对应用的可扩展性,框架中提供了多个预置测试,主要针对容器崩溃、磁盘故障、网络延迟和网络包丢失等预期外行为。功能测试则用于确保达到系统需求,其中包括对应用规模可扩展等需求的测试。Litmus 还可用于判定 Kubernetes 部署是否适用于有状态工作负载。


Litmus 在组成上包括四个主要组件。部署组件(Deployments)设置测试所用的 Kubernetes 集群。推进组件(Facilitators)通过运行测试套件、捕获日志和生成报告为测试执行提供支持。测试组件(Test modules)包含了一些容器化的测试,执行测试时在 Kubernetes 集群内触发。第四个组件就是测试本身。


Litmus 测试在Litmus文档中称为“实验”(experiment)。运行 Litmus 实验,需要从 Litmus 的实验目录中选取已有的混沌实验,更新应用,对通过环境变量传递的值进行测试,进而并使用kubectl运行 litmusbook。运行命令如下:


kubectl create -f experiments/chaos/run_litmus_test.yml


测试运行在容器中。在评估测试和环境变量后,Litmus 会编排所需架构,利用Pumba开源软件工具执行实验。在实验执行完成后,Litmus 将基于一些预定义的已有标准,评估实验是否成功。测试结果与测试元数据一并在一种称为“Kubernetes 自定义资源”Kubernetes Custom Resource中存储。进而,运行 Litmus 的 CI/CD 流水线可以过根据自定义资源判定任务的状态。



Litmus 架构(图片来自 Litmus 官方文档)


Litmus 测试可使用 Go 的 Cucumber BDD 框架Godog 等编写类英语的 BDD 形式,也可以使用Ansible Playbooks编写并由 Litmus Test Playbook 组件分组管理。大部分 Litmus 测试采用 Ansible Playbooks,在 Kubernetes 任务控制器管理下在 Kubernetes 的 Pod 中执行。测试可在运行时使用环境变量,并对一些通用的和专门的测试功能任务引入测试软件库。Litmus 还提供了Chaos-Exporter功能,用于向 Prometheus 终端提供混沌度量。


Litmus 的创立者是MayaData。MayaData 也是 Kubernetes 原生开源容器附属存储解决方案OpenEBS的主要提供者。Litmus 项目的初衷是为有状态 Kubernetes 应用提供端到端的验证。Litmus公司的目标是确保有状态的应用程序能够在 Kubernetes 中运行,并确信数据是安全的和可访问的。Litmus 在设计上考虑了可扩展并支持各种持久存储解决方案,目前它支持 Percona MySQL、MongoDB、Apache Cassandra 和 Minio 等多种有状态应用,并覆盖了部署、加载、重调度、扩展、升级和取消服务(de-provision)等多个通用的应用生命周期场景。


想要上手使用 Litmus 的用户,推荐查看Github代码库官方文档中给出的“Getting Started”章节。


查看英文原文: [Chaos Engineering Kubernetes with the Litmus Framework](


2019-06-12 08:008370
用户头像

发布了 391 篇内容, 共 148.0 次阅读, 收获喜欢 257 次。

关注

评论

发布
暂无评论
发现更多内容

【web安全】Spring boot heapdump获取敏感信息

H

Java 网络安全 WEB安全

使用Rust的几点理由,加入我们,一起学习!

非凸科技

数字化时代,银行如何建设管理小程序平台促进线上金融业务发展?

FinClip

小程序 银行

【过等保】2022年过等保常见问题解答

行云管家

网络安全 等保 等保2.0

释放「数据价值」,请别忽视基础软件本身的提升

ToB行业头条

国产虚拟化软件H3C CAS体验之环境搭建(虚拟机搭建)

WangNing

虚拟化 环境搭建 H3C CAS

网易数帆云原生日志平台架构实践

网易数帆

云原生 网易

2022阿里云采购季,移动研发平台EMAS爆款清单来袭

移动研发平台EMAS

阿里云 开发者 emas 采购季 移动研发

一眼定位问题,函数计算发布日志关键词秒检索功能

Serverless Devs

阿里云 Faas 函数

揭秘字节跳动云原生Spark History 服务 UIService

字节跳动数据平台

大数据 spark 字节跳动 湖仓一体

Intel CET缓解机制实战解读

腾讯安全云鼎实验室

安全攻防 网络安全 安全研究

设计秒杀系统架构,这4个关键点要注意

华为云开发者联盟

秒杀系统 订单 秒杀系统架构 RabbitMQ延时队列 Rabbit MQ

NextRPC : RPC多段返回的创新和探索

阿里巴巴终端技术

RPC 客户端

销售CRM系统解决方案

低代码小观

销售管理 CRM 企业管理系统 CRM系统 客户关系管理系统

详解图像处理的算术运算与逻辑运算

华为云开发者联盟

OpenCV 计算机视觉 图像处理 图像算术 逻辑运算

ModStartCMS模块化建站系统 v3.4.0 富文本粘贴上传,自定义分页

ModStart开源

php laravel modstart

2021年券商APP盘点:用户规模大幅度增长,智能炒股成为行业标配

易观分析

券商

业务驱动的全景监控体系在阿里的应用 | 阿里巴巴DevOps实践指南

阿里云云效

云计算 阿里云 DevOps 云原生 云端开发

网络安全 kali web安全【渗透测试】目录遍历漏洞

学神来啦

网络安全 渗透测试 WEB安全 kali kali Linux

Tech Talk 活动预告 | 送走 CentOS Linux 8,开发者们该如何保持 Linux 的采用途径?

亚马逊云科技 (Amazon Web Services)

开发者

大咖说|阿里巴巴闻佳:数字技术将引领我们走向节能型社会

大咖说

阿里巴巴 数字化 环保 双碳

“==”和“===”,难道不是多一个的区别吗?

华为云开发者联盟

JavaScript typescript string 变量 操作符

【CAD】系列Ⅰ

謓泽

3月月更

无缝融入 Kubernetes 生态 | 云原生网关支持 Ingress 资源

阿里巴巴云原生

vivo鲁班RocketMQ平台的消息灰度方案

vivo互联网技术

RocketMQ 消息中间件

云图说|DRS数据对比——带您随时观测数据一致性

华为云开发者联盟

数据一致性 DRS 数据复制 数据迁移

二维码的应用技术

源字节1号

开源 前端开发 二维码 后端、

C++后台开发学习路线

Linux服务器开发

后台开发 C/C++ 后端开发 Linux服务器开发 C++后台开发

消息复杂计算的抽象和简化

阿里巴巴终端技术

数据处理 客户端 消息

网络协议之:socket协议详解之Datagram Socket

程序那些事

socket 网络协议 udp 程序那些事 3月月更

什么是FAQ?如何编写FAQ文档?

小炮

开源框架 Litmus,支持 Kubernetes 混沌工程_开源_InfoQ精选文章