LitmusChaos 一个具有跨云支持的云原生混沌工程框架

LitmusChaos 一个具有跨云支持的云原生混沌工程框架

2022-10-28 0 1,076
资源编号 47021 最近更新 2022-10-28
¥ 0人民币 升级VIP
立即下载 注意事项
下载不了?请联系网站客服提交链接错误!
增值服务: 安装指导 环境配置 二次开发 模板修改 源码安装

本期推荐的 LitmusChaos 是一个具有跨云支持的云原生混沌工程框架。

LitmusChaos 一个具有跨云支持的云原生混沌工程框架

这是一个 CNCF 沙盒项目,已被多个组织采用。它的使命是通过提供完整的混沌工程框架和相关的混沌实验来帮助 Kubernetes SRE 和开发人员发现非 Kubernetes 以及在 Kubernetes 上运行的平台和应用程序的弱点。

Litmus 最初可用于在暂存环境中运行混沌实验,最终在生产环境中运行以发现错误和漏洞,修复从而提高系统的弹性。Litmus 采用一种Kubernetes-native方法,通过自定义资源以声明的方式定义混沌意图。

用例

  • 对于开发人员:在应用程序开发期间运行混沌实验,作为单元测试或集成测试的扩展。
  • 对于 CI/CD 管道构建者:当应用程序在管道中遇到故障路径时,将混沌作为管道阶段运行以查找错误。
  • 对于 SRE:计划和安排应用程序和/或周围基础设施的混沌实验。这种做法可以识别部署系统中的弱点并提高弹性。

Litmus的重要性

LitmusChaos 一个具有跨云支持的云原生混沌工程框架

Kubernetes 正在各种基础架构上运行,从虚拟机到裸机以及它们的组合。平台的物理性质是在容器内运行的应用程序的故障来源,如上图的提示所示。下一层依赖是 Kubernetes 本身。

您的应用程序弹性实际上更多地取决于底层堆栈,而不是您的应用程序本身。一旦您的应用程序稳定下来,您在 Kubernetes 上运行的服务的弹性可能在 90% 以上的时间都依赖于其他组件和基础设施。

因此,每当底层堆栈发生更改时,验证您的应用程序弹性非常重要。不断验证是关键。升级前的鲁棒测试还不够好,主要是升级测试时不可能考虑到各种故障。这引入了混沌工程的概念。“不断验证您的服务是否能够抵御故障”的过程称为混沌工程。

Litmus特征

  • 添加混沌工作流创建,混沌实验成为混沌工作流的构建块,允许用户使用顺序或并行实验执行创建更大的混沌场景。
  • 添加了ChaosCenter,您可以在其中利用所有这些功能以及更多功能

工作流创建

  • 来自模板、从头开始的自定义工作流程(使用 ChaosHubs)、来自预先创建的 YAML
  • 混沌实验序列控制(并行和顺序步骤创建)
  • 将 Singular 或 Cron 工作流创建为计划
  • 根据您的用例优先考虑混沌实验

用户和团队

  • 使用基于角色的访问控制创建用户
  • 创建一个由多个用户组成的团队
  • 验证用户

监控和可观察性

  • 连接数据源(来自任何代理)并监控工作流程
  • 可视化工作流运行统计数据和汇总计划
  • 比较两个或多个工作流
  • 上传社区中可用的共享/可下载仪表板
  • 编辑查询、调整仪表板以从头开始创建自定义仪表板
  • 使用来自 Prometheus 数据源的交错事件和指标实时监控混乱的影响

工作流程管理

  • 使用GitOps推出自动更改
  • 允许从自定义图像服务器(公共和私有)添加图像
  • 测量和分析每个工作流的弹性分数

Litmus 本身是由微服务组成的。我们确保通过为 2.0 添加上述功能,将额外的微服务与现有的微服务无缝集成。Litmus 2.0 完全向后兼容。没有功能被弃用。

资源

ChaosCenter是控制 Litmus 周围发生的所有不同混沌活动的单一事实来源。从 ChaosCenter,您可以自由地管理 Litmus 的每个部分,并完全按照您想要的方式塑造您的工作流程。

