[.com速译]ChaosMesh?是一个云原生混沌工程平台,负责编排Kubernetes环境中的混沌。借助ChaosMesh,您可以直接使用WebUIChaosDashboard模拟故障并管理混沌实验。自开源以来,ChaosMesh已被许多公司采用,以确保其系统的弹性和稳健性。但在过去的一年里,我们经常听到来自社区的请求,询问如何在服务未部署在Kubernetes上的情况下进行混沌实验。混沌是什么?chaosd是一个增强的工具包,可以满足对物理机器上混沌测试日益增长的需求。你可能会觉得这个名字很熟悉!这是因为它是从混沌网格中的关键组件chaos-daemon演变而来的。在TiDBHackathon2020上,我们将chaosd重构为不仅仅是一个命令行工具。现在使用chaosdv1.0.1,您可以模拟针对物理机的特定错误,然后撤消混沌实验,就好像什么都没发生一样。chaosd的特性chaosd的最新升级版具有广泛的特性,以下是最突出的特性:易用性:混沌实验可以使用chaosd命令轻松创建和管理。多种故障类型:可以模拟不同级别的物理机注入故障,包括进程故障、网络故障、Java虚拟机(JVM)应用程序故障、压力场景、磁盘故障和主机故障。多种工作模式:Chaosd可以作为命令行工具使用,也可以作为服务使用。事不宜迟,试试吧。如何使用混沌?本节将介绍如何使用chaosd注入网络故障。您的Linux内核版本必须是v2.17或更高版本。1.下载并解压chaosd要下载chaosd,请运行以下命令:curl-fsSL-oChaosd-v1.0.1-linux-amd64.tar.gzhttps://mirrors.chaos-mesh.org/chaosd-v1.0.1-linux-amd64.tar.gz解压缩文件。它包含两个文件夹:chaosd包含chaosd的工具条目。tools包含混沌实验所需的工具,包括stress-ng(模拟压力场景)、Byteman(模拟JVM应用故障)和PortOccupyTool(模拟网络故障)。2.创建一个混沌实验在这个混沌实验中,服务器将无法访问chaos-mesh.org。运行以下命令:sudo./chaosdattacknetworkloss--percent100--hostnamechaos-mesh.org--deviceens33示例输出:Attacknetworksuccessfully,uid:c55a84c5-c181-426b-ae31-99c8d4615dbemesh.org发送网络数据包或无法从中接收数据包chaos-mesh.org。使用sudo命令的原因是混沌实验修改了网络规则,需要root权限。另外,不要忘记保存混沌实验的uid。您稍后将在恢复过程中输入此信息。3、验证结果使用ping命令查看服务器是否可以访问chaos-mesh.org:pingChaos-mesh.orgPINGChaos-mesh.org(185.199.109.153)56(84)bytesofdata。执行这条命令后,网站很可能没有反应。按CTRL+C停止ping过程。您应该看到ping命令统计信息:100%packetloss(100%数据包丢失)。示例输出:2个数据包已传输,0个已接收,100%数据包丢失,time1021ms4。恢复实验要恢复实验,请运行以下命令:sudo./chaosdrecoverc55a84c5-c181-426b-ae31-99c8d4615dbe示例输出:Recoverc55a84c5-c181-426b-ae31-9615c8duc由于需要root权限,因此需要使用sudo命令。完成恢复实验后,再次尝试pingchaos-mesh.org以验证连通性。后续步骤1.支持DashboardWeb如您所见,chaosd易于使用。但我们可以让它变得更容易——用于chaosd的DashboardWeb目前正在积极开发中。我们将继续增强其可用性并实现更多功能,例如管理使用chaosd运行的混沌实验和使用ChaosMesh运行的混沌实验。这将为Kubernetes和物理机上的混沌测试提供一致和统一的用户体验。下面的架构只是一个简单的例子:图1.ChaosMesh的优化架构2.增加更多的故障注入类型目前chaosd提供了六种故障注入。我们计划开发更多ChaosMesh支持的类型,包括HTTPChaos和IOChaos。如果您有兴趣帮助我们改进chaosd,请随时选择问题票并开始使用!试一试!如果您对使用chaosd感兴趣并想探索更多,请查看文档。如果您在运行chaosd时遇到问题,或者有功能请求,请随时创建问题单。我们很想听到您的声音!原标题:HowtoRunChaosExperimentsonYourPhysicalMachine,作者:王翔
