混沌工程实践 - LitmusChaos
LitmusChaos介绍
LitmusChaos是一个用于云原生的混沌工程工具集。Litmus提供了在Kubernetes上注入故障演练的工具,以帮助SRE发现部署中的弱点。SRE使用Litmus在模拟环境中运行混沌实验,最终在生产环境中找到bug和漏洞。修复这些弱点可以提高系统的弹性。
架构
Litmus采用云原生的方法来创建、管理和监控混沌演练。使用Kubernetes自定义资源定义(CRD)进行编排,Litmus模块可以分成两部分:
- Portal
- Agents
Portal 是一组Litmus组件,用作跨云管理混沌实验的控制平面(WebUI),用于协调和观察Agent的混沌实验工作流。
Agent 是一组Litmus组件,包括运行在K8s集群上的混沌实验工作流。
在典型的用户场景中,用户会安装litmus。
在自有集群上安装Portal和Agent。使用Portal用户可以在Agent上创建/调度新的混沌实验工作流,并从Portal上观察结果。用户还可以将更多集群连接到Portal,并将Portal用作跨云管理的单个Window。
Portal Components
- Litmus WebUI
Litmus WebUI提供了web用户界面,用户可以在这里轻松构建和观察混沌实验工作流,webUI也充当了跨云混沌实验控制平面。 - Litmus Server
Litmus服务器充当中间件,用于处理来自用户界面的API请求,将配置和结果详细信息存储到数据库中。它还充当请求之间的通信接口,并将工作流调度到代理。 - Workflow
基于Argo的一个工作流引擎,混沌实验工作流不仅仅是一个简单的混沌实验。它支持用户定义预期结果、观察结果、分析整个系统行为,以及在决策过程中是否需要调整系统以提高弹性。LitmusChaos为典型的开发或操作团队提供了开发、使用和管理混沌实验工作流所必需的基础设施。Litmus的Teaming和GitOps特性大大有助于团队或软件组织内部的混沌工作流管理的协作。 - Litmus DB
Litmus DB充当混沌实验工作流及其结果的存储。
Agent components
- Chaos Operator
Chaos Operator监视ChaosEngine并执行CR中提到的混沌实验。Chaos Operator是命名空间范围的。默认情况下,它在litmus名称空间中运行。实验完成后,Chaos Operator调用Chaos Exporter将混沌实验Metrics导出到Prometheus数据库。 - CRDs
在安装过程中,Kubernetes集群上安装了以下三个CRD。
- ChaosExperiment
混沌实验是LitmusChaos体系结构中的基本单元。用户可以选择现成的混沌实验或创建新的混沌实验来构建所需的混沌工作流。 - ChaosEngine
将Kubernetes application或Kubernetes node链接到ChaosExperiment的resource。通过LitmusChaos Operator监控该resource,然后调用混沌演练ChaosExperiment。 - ChaosResult
保存混沌实验结果的资源。Chaos Exporter读取结果并将Metrics导出到已配置的Prometheus服务器中。
- Chaos Probes
Chaos Probes是可插拔的检查探针,可以在任何混沌实验的ChaosEngine中定义。混沌实验Pod根据它们定义的模式执行这些检查,并将它们的成功作为确定实验结果的必要条件(以及标准的“内置”检查)。 - Chaos Exporter
可以选择将Metrics导出到Prometheus数据库。Chaos Exporter实现了Prometheus metrics endpoint。 - Subscriber
Subscriber是Agent端使用的组件,它与Litmus Server组件交互,获取混沌实验工作流的详细信息,并将结果发送回代理端。
安装
Control Plane安装
Pre-requisites
- Kubernetes 1.15 or later.
- Persistent volume of 20GB
- Helm3 or Kubectl
Installation Using helm
kubectl create ns litmus
git clone https://github.com/litmuschaos/litmus-helm
cd litmus-helm
helm install litmuschaos --namespace litmus ./charts/litmus-2-0-0-beta/
Verify your installation
kubectl get pods -n litmus
chaos-litmus-portal-frontend-ff8b554dc-q5rl4 1/1 Running 0 2m6s
chaos-litmus-portal-mongo-6764cfdd59-c9r56 1/1 Running 0 2m6s
chaos-litmus-portal-server-5ffbccbfff-dknv8 2/2 Running 0 2m6s
Setup the Portal
kubectl get svc -n litmus
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
chaos-litmus-portal-mongo ClusterIP 10.104.107.117 <none> 27017/TCP 2m
litmusportal-frontend-service NodePort 10.101.81.70 <none> 9091:30385/TCP 2m
litmusportal-server-service NodePort 10.108.151.79 <none> 9002:32456/TCP,9003:31160/TCP 2m
Accessing the Portal
Username: admin
Password: litmus
Agent安装
Litmus包含两种类型的Agent,
- Self Agent
- External Agent
默认情况下,作为Litmus安装的一部分,安装Portal所在的集群被自动注册为Self Cluster。从Portal中可以自动的在Self Cluster中执行混沌实验,并且查看执行结果。
如前所述,Portal是一个跨云混沌实验控制Plane。也就是说,用户可以将多个外部Kubernetes Agent连接到此Portal。连接后,用户可以从Portal管理混沌实验,也就是说,用户可以从Portal将混都实验发送给Agent,并从Portal观察结果。使用命令行实用程序,可以将External Agent连接到Portal。
Requirements
Kubeconfig
Installation
#step1,Download litmusctl
Wget https://litmusctl-bucket.s3-eu-west-1.amazonaws.com/litmusctl-xxx-xxx-v0.1.0.tar.gz#step2,unzip
tar -zxvf litmusctl-<OS>-<ARCH>-<VERSION>.tar.gz#step3,install litmusctl
sudo mv litmusctl /usr/local/bin/litmusctl#step4,register
litmusctl agent connect
混沌工程实践 - LitmusChaos相关推荐
- 浩鲸科技基于ChaosBlade的混沌工程实践
简介:浩鲸科技在海量互联网服务以及当前爆炸式增长的流量场景实践过程中,沉淀出了包括,链路压测,流控管理,动态扩缩容,故障演练等高可用核心技术,并通过云上服务化.平台化和工具化的形式,帮助内部产品研发部 ...
- 披荆斩棘:论百万级服务器反入侵场景的混沌工程实践
在繁杂的业务和网络环境下,在公司百万级服务器面前,要做到入侵发生时的及时检测,那么反入侵系统的有效性,即系统质量,是至关重要的. 洋葱系统是腾讯公司级的主机反入侵安全检测系统,它是实现了前端主机age ...
- China .NET Conf 2019-.NET技术架构下的混沌工程实践
这个月的8号.9号,个人很荣幸参加了China.NET Conf 2019 , 中国.NET开发者峰会,同时分享了技术专题<.NET技术架构下的混沌工程实践>,给广大的.NET开发小伙伴介 ...
- 分布式服务架构下的混沌工程实践
本文来自阿里巴巴高可用架构团队高级开发工程师肖长军(花名穹谷)在 GIAC(全球互联网架构大会)上的分享,包含三部分内容:(阿里巴巴中间件公众号对话框发送"混沌工程",获取分享PP ...
- 字节跳动混沌工程实践之场景化主动实验
背景 从 2010 年 Netflix 上线 Chaos Mokey 的第一个版本到现在,虽然混沌工程发展已历时十年,但其实只在少数大厂里面有较成熟的落地,对绝大部分研发同学来说,混沌工程还是一个比较 ...
- 一文理解分布式服务架构下的混沌工程实践(含PPT)
导读:近日,在 GIAC(全球互联网架构大会)上,来自阿里巴巴高可用架构团队的高级开发工程师肖长军(花名穹谷)做了<分布式服务架构下的混沌工程实践>主题分享.本次分享包含三部分,第一部分从 ...
- 入侵sf服务器技术_披荆斩棘:论百万级服务器反入侵场景的混沌工程实践
作者:[腾讯反入侵团队]jaylam 在繁杂的业务和网络环境下,在公司百万级服务器面前,要做到入侵发生时的及时检测,那么反入侵系统的有效性,即系统质量,是至关重要的. 洋葱系统是腾讯公司级的主机反入侵 ...
- 混沌工程详细介绍——Netflix持续交付实践探寻
内容来源:DevOps案例深度研究 – Netflix的文化与工程实践战队(本文只展示部分案例PPT及研究成果,更多细节请关注案例分享活动,及本公众号). 本案例内容贡献者:高金梅,李晓莉,潘雄鹰,潘 ...
- Netflix 混沌工程手册 Part 3:实践方法
本文翻译自 Netflix 工程师合著的 Chaos Engineering 一书.这本书介绍了混沌工程的主要概念,以及如何在组织中实践这些概念和经验.也许我们开发的相关工具只适用于 Netflix ...
最新文章
- Python常用函数与技巧总结(一)
- VMware 虚拟化编程(15) — VMware 虚拟机的恢复方案设计
- 百度开源的 71 个项目,看看你用过几个?
- Android 的Google+平台
- linux tar打包大文件并分割传输另一台linux服务器
- php5.5 sqlserver 2012,PHP连接SQLSERVER2012
- python 2 3 共存_python 2 3 共存
- 有限元python编程流行吗_Python进行有限元分析
- maven添加子工程_Maven建立父子项目和跨项目调用内容的步骤—佳佳小白
- 【JavaScript】回流(reflow)与重绘(repaint)
- 荐一个不错的UI设计网站: uimaker
- PCL:三维点云概述(一)
- linux怎么查看root权限,linux 查看当前用户是否有root权限490
- 由ANSI标准定义的C语言关键字,C语言32个关键字详解
- Gitlab的自动流水线搭建
- STM32F0系列出现overrun interrupt 和PB6 PB7映射的解决办法
- a标签之间自带的间距处理
- TeamCity自动编译设置教程
- .json格式是什么?如何快速打开.json文件?
- 使用轻量型模型对deepsort特征提取模块重训练
热门文章