写点什么

开源框架 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:008509
用户头像

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

关注

评论

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

有了国产 DevOps 工具 ,还怕数字化转型成本高?

飞算JavaAI开发助手

web前端培训班哪个好选择

小谷哥

如何选择ui设计机构

小谷哥

LED显示屏在会议室如何应用

Dylan

LED显示屏 led显示屏厂家

携手数字创新 共筑国产生态 7月份AntDB与5款产品完成互认证

亚信AntDB数据库

AntDB 国产数据库 AISWare AIDB

原来如此!谷歌架构师10年呕心沥血汇成的《23种设计模式》,这才是正解

冉然学Java

架构 23种设计模式 java; 编程、

赶紧收藏!!!我直接上瘾!百万人都在学的Docker

指剑

签约计划第三季 8月月更

JavaScript 里三个点 ...,可不是省略号啊···

华为云开发者联盟

JavaScript 前端 运算符 函数

基于DevCloud进行黑白棋实时对战游戏开发实践【华为云至简致远】

科技怪咖

开源一夏 | Spring事务传播机制

六月的雨在InfoQ

开源 Spring事务 8月月更

腾讯云产品可观测最佳实践 (Function)

观测云

优雅地实时检测和更新 Web 应用

领创集团Advance Intelligence Group

Web Web应用

兆骑科创创业赛事活动举办平台,投融资对接,线上直播路演

兆骑科创凤阁

兆骑科创赛事服务平台对接,海内外高层次人才引进

兆骑科创凤阁

大数据培训课程哪个好呢?

小谷哥

湖北钠斯网络数字藏品交易系统

开源直播系统源码

NFT 数字藏品

基于微信小程序的幼儿园招生报名系统开发笔记

CC同学

Java面试项目推荐,15个项目吃透两个offer拿到手软

冉然学Java

offer java; 技术栈 MAll java项目实战分享

干货:从零设计高并发架构

C++后台开发

高并发 架构师 C/C++后台开发 C/C++开发 高并发架构

有了这个开源工具后,我五点就下班了!

IT学习日记

EasyExcel 签约计划第三季 seaweedfs文件系统 java excel导出导入 java csv导出导入

国产数据库的红利还能“吃”多久?

墨天轮

数据库 国产数据库

什么是低代码开发?大家都真的看好低代码开发吗?

优秀

低代码开发

面向云时代的龙蜥操作系统 是 CentOS 替代的最佳选择

OpenAnolis小助手

龙蜥操作系统 开放原子全球开源峰会 OpenAnolis 分论坛 CentOS 停服 CentOS 迁移最佳选择

【有奖征文 第13期】至简致远,“云”响世界,大胆秀出你的华为云技术主张,高额激励等你拿

科技怪咖

带你玩转“超大杯”ECS特性及实验踩坑【华为云至简致远】

科技怪咖

零基础培训学习大数据课程

小谷哥

秋招冲刺版!奉上[Java一线大厂高岗面试题解析合集]

冉然学Java

面试 面试题 大厂 java; 秋招

一文读懂字节跳动“埋点验证平台”

字节跳动数据平台

字节跳动 数据治理 埋点治理 数据研发 埋点验证

前端培训机构课程怎么样

小谷哥

「Gitee篇」如何用Git平台账号登录建木CI

Jianmu

git 开源 DevOps 低代码 gitee

阿里巴巴最新分享Spring Cloud核心笔记,全程实例讲解,通俗易懂

Java工程师

Java spring spring-cloud

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