首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏程序员吾真本

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

    可注入的故障 可注入的故障,包括基本资源故障,平台故障和应用故障这3类。 实验工作流 实验工作流,包括编排顺序或并行执行的故障注入实验,查看实验状态和结果,暂停实验,支持用YAML或Web UI定义和管理实验。 可视化操作 可视化操作,包括可以在Web UI上点击鼠标,定义实验的范围、故障注入类型和调度规则,最后能展示实验结果。 安全控制 安全控制,包括使用K8S原生提供的基于角色的访问控制功能,来管理故障注入的使用权限。还可以通过设置命名空间注解,来指定允许进行混沌实验的命名空间,进一步保障对混沌实验的控制。 使用K8S原生提供的基于角色的访问控制功能,来管理故障注入的使用权限。 劣势 只能在K8S集群上使用。否则,就只能使用针对节点进行故障注入实验的附带工具chaosd。 临时执行的实验会无限期地运行。

    59820编辑于 2023-08-15
  • 来自专栏程序员吾真本

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

    可注入的故障 可注入的故障,包括基本资源故障,平台故障和应用故障这3类。 实验工作流 实验工作流,包括编排顺序或并行执行的故障注入实验,查看实验状态和结果,暂停实验,支持用YAML或Web UI定义和管理实验。 可视化操作 可视化操作,包括可以在Web UI上点击鼠标,定义实验的范围、故障注入类型和调度规则,最后能展示实验结果。 安全控制 安全控制,包括使用K8S原生提供的基于角色的访问控制功能,来管理故障注入的使用权限。还可以通过设置命名空间注解,来指定允许进行混沌实验的命名空间,进一步保障对混沌实验的控制。 使用K8S原生提供的基于角色的访问控制功能,来管理故障注入的使用权限。 劣势 只能在K8S集群上使用。否则,就只能使用针对节点进行故障注入实验的附带工具chaosd。 临时执行的实验会无限期地运行。

    60430编辑于 2023-08-16
  • DeepSeek 3FS源码分析(1) 故障注入

    模拟故障 本文 DeepSeek 3FS 测试用例举例说明 我也也没看太明白 就是FAULT_INJECTION_SET(10, 5);宏函数搞定 一、设计原理 维度 Ceph 方式 3FS 方式 配置方式 • 3FS 的故障注入框架基于 概率触发 + 作用域管理 的设计,通过 folly::RequestContext 实现跨协程的配置传递。 3fs设计特点 1 声明式 API: 通过 FAULT_INJECTION_SET(概率, 次数) 声明故障注入范围,具体故障类型由业务代码决定 2 RAII 自动管理: 利用 C++ 的 RAII 模式 FAULT_INJECTION_SET(10, 5) 是一个用于故障注入测试的宏,它会在当前代码作用域内设置故障注入参数: FaultInjection.h:16 • 第一个参数 (10): 表示故障注入的概率为 DeepSeek 3FS解读与源码分析(3):Storage模块解读 2.

    27510编辑于 2025-11-20
  • 来自专栏全栈程序员必看

    istio框架(istio故障注入)

    --- apiVersion: extensions/v1beta1 kind: Deployment metadata: name: nginx-v3 spec: replicas: 2 selector: matchLabels: app: nginx version: v3 template: metadata: name: nginx-v3 labels: app: nginx version: v3 spec: containers: - name: nginx-v3 image: linuxwei/nginx_test:v3 imagePullPolicy: IfNotPresent env: - name v3访问路径project/index.html kubectl apply -f nginx-destinationrule.yaml apiVersion: networking.istio.io

    61830编辑于 2022-08-01
  • 来自专栏golang算法架构leetcode技术php

    mac 上学习k8s系列(36)istio part IV 内外路由和故障注入

    ✔ IstioOperator: .istio-system checked successfully Checked 14 custom resource definitions Checked 3 networking/virtual-service-reviews-test-v2.yaml virtualservice.networking.istio.io/reviews created 或者进行故障注入 # reviews-v3 Deployment ############################################################################# labels: version: v3 --- apiVersion: networking.istio.io/v1alpha3 kind: DestinationRule metadata destination: host: reviews subset: v1 如何headers的end-user 字段匹配了jason就走v2的reviews 接着我们看下如何做故障注入

    51520编辑于 2022-08-02
  • 来自专栏程序员吾真本

    K8S下Istio就是检验微服务稳定性的混沌工程开源工具

    K8S上部署的微服务,经常会依赖不受你控制的其他微服务。当两者之间的HTTP交互出现延迟或错误后,你的微服务能否按预期正常工作?应该做一个故障注入实验来检验一下。 如果在K8S上使用了Istio,那么恭喜你,你已经拥有了简单易用的混沌工程开源工具。 图片一句话介绍虽然Istio主要作为K8S服务网格,用于连接、保护、控制和观察服务,但在其流量管理功能中也支持故障注入。 适用平台K8S适用场景如果已经使用了 Istio,那么这可以直接用它在集群上运行混沌实验,而无需部署或学习其他工具。 否则,仅仅为了这两种故障注入功能就部署 Istio ,就不值了。 复现这个问题时,我们把浏览器网速改为 3g 模式,就可以显著提升复现率。

    44540编辑于 2023-08-12
  • 来自专栏腾讯云混沌工程团队

    【云顾问-混沌】PodNode CPU 故障注入

    本文将介绍如何使用混沌工具对 Pod/Node 进行 CPU 负载故障注入,以达到指定的 CPU 负载百分比。 2. 参数 在进行 CPU 负载故障注入时,我们可以通过以下参数来控制: nice:指定 CPU 负载进程的 nice 值(静态优先级),取值范围为[-20, 19]。 3. 案例 3.1 使所有 CPU 核负载达到 80% . chaos-executor attack --target cpu --action burn --flags "percent=80;duration=100" 3.2 使指定的 CPU 核(如 1,3) /chaos-executor attack --target cpu --action burn --flags "core-list=1,3;duration=100" 4.

    92110编辑于 2024-03-15
  • 来自专栏程序员吾真本

    故障创建与编排更胜一筹的K8S混沌工程开源平台Litmus

    Litmus 最初是 OpenEBS(K8S下存储系统) 的测试工具,后来发展成为知名的 Kubernetes 原生混沌工程开源平台。 创建者 MayaData 一句话介绍 LitmusChaos 是一个在故障创建与编排方面更胜一筹的K8S混沌工程开源平台,如提供故障注入实验库 ChaosHub,使团队能够以受控方式,引入故障注入实验来识别基础设施中的弱点和潜在停机隐患 可安排单次或 Cron定时故障注入场景。可以用例优先级标注故障注入实验。 可使用 Prometheus 数据源中的交错事件和指标实时监控故障注入实验的影响。 K8S多租户 Kubernetes 命名空间可用作 Kubernetes 上个人开发人员的完全托管环境。 适用平台 K8S 适用场景 对于开发人员:在应用程序开发过程中运行故障注入实验,作为单元测试或集成测试的扩展。

    55410编辑于 2023-08-16
  • 来自专栏猫头虎博客专区

    故障注入实验:了解如何使用Chaos Engineering的方法,在服务网格中进行故障注入实验

    在这篇博文中,我将带领大家探索如何在服务网格中进行故障注入实验,分享Chaos Engineering的最佳实践,并深入研究服务网格如Istio中的故障注入功能。 引言 混沌工程不仅仅是故意制造故障,而是一种科学的方法,通过故障注入来发现系统中的潜在问题,并验证系统的弹性。 2.1 Istio的故障注入功能 Istio允许我们在服务间的通信中注入故障,如延迟、错误等。 apiVersion: networking.istio.io/v1alpha3 kind: VirtualService metadata: name: ratings spec: hosts 3. 进行混沌实验的步骤 3.1 定义实验目标 明确你希望通过混沌实验验证的假设。 3.2 选择注入的故障类型 根据实验目标,选择合适的故障类型,如延迟、错误等。

    52910编辑于 2024-04-09
  • 来自专栏程序员吾真本

    故障创建与编排更胜一筹的K8S混沌工程开源平台Litmus

    Litmus 最初是 OpenEBS(K8S下存储系统) 的测试工具,后来发展成为知名的 Kubernetes 原生混沌工程开源平台。 图片创建者MayaData一句话介绍LitmusChaos 是一个在故障创建与编排方面更胜一筹的K8S混沌工程开源平台,如提供故障注入实验库 ChaosHub,使团队能够以受控方式,引入故障注入实验来识别基础设施中的弱点和潜在停机隐患 可安排单次或 Cron定时故障注入场景。可以用例优先级标注故障注入实验。 可使用 Prometheus 数据源中的交错事件和指标实时监控故障注入实验的影响。K8S多租户Kubernetes 命名空间可用作 Kubernetes 上个人开发人员的完全托管环境。 适用平台K8S适用场景对于开发人员:在应用程序开发过程中运行故障注入实验,作为单元测试或集成测试的扩展。

    95070编辑于 2023-08-15
  • 故障注入在软件测试中实际应用

    一、为什么需要故障注入? 基础设施可靠性测试K8s/云平台故障恢复能力 节点宕机、Pod被杀、存储卷丢失 3. 数据层容灾演练验证DB/缓存故障时的数据一致性 主从切换、Redis OOM、慢查询 4. 3次失败后降级为“稍后支付”状态?用户看到友好提示:“支付繁忙,请稍后再试”?监控系统触发P1告警?▶ 实施步骤(使用 ChaosBlade):# 1. 注入支付服务接口延迟(目标:payment-service Pod)blade create k8s pod-network delay \ --names payment-pod-xxx \ -- 用户发起支付 → 观察订单系统行为# 3. 验证降级逻辑 & 用户提示 & 告警触发# 4.

    86510编辑于 2025-09-17
  • 来自专栏程序员吾真本

    7个检验软件系统稳定性场景的混沌工程故障注入开源工具ChaosBlade

    ChaosBlade可针对多达7个场景开展故障注入实验,但网上官方的中英文文档质量欠佳,内容缺失,真心没有站在一般用户的角度来写,只能通过运行blade命令的help了解究竟有什么功能。 图片 一句话介绍 ChaosBlade是阿里巴巴开源的针对7个检验软件系统稳定性场景的混沌工程故障注入开源工具:主机基础资源、CRI容器、K8S平台、Java应用、C++应用、阿里云平台、其他服务。 场景3K8S平台 可注入故障包括向K8S平台内容器、node和pod注入故障。 场景4:Java应用 可注入故障包括代码缓存爆满,内存不足,增加延迟,返回特定值,动态执行脚本,抛异常等。 适用平台 主机,CRI容器,K8S平台,Java应用,C++应用,阿里云平台,其他服务。 适用场景 需要向主机、CRI容器、K8S平台、阿里云平台、Java应用和C++应用注入故障的场景。 优势 支持多达7个故障注入场景。 劣势 网上的中英文文档描述过于简略。每个功能往往就一句话。只能把工具装上,运行起来,通过help参数,逆向工程来发现有什么功能。

    1.1K00编辑于 2023-08-12
  • 来自专栏腾讯云混沌工程团队

    【云顾问-混沌】PodNode 内存高负载故障注入

    本文将介绍如何使用混沌工具对 Pod/Node 进行内存负载故障注入,以达到指定的内存占用百分比。腾讯云混沌演练平台故障动作:标准集群 Pod/普通节点-内存利用率高。 2. 参数 在进行内存负载故障注入时,我们可以通过以下参数来控制: percent:内存使用率,取值是 0 到 100 的整数,默认值为 100。此参数为可选。 3. 案例 3.1 占用 80% 内存 . 为了保护该进程在故障注入期间一直存在,不被杀死,可以打开 oomGuard 保护,降低该进程 oom-kill 权重,优先杀死其他进程。 设置高负载的内存故障注入后,可能会使得机器无法登入与控制,请谨慎使用。 cache 模式:通过挂载 tmpfs 来实现内存占用。

    57310编辑于 2024-03-15
  • 来自专栏Godev

    外包精通--Istio流量管理之故障注入(二)

    本小节演示如何通过故障注入来测试应用的弹性。 1. 创建一个故障注入的规则来延迟来自jason用户的流量。 然而,在productpage页面和reviews服务之间也有一个硬编码超时,编码为3s + 1次重试,共6s。因此,调用productpage来检查超时时间过早,并在6s之后抛出错误。 Istio的故障注入规则可以帮助您在不影响最终用户的情况下识别这些异常。 4. 然而,在reviews v3中已经修复了那个bug,这个reviews:v3服务减少了reviews到ratings的超时,从10s减少到了2.5s,因此它兼容下游productpage的请求。

    82270编辑于 2023-07-31
  • 来自专栏golang云原生new

    k8s 自身原理 3

    Kubelet kubelet 是运行在节点中的关键节点之一,主要负责运行在该节点上的所有组件,总的来说 kubelet 会做这么 3 件事情: 请求 ApiServer ,注册当前节点,创建一个 node kube-proxy 首先来看看 kube-proxy 这个组件具体是干啥的,还记得之前我们也分享过,分享关于证书,访问 pod 元数据的那一篇 看名字应该知道他是一个 代理,具体作用是确保客户端可以通过 k8s 的 api 连接到咱们定义的服务上,这个可以看看之前分享的文章 【k8s 系列】k8s 学习二十四,如何访问 pod 元数据 那么为什么要叫他代理呢?

    24530编辑于 2023-09-01
  • 来自专栏CNCF

    K8s 用不了 Chaos Mesh®?试试 Chaosd

    Chaos Mesh® 是基于 K8s 的混沌测试平台,而对于部署在物理机上的应用来说,混沌测试同样重要。 这么好的工具当然想亲手试一试,动手的时候发现:没有 K8s 环境用不了! 这是因为 Chaos Mesh® 是云原生的混沌工程测试平台,专门为 K8s 设计的。 3. 更多的故障注入功能 目前 Chaosd 提供了进程、网络、JVM、压力、磁盘、主机总共六大故障注入功能,但是仍然需要继续拓展。 后续我们计划将 Chaos Mesh® 在 K8s 环境支持的一些故障注入功能在 Chaosd 中实现,包括 HTTP、IO 等。

    1.1K40发布于 2021-08-26
  • 来自专栏架构师成长之路

    k8s实践(3)--k8s集群安装详解

    k8s实践系列的相关配置都在github:https://github.com/huangguisu/k8s.git 一、部署架构规划和环境准备 1、安装方式选择 目前有三种安装方式 第一种是yum 虽然二进制安装包安装的方式比较费劲,但是二进制便于熟悉各个组件,对学习k8s是很有好处的,因此我们的教程里面全都是二进制安装。 第三种是kubeadm安装 kubeadm是Kubernetes官方提供的用于快速安装Kubernetes集群的工具,将k8s的各个组件都安装在docker之上,以容器的方式运行。 节点规划和环境准备 k8s至少需要一个master和一个node才能组成一个可用集群。 3、使用supervisor来管理,我们这里都使用这个方式。

    10.7K21编辑于 2022-04-14
  • 来自专栏云计算与大数据

    去哪儿网基于ChaosBlade的混沌工程实践

    3 架构 基于公司内部的系统体系,整体的架构如下: 纵向来看,自上而下: 服务治理,Portal(提供应用画像,CICD的平台)提供了应用的依赖关系,应用的属性,运行时资源等信息,通过混沌工程UI 提供了多个应用多个故障的任务流程编排,故障演练流程的控制的功能; Saltstack,chaosblade-operator 提供了 chaosblade 的安装和卸载能力; 应用的资源分为 KVM 和 K8S 在这个阶段主要提供 3 种场景的故障注入,机器关机,OS 层的故障,以及 Java 应用的故障注入,在此基础之上我们还做了场景化的功能。 做了如下几个方案选型: 方案 说明 优势 劣势 chaosblade-operator 完全采用开源方案,Agent安装和策略注入都使用CRD的方式 贴近云原生,CRD比较完善 控制端需要重新开发一套对接K8s : agent的安装和卸载 策略的注入和恢复 控制端的改造成本 基于上面几个方案的对比,最终是基于方案 3 进行实施的。

    1.5K31发布于 2021-08-26
  • 来自专栏CNCF

    使用服务网格接口和Linkerd进行故障注入

    传统上,你需要在服务代码中添加某种类型的故障注入库,以便进行应用程序故障注入。值得庆幸的是,服务网格为我们提供了一种注入应用程序故障的方法,而无需修改或重新构建我们的服务。 这允许我们以一种与实现无关、跨服务网格工作的方式进行故障注入。 为此,我们首先部署一个只返回错误的新服务。 LATENCY_P50 LATENCY_P95 LATENCY_P99 TCP_CONN authors 1/1 100.00% 6.6rps 3ms 1/1 - - - - - - webapp 3/ 3 100.00% 7.7rps 24ms 91ms 117ms 9 现在我们可以创建错误服务了。

    1.5K20发布于 2019-12-04
  • 来自专栏k-cloud-labs

    k8s watch 丢事件 - 3

    现象 v1.27 的 K8s,在 kube-apiserver 的日志中会看到 “etcd event received with PrevKv=nil” 的字样,资源对象被删除后在 Etcd 中已经不存在了但在 22 client, err := clientv3.New(clientv3.Config{ DialTimeout: 15 * time.Second, DialKeepAliveTime 这就导致 etcd 客户端:同一种 k8s 资源的 watch 请求使用了同一个 grpc stream etcd 服务端:同一种 k8s 资源的所有 watcher 共用了同一个 ch (来自 watchStream 对于前者,在前一篇中介绍了 k8s 侧已经通过给 cacher 发起的 watch 请求设置特定的 ctx,最终在会和直接访问 etcd 的请求区分开,别分使用两个不同的 grpc stream。 对于众多的 k8s 用户来说: 如果使用的是 v1.25(不包括) 之前的版本,那么无需担心此问题,因为 k8s 侧有兜底,即使不升级 etcd 也可以完全避免丢事件的问题; 如果使用的是 v1.25

    54610编辑于 2024-03-23
领券