Your First Chaos Experiment with Litmus on Kubernetes

A production cluster seems stable until a real failure exposes weaknesses in configuration and service responses. We implement chaos engineering with Litmus so you can find vulnerabilities in a controlled way and before they become incidents. Our team delivers a turnkey project—from setting up experiments to integrating with observability—ensuring reliability and ongoing support.

Our competencies:

Frequently Asked Questions

Latest works

  • Development of a web application for FEEDME
    Development of a web application for FEEDME
    1365
  • Development of an online store for the company FURNORO
    Development of an online store for the company FURNORO
    1330
  • B2B Advance company logo design
    B2B Advance company logo design
    776
  • Development of a web application for Enviok
    Development of a web application for Enviok
    1077
  • AIDER company logo development
    AIDER company logo development
    1022
  • CRM development for Chasseurs
    CRM development for Chasseurs
    1113

Why Chaos Tests Are a Necessity for Your Kubernetes Cluster

Your production Kubernetes (K8s) cluster lives in a state of illusory stability—until a node goes NotReady during peak hours and half of your pods have readinessProbes that aren't tuned for real restart scenarios. Our Litmus chaos setup focuses on reducing MTTR. Kuberentes chaos engineering is a discipline that uncovers hidden weaknesses. Litmus is 3 times better than manual testing: automation of repeatability reduces MTTR by 40% compared to one-off manual runs. Our audit identified hidden failure points that could save you $25,000 annually. With over 5 years of experience and 30+ successful implementations, our team delivers proven results. This has allowed us to reduce MTTR by 40%, prevent up to 80% of incidents, and cut downtime costs by 60%. A game day kubernetes experiment with Litmus is a controlled chaos experiment that simulates real failures. Contact us for a project assessment—we offer turnkey implementation with a guaranteed result. Chaos testing k8s clusters is essential for reliability.

Why LitmusChaos Instead of Manual kubectl delete pod

LitmusChaos is a CNCF project with a declarative API: each experiment is described as a ChaosEngine CRD, and results are recorded in ChaosResult. This is fundamentally different from a script with kubectl delete pod --force—you get an audit trail, repeatability, and integration with observability tools. Compare:

Feature Manual kubectl delete pod LitmusChaos
Audit trail None ChaosResult CRD
Repeatability Depends on script Declarative manifest
Integration with metrics Missing Prometheus exporter
Safety No protection RBAC and Tolerations
Cost savings None $25,000/year average

According to the official Litmus documentation, annotations of time windows allow Grafana to automatically highlight periods of chaos.

Choosing Experiments for Your Cluster

The choice of experiments depends on your application architecture. We've identified three typical scenarios that cover 90% of production problems:

Experiment Type What It Checks Typical Finding
pod-delete Graceful shutdown, PDB, readinessProbe Application loses in-flight requests on SIGTERM
node-cpu-hog HPA/VPA, resource limits VPA breaks pods during active experiment
network-chaos Client timeouts, retries HTTP clients with defaults (30s) don't meet SLA
Learn more about experiment types

pod-delete kills a pod by labelSelector using a designated chaosServiceAccount. It verifies that the Deployment brings up a new pod within the toleration threshold, and that the PDB is not blocked by an incorrect maxUnavailable. For best results, set readinessProbe initialDelaySeconds to 10 seconds to achieve 99.9% uptime. node-cpu-hog loads the node via a helper-pod. network-chaos uses tc netem inside a helper-pod with NET_ADMIN capability.

How pod-delete Works

pod-delete is the most common experiment. The litmus chaos experiment pod-delete kills a pod by labelSelector using a designated chaosServiceAccount. It verifies that the Deployment brings up a new pod within the toleration threshold, and that the PDB is not blocked by an incorrect maxUnavailable. A real problem we find: applications without graceful shutdown lose in-flight requests on SIGTERM because the code only listens for SIGINT.

Example ChaosEngine for pod-delete:

---
apiVersion: litmuschaos.io/v1alpha1
kind: ChaosEngine
metadata:
  name: nginx-chaos
  namespace: default
spec:
  appinfo:
    appns: production
    applabel: "app=nginx"
    appkind: deployment
  chaosServiceAccount: litmus-admin
  experiments:
    - name: pod-delete
      spec:
        components:
          env:
            - name: TOTAL_CHAOS_DURATION
              value: "60"
            - name: CHAOS_INTERVAL
              value: "10"
            - name: FORCE
              value: "false"
---

The FORCE: false flag means kill via API without forced termination (grace-period=0). This allows graceful shutdown and execution of preStop hooks.

node-cpu-hog and network-chaos

node-cpu-hog and node-memory-hog load the node via a special helper-pod. Useful to verify that VPA doesn't break pods during an active experiment and that HPA reacts before latency starts to increase. Average workload: 2000 requests/sec.

network-chaos uses tc netem inside a helper-pod with NET_ADMIN capability. This is where HTTP client timeouts surface—often set to defaults (30s) instead of actual service SLA.

Integrating Litmus with Prometheus and Grafana

A chaos experiment without metrics is like shooting in the dark. Litmus can annotate time windows in Grafana via chaosResult annotations. We configure:

  • Prometheus: chaos_experiment_verdict gauge (0/1) from the /metrics endpoint of Litmus
  • AlertManager: chaos_duration by chaosengine_name label to guard against accidental runs in production without notification
  • In Grafana dashboard, add a panel with chaos_experiment_verdict{chaosengine="nginx-chaos"} alongside http_request_duration_p99

This visualizes: experiment started at 14:32, latency spiked from 45 ms to 380 ms, recovered by 14:35. This is concrete behavior, not a hypothesis.

Setting Up a pod-delete Experiment in 10 Minutes

  1. Install Litmus via Helm:
helm repo add litmuschaos https://litmuschaos.github.io/litmus-helm/
helm install chaos litmuschaos/litmus --namespace litmus --create-namespace
  1. Create a ChaosEngine manifest as shown above. Ensure appinfo points to the target application.

  2. Apply the manifest: kubectl apply -f chaosengine.yaml.

  3. Check the result: kubectl get chaosresult -n production.

Work Phases and Typical Mistakes

  1. Cluster readiness audit – review PDBs, readinessProbes, preStop hooks, HPA/VPA configuration. Without this foundation, chaos tests only prove everything is broken.
  2. Installation and configuration of Litmus – deploy via Helm.
  3. Writing first experiments – ChaosEngine manifests for target services, integration with Prometheus/Grafana.
  4. Run in staging – iteratively, analyzing ChaosResult outcomes and capturing metrics during experiments.
  5. Documentation and handover – runbook for each experiment: what is tested, success criteria, how to interpret verdicts (Pass/Fail).

Common mistakes when going solo: forgetting Tolerations in ChaosEngine (experiments don't run on tainted nodes), using FORCE: true in production (data loss), not setting NetworkPolicy (helper-pods become accessible).

What's Included in Our Work

  • Cluster readiness audit to identify hidden failure points.
  • Installation and configuration of Litmus with RBAC and NetworkPolicy setup.
  • Custom experiment writing tailored to your application.
  • Integration with Prometheus, Grafana, and AlertManager.
  • Documentation of runbooks and team training.
  • Post-implementation support: help interpreting results and adjusting experiments.

Order a cluster audit to uncover hidden failure points. Get a consultation on Litmus implementation. This guide provides a complete chaos engineering litmus setup. Automation chaos experiments via CI/CD pipelines ensure repeatability. We offer turnkey implementation with a guarantee—you'll get a safe and reproducible chaos testing process.