首页 > 其他分享 >K8S故障注入混沌工程开源平台ChaosMesh

K8S故障注入混沌工程开源平台ChaosMesh

时间:2023-08-15 14:34:46浏览次数:54  
标签:混沌 开源 故障 故障注入 实验 ChaosMesh K8S

Chaos Mesh 是针对K8S的云原生混沌工程开源平台。 可以用它方便地模拟开发、测试、生产环境中可能出现的各种异常情况,发现系统中潜在的问题。

ashley55_a_steel_or_metal_grate_is_shown_in_close_up_in_the_st_4ffaedf2-323f-4495-8b0c-d6ed961f5fbf.png

创建者

研发支持混合事务与分析处理的开源数据库TiDB的PingCap公司

一句话介绍

ChaosMesh是针对K8S的云原生开源混沌工程平台。

关键特性

ChaosMesh的关键特性包括可注入的故障、实验工作流、可视化操作和安全控制。

可注入的故障

可注入的故障,包括基本资源故障,平台故障和应用故障这3类。

基本资源故障,包括模拟Pod失效,网络失效,DNS失效,HTTP通信延迟,CPU或内存使用高负荷,文件读写失效,时间跳跃异常,应用内存分配异常等。

平台故障,包括模拟AWS或GCP节点重启。

应用故障,包括Java应用方法调用延时。

实验工作流

实验工作流,包括编排顺序或并行执行的故障注入实验,查看实验状态和结果,暂停实验,支持用YAML或Web UI定义和管理实验。

可视化操作

可视化操作,包括可以在Web UI上点击鼠标,定义实验的范围、故障注入类型和调度规则,最后能展示实验结果。

安全控制

安全控制,包括使用K8S原生提供的基于角色的访问控制功能,来管理故障注入的使用权限。还可以通过设置命名空间注解,来指定允许进行混沌实验的命名空间,进一步保障对混沌实验的控制。

适用平台

K8S

适用场景

Chaos Mesh 为 Kubernetes 上的混沌工程提供了很大的灵活性,鼓励通过 CI/CD 进行自动化实验,并被 Azure Chaos Studio 用于注入 Kubernetes 故障。

优势

能提供K8S平台上的基础资源、平台和应用故障模拟。

具有故障场景编排能力。

为了降低混沌工程项目的门槛,Chaos Mesh提供了可视化操作。 可以在 Web UI 上轻松设计 Chaos 场景并监控 Chaos 实验的状态。

使用K8S原生提供的基于角色的访问控制功能,来管理故障注入的使用权限。

劣势

只能在K8S集群上使用。否则,就只能使用针对节点进行故障注入实验的附带工具chaosd。

临时执行的实验会无限期地运行。设置实验持续时间的方法,只能进行实验编排,或手动终止实验。

开源许可证

Apache-2.0 license

GitHub点赞数

5.9k

最近发布日期与版本

2023.06: v2.6.1

所属项目

CNCF云原生计算基金会孵化项目


你还知道有什么好用的开源故障注入工具?你还希望我聊有关混沌工程的其他什么新话题?欢迎在评论区留言。我会仔细阅读每一条留言。期待听到你的声音。

如果觉得本文对你有帮助,欢迎点赞,并转发给其他志同道合的小伙伴。

企业生意好,系统运行稳。你所阅读的文章,来自“吾真本说混沌工程”专栏。

标签:混沌,开源,故障,故障注入,实验,ChaosMesh,K8S
From: https://blog.51cto.com/u_16163674/7088456

相关文章

  • k8s dashboard token过期时间太短的解决方案
    在下载的dashboardyaml文件中args这里增加一行-'--token-ttl=43200' spec:securityContext:seccompProfile:type:RuntimeDefaultcontainers:-name:kubernetes-dashboardimage:kubernetesui/dashbo......
  • 利用K8S CronJob来实现etcd集群的自动备份
    前言:利用k8sCronJob来实现etcd集群的自动备份,并通过sftp传输到本k8s集群外的服务器上,进行存储。实验步骤:基本环境情况:服务器角色IP系统ETCD版本K8S集群操作服务器192.168.1.136Centos7.93.4.9存储服务器192.168.1.105Centos7.9-创建Dockerfile镜像:[root@k8s-master1~]#mkdir/s......
  • 记录一次调查OpenEuler上部署K8s,CoreDNS组件一直 CrashLoopBackOff ,describe 时 Back
    详细过程不赘述了。百度了很多办法都不可用,然后尝试重装k8s好多次也不管用。 最后解决。kubectleditdeploymentcoredns-nkube-systemapiVersion:apps/v1kind:Deploymentmetadata:annotations:deployment.kubernetes.io/revision:"2"creationTimestamp......
  • gitlab-runner配合k8s完成代码自动打包部署上线
    前期搭建了云服务器私有的gitlab和k8s环境,但是都是独立运行的,每次代码更新需要手动去打包好镜像,推送到镜像仓库,然后在deployment里面更新image,这样平时不太有问题,但是会给运维我这边产生很多琐事(反正就是想偷懒,能自动化的为什么要手动,懒惰才是提高生产力的动力!)。在这种情况下我就考......
  • k8s笔记10
    摘要:组播;;1、docker加入组播(docker加入组播(docker组播))(docker与组播(docker组播)),Docker容器默认不支持UDP/组播流量,在使用容器进行网络应用的开发过程中,需要使用第三方软件支持组播。下面介绍使用Docker加入组播的方法。#创建一个新的网络dockernetworkcreate--driver=......
  • Jenkinsfile使用k8s agent构建失败:Container jnlp was terminated (Exit Code: 1, Rea
    问题描述Jenkinsfile使用k8sagent构建失败jenkins报错截图:查看pod app-system-23-wmx8b-5lnl2-lxvlr的jnlp容器日志:分析处理一般构建失败大都是jnlp容器问题。经以下日志分析发现jenkins主节点和slave节点的jdk版本不一致导致该提示JavaJDK版本不对:hudson/slaves/SlaveComputer......
  • k8s etcd operator
    在k8s生态中,Operator是灵活管理有状态应用的解决方案。operator通过crd来描述部署的有状态应用和自定义控制器来完成部署和运维工作。EtcdOperator部署Etcd集群,采用的是静态集群的方式。好处是不必依赖一个额外的服务发现机制来组建集群,适合本地容器化部署。难点在于部署时规划好......
  • k8s finalizers和owner references
    finalizers终结器,存放键的列表,列表内的键为空时资源才可被删除。删除指定了Finalizer的对象时,填充.metadata.deletionTimestamp来标记要删除的对象,返回已接受202状态码使其进入只读状态。#创建包含finalizers的configmapcat<<EOF|kubectlcreate-f-apiVersion:v1kind:......
  • k8s 网络模型
    容器网络通信模式在Host模式中,各容器共享宿主机的根网络名称空间,它们使用同一个接口设备和网络协议栈,因此,用户必须精心管理共享同一网络端口空间容器的应用与宿主机应用,以避免端口冲突。Bridge模式对host模式进行了一定程度的改进,在该模式中,容器从一个或多个专用网络(地址池)中获取IP......
  • k8s 容器安全上下文
    容器安全上下文介绍kubernetes为安全运行pod及容器运行设计了安全上下文机制,该机制允许用户和管理员定义pod或容器的特权与访问控制,已配置容器与主机以及主机之上的其它容器间的隔离级别。安全上下文就是一组用来决定容器时如何创建和运行的约束条件,这些条件代表创建和运行容器时使......