Litmus 中的ChaosAgent只不过是通过 Litmus 注入 Chaos 的目标集群。应该始终有至少一个或多个 ChaosAgent 连接到 ChaosCenter。每个单独的 ChaosAgent 都可以被选为 Chaos Injection 的目标代理。

在 Litmus 中,ChaosAgent 可以分为两种类型

  • 自我代理
  • 外部代理

作为 Litmus 安装的一部分,Self Agent 将在 ChaosCenter 中注册为默认代理。安装程序选择安装 Litmus 的同一集群作为 Self Agent。现在,您可以从 ChaosCenter 将混乱引入这个 Self Agent 并观察结果。

由于 ChaosCenter 是跨云的,因此您可以借助命令行实用程序litmusctl将多个外部 Kubernetes 代理连接到同一台。连接后,您可以管理、监控、观察和诱导从 ChaosCenter 到相应 ChaosAgent 的混乱。

ChaosCenter 集群范围安装

使用helm

第 1 步:添加 litmus helmhelm install chaos litmuschaos/litmus –namespace=litmushelm repo add litmuschaos
https://litmuschaos.github.io/litmus-helm/helm repo list

步骤 2:创建要安装 Litmus

  • ChaosCenter 可以放置在任何命名空间中,但是对于这种情况,我们选择litmus作为命名空间。
kubectl create ns litmus

第 3 步:安装 Litmus

helm install chaos litmuschaos/litmus --namespace=litmus

预期产出

NAME: chaos
LAST DEPLOYED: Tue Jun 15 19:20:09 2021
NAMESPACE: litmus
STATUS: deployed
REVISION: 1
TEST SUITE: None
NOTES:
Thank you for installing litmus 

Your release is named chaos and its installed to namespace: litmus.

Visit https://docs.litmuschaos.io to find more info.

注意: Litmus 使用 Kubernetes CRD 来定义混沌意图。Helm3 比 Helm2 更好地处理 CRD。在开始运行混沌实验之前,请验证是否正确安装了 Litmus。

使用kubectl

应用清单文件将安装所有必需的服务帐户配置和 ChaosCenter。

kubectl apply -f https://litmuschaos.github.io/litmus/2.8.0/litmus-2.8.0.yaml

验证安装

验证前端、服务器和数据库 Pod 是否,检查安装 Litmus 的命名空间中的 pod:

kubectl get pods -n litmus

预期产出

NAME                                       READY   STATUS              RESTARTS   AGE
litmusportal-server-6fd57cc89-6w5pn        1/1     Running              0          57s
litmusportal-auth-server-7b596fff9-5s6g5   1/1     Running              0          57s
mongo-0                                    1/1     Running              0          57s
litmusportal-frontend-55974fcf59-cxxrf     1/1     Running              0          58s

检查在安装 Litmus 的命名空间中运行的服务:

kubectl get svc -n litmus

预期产出

NAME                               TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)                         AGE
litmusportal-frontend-service      NodePort    10.43.79.17    <none>        9091:31846/TCP                  102s
litmusportal-server-service        NodePort    10.43.30.54    <none>        9002:31245/TCP,8000:32714/TCP   101s
litmusportal-auth-server-service   NodePort    10.43.81.108   <none>        9003:32618/TCP,3030:31899/TCP   101s
mongo-service                      ClusterIP   10.43.227.10   <none>        27017/TCP                       101s
mongo-headless-service             ClusterIP   None           <none>        27017/TCP                       101s

访问

要设置并登录到 ChaosCenter,请展开刚刚创建的可用服务并复制PORT该
litmusportal-frontend-service服务

kubectl get svc -n litmus
#在剪贴板中复制 PORT 后,只需以这种方式使用您的 IP 和 PORT<NODEIP>:<PORT>即可访问 Litmus ChaosCenter。
http://172.17.0.3:30385/

172.17.0.3我的 NodeIP在哪里,30385是前端服务端口。如果使用 LoadBalancer,唯一的变化是提供一个<LoadBalancerIP>:<PORT>. 详细了解如何使用 LoadBalancer 访问 ChaosCenter

您应该能够看到 Litmus ChaosCenter 的登录页面。账号密码:

Username: admin
Password: litmus
LitmusChaos 一个具有跨云支持的云原生混沌工程框架

