写点什么

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

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

关注

评论

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

NFTScan | 12.09~12.15 NFT 市场热点汇总

NFT Research

NFT #Web3

2024年用户喜爱的Top5云电脑排名!没想到黑马是这家

小喵子

云电脑 云游戏 ToDesk云电脑 云电竞 网易云游戏电脑

自动化测试AI智能体:掌握AI,人人都是自动化测试工程师

测吧(北京)科技有限公司

测试

《Django 5 By Example》阅读笔记:p561-p613

codists

Python django

阿里妈妈公布NeurIPS比赛结果并开源AuctionNet

新消费日报

QT客户端开发的代码优化

北京木奇移动技术有限公司

软件外包公司 QT外包开发 QT开发公司

mes在造纸工厂数字化转型中的应用

万界星空科技

mes 万界星空科技 造纸行业 造纸mes 造纸厂

揭秘南京大学人工智能通识教育,和鲸Heywhale上线人工智能通识课一体化解决方案

ModelWhale

Python 人工智能 大数据 教改

英伟达视角下的 2025:AI智能体元年

GPU算力

英伟达 AI Agent AI 智能体 Swarm magentic-one

犬类癌症检测(CANDiD)研究:使用独立测试集对1000多只犬进行基于高通量测序的多癌种早期检测"液体活检"血液测试的临床验证

INSVAST

生信服务 液体活检 生信分析 Sentieon 变异检测

天翼云全栈混合云应用场景

天翼云开发者社区

云计算 混合云 天翼云

软件测试常用抓包工具 Charles 与 Fiddler

测试人

软件测试

重磅首发!网易伏羲具身智能解决方案推动人形机器人产业新发展

网易伏羲

解决方案 网易伏羲 人形机器人 具身智能

又遇百度,能否 hold 住?

王中阳Go

Go 面试

仓库存储管理系统-综合管理系统(源码+文档+部署+讲解)

深圳亥时科技

SPICE协议浅析

天翼云开发者社区

云计算 远程控制

阿里云大模型矩阵:千问&Qwen解锁多元智能

测吧(北京)科技有限公司

测试

为什么某些 batch size 会突然导致性能下降?

Baihai IDP

人工智能 深度学习 AI LLMs

OCTC发布《BMC开放固件产业报告》,加速多元算力OpenBMC创新落地

财见

《深入浅出Apache Spark》系列⑤:Spark SQL的表达式优化

数新网络官方账号

sql

以太坊项目日渐冷门:以太坊链项目开发的现状与未来

区块链软件开发推广运营

交易所开发 dapp开发 链游开发 公链开发 代币开发

淘宝天猫API接口深度解析:如何高效利用商品详情与关键词搜索商品列表功能

代码忍者

API 接口 pinduoduo API

容器与虚拟机的区别与关系

天翼云开发者社区

云计算 容器 虚拟机

去哪儿秒级监控预警落地实践

Qunar技术沙龙

后端 预警监控

反向代购新风尚:创业者出海的新蓝海

代码忍者

代购系统 跨境独立站 反向淘宝代购集运系统

7个指标看本轮加密货币牛市走到哪一步

区块链软件开发推广运营

交易所开发 dapp开发 链游开发 代币开发 链游开发公链开发

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