Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
chaos-operator — Kubernetes Operator,用于向云原生工作负载注入混沌实验,通过声明式 CRD 自动化韧性测试与工作负载加固。 | Kitploit
工具/GitHubGitHub/litmuschaos/chaos-operator
云基础设施安全云安全DevSecOps混沌工程混沌工程 分类第 11 名
GitHublitmuschaos/chaos-operator

chaos-operator

Kubernetes Operator,用于向云原生工作负载注入混沌实验,通过声明式 CRD 自动化韧性测试与工作负载加固。

查看仓库
158106279个月前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

Litmus chaos-operator:用于在 Kubernetes 上注入混沌实验

Slack Channel GitHub Workflow Docker Pulls GitHub issues Twitter Follow Codacy Badge Go Report Card CII Best Practices FOSSA Status codecov YouTube Channel

Litmus chaos operator 供 Kubernetes 应用程序开发人员和 SRE(站点可靠性工程师)使用,以受控方式向应用程序和 Kubernetes 基础设施注入混沌。其目标是通过自动化执行混沌实验,让 Kubernetes 上应用程序工作负载的验证与加固变得更加容易。一个简单的混沌注入工作流可以如下所示:

  • 通过 operator manifest 安装 Litmus 基础设施组件(RBAC、CRD)、Operator 与 Experiment 自定义资源包
  • 为被测应用(AUT)添加注解,使其可进行混沌实验
  • 创建与 AUT 关联的 ChaosEngine 自定义资源,其中描述了要执行的实验

Chaos Operator 提供的优势包括:

  • 标准化的混沌实验规范
  • 针对无状态/有状态/特定供应商的分类混沌包
  • 测试运行的弹性
  • 支持基于注解将混沌作为后台服务运行

什么是 chaos operator?它是如何构建的?

Chaos Operator 是一种 Kubernetes Operator,而 Kubernetes Operator 不过是可直接访问 Kubernetes API 的自定义控制器,能够管理某些资源或应用程序的生命周期,同时始终努力确保资源处于“期望状态”。确保这一点的逻辑通常被称为“协调”(reconcile)函数。

Chaos Operator 基于广受欢迎的 Operator-SDK 框架构建,该框架为新的 operator 项目提供 bootstrap 支持,使团队能够专注于业务/运营逻辑。

Litmus Chaos Operator 帮助协调 ChaosEngine 的状态。ChaosEngine 是一种自定义资源,保存着开发人员/DevOps 工程师针对特定无状态/有状态 Kubernetes 部署所指定的混沌意图。该 operator 会在其主资源 ChaosEngine 的增删改查(CRUD)时执行特定动作。operator 还定义了一个辅助资源(engine runner pod),由它创建并管理,以实现协调功能。

什么是 chaos engine?

ChaosEngine 是定义给定应用程序混沌工作流的核心模式。目前,它定义了以下内容:

  • 主应用(AUT)和辅助(依赖)应用的应用程序信息(命名空间、标签、kind)
  • 用于执行实验的 ServiceAccount
  • 用于开启/关闭应用程序上混沌注解检查的标志
  • 要在应用程序上执行的混沌实验
  • 实验的属性(覆盖实验 CR 中指定的默认值)
  • 用于在实验执行后保留/清理混沌资源的标志

ChaosEngine 被引用为辅助(协调)资源的所有者,Kubernetes 的 deletePropagation 机制可确保这些资源在删除 ChaosEngine CR 时也会被移除。

以下是 ChaosEngineSpec 示例,供参考:https://v1-docs.litmuschaos.io/docs/getstarted/#prepare-chaosengine

什么是 litmus chaos chart?如何使用它?

Litmus Chaos Charts 用于安装“混沌实验包”(Chaos Experiment Bundles),并根据实验的性质进行分类(通用 Kubernetes 混沌、供应商/提供商特定混沌——例如 OpenEBS,或应用特定混沌——如 NuoDB)。它们由保存底层混沌(测试)参数的自定义资源组成,operator 会查询这些参数以执行实验。spec.definition 的 fields 及其对应的 values 用于构建最终运行混沌实验的执行工件(通常是 litmusbook,一种 K8s job 资源)。它还定义了执行实验所需的权限。

以下是 ChaosEngineSpec 示例,供参考:

root@kitploit:~
apiVersion: litmuschaos.io/v1alpha1
description:
  message: |
    Deletes a pod belonging to a deployment/statefulset/daemonset
kind: ChaosExperiment
metadata:
  name: pod-delete
  labels:
    name: pod-delete
    app.kubernetes.io/part-of: litmus
    app.kubernetes.io/component: chaosexperiment
    app.kubernetes.io/version: latest
spec:
  definition:
    scope: Namespaced
    permissions:
      - apiGroups:
          - ""
          - "apps"
          - "batch"
          - "litmuschaos.io"
        resources:
          - "deployments"
          - "jobs"
          - "pods"
          - "configmaps"
          - "chaosengines"
          - "chaosexperiments"
          - "chaosresults"
        verbs:
          - "create"
          - "list"
          - "get"
          - "patch"
          - "update"
          - "delete"
    image: "litmuschaos/go-runner:latest"
    imagePullPolicy: Always
    args:
    - -c
    - ./experiments -name pod-delete
    command:
    - /bin/bash
    env:

    - name: TOTAL_CHAOS_DURATION
      value: '15'

    # Period to wait before/after injection of chaos in sec
    - name: RAMP_TIME
      value: ''

    - name: FORCE
      value: 'true'

    - name: CHAOS_INTERVAL
      value: '5'

    ## percentage of total pods to target
    - name: PODS_AFFECTED_PERC
      value: ''

    - name: LIB
      value: 'litmus'    

    - name: TARGET_PODS
      value: ''

    ## it defines the sequence of chaos execution for multiple target pods
    ## supported values: serial, parallel
    - name: SEQUENCE
      value: 'parallel'
    labels:
      name: pod-delete
      app.kubernetes.io/part-of: litmus
      app.kubernetes.io/component: experiment-job
      app.kubernetes.io/version: latest

如何开始?

请参阅 LitmusChaos 文档 litmus 文档

如何贡献?

你可以通过提交 issue、改进文档、为核心框架和工具做出贡献等方式来参与贡献。

前往贡献指南

许可证

FOSSA Status

下载工具