默认情况下,您被分配一个具有所有者权限的默认项目。

LitmusChaos 一个具有跨云支持的云原生混沌工程框架

在 5 分钟内运行您的第一个 Chaos 工作流程

  1. 从 ChaosCenter 主页或Litmus 工作流程选项卡的右上角单击计划工作流程。
LitmusChaos 一个具有跨云支持的云原生混沌工程框架

Self Agent作为混沌注入的目标ChaosAgent。这是我们将选择哪个 ChaosAgent 作为目标代理的地方。

LitmusChaos 一个具有跨云支持的云原生混沌工程框架

展开第一个单选按钮(从预定义工作流模板创建新工作流)并从预定义工作流列表中选择podtato-head

LitmusChaos 一个具有跨云支持的云原生混沌工程框架

Workflow Settings中查看工作流详细信息,您可以根据需要修改工作流的名称和描述。

LitmusChaos 一个具有跨云支持的云原生混沌工程框架

查看您将要执行的 Litmus 工作流程的可视化。如果需要,此步骤还允许您编辑或修改 YAML/可调参数。我们现在只坚持默认配置。

LitmusChaos 一个具有跨云支持的云原生混沌工程框架

使用滑块为作为工作流程一部分的混沌实验分配权重。这通常在有多个实验作为工作流程的一部分时使用。这些权重会影响混沌工作流程的弹性分数计算。

LitmusChaos 一个具有跨云支持的云原生混沌工程框架

通过选择立即安排选项来安排 Litmus 工作流以立即和一次性执行

LitmusChaos 一个具有跨云支持的云原生混沌工程框架

验证并单击完成以启动混沌注入

LitmusChaos 一个具有跨云支持的云原生混沌工程框架

至此,您已经成功地使用 Litmus 安排了您的第一个 Chaos 工作流程。

LitmusChaos 一个具有跨云支持的云原生混沌工程框架

LitmusChaos 一个具有跨云支持的云原生混沌工程框架

—END—

开源协议:Apache-2.0 license

资源下载此资源为免费资源立即下载

申明:本文由第三方发布,内容仅代表作者观点,与本网站无关。对本文以及其中全部或者部分内容的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。本网发布或转载文章出于传递更多信息之目的,并不意味着赞同其观点或证实其描述,也不代表本网对其真实性负责。

七爪网 免费源码 LitmusChaos 一个具有跨云支持的云原生混沌工程框架 https://www.7claw.com/47021.html

分享免费的开源源码

常见问题
  • 1、自动:拍下后,点击(下载)链接即可下载;2、手动:拍下后,联系卖家发放即可或者联系官方找开发者发货。
查看详情
  • 1、源码默认交易周期:手动发货商品为1-3天,并且用户付款金额将会进入平台担保直到交易完成或者3-7天即可发放,如遇纠纷无限期延长收款金额直至纠纷解决或者退款!;
查看详情
  • 1、七爪会对双方交易的过程及交易商品的快照进行永久存档,以确保交易的真实、有效、安全! 2、七爪无法对如“永久包更新”、“永久技术支持”等类似交易之后的商家承诺做担保,请买家自行鉴别; 3、在源码同时有网站演示与图片演示,且站演与图演不一致时,默认按图演作为纠纷评判依据(特别声明或有商定除外); 4、在没有”无任何正当退款依据”的前提下,商品写有”一旦售出,概不支持退款”等类似的声明,视为无效声明; 5、在未拍下前,双方在QQ上所商定的交易内容,亦可成为纠纷评判依据(商定与描述冲突时,商定为准); 6、因聊天记录可作为纠纷评判依据,故双方联系时,只与对方在七爪上所留的QQ、手机号沟通,以防对方不承认自我承诺。 7、虽然交易产生纠纷的几率很小,但一定要保留如聊天记录、手机短信等这样的重要信息,以防产生纠纷时便于七爪介入快速处理。
查看详情
  • 1、七爪作为第三方中介平台,依据交易合同(商品描述、交易前商定的内容)来保障交易的安全及买卖双方的权益; 2、非平台线上交易的项目,出现任何后果均与互站无关;无论卖家以何理由要求线下交易的,请联系管理举报。
查看详情

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务