Difficulty: Beginner
Estimated Time: 5 minutes


Litmus Logo

LitmusChaos is a Cloud-Native Chaos Engineering Framework with cross-cloud support. It is a CNCF Sandbox project with adoption across several organizations. Its mission is to help Kubernetes SREs and Developers to find weaknesses in both Non-Kubernetes as well as platforms and applications running on Kubernetes by providing a complete Chaos Engineering framework and associated Chaos Experiments.

Litmus can be used to run chaos experiments initially in the staging environment and eventually in production to find bugs and vulnerabilities, fixing which leads to an increased resilience of the system. Litmus adopts a Kubernetes-native approach to define chaos intent in a declarative manner via custom resources.



In this scenario you will learn how to:

  • Deploy Litmus 2.0 into a Kubernetes Cluster.
    • Via kubectl
    • Via Helm
  • Access the ChaosCenter post installation

ChaosCenter

The ChaosCenter is a single source of truth to control all the different Chaos Activities happening around Litmus and it comes pre-packaged with the installation. From the ChaosCenter you get the freedom to manage every single part of Litmus and shape your workflows exactly the way you want it.

Advantages of Litmus 2.0

Over time, with the monthly cadence releases and community engagement, we have added a lot of features and made LitmusChaos much easier for the end-users. With the launch of Litmus 2.0, a new way of chaos engineering can be performed by the users, a few high-level features are mentioned here

An Overview of Litmus 2.0 📹



Litmus is a toolset to do cloud-native chaos engineering. Litmus provides tools to orchestrate chaos on Kubernetes to help developers and SREs find weaknesses in their application deployments. Litmus can be used to run chaos experiments initially in the staging environment and eventually in production to find bugs, vulnerabilities. Fixing the weaknesses leads to increased resilience of the system. Litmus adopts a “Kubernetes-native” approach to define chaos intent in a declarative manner via custom resources.

The project is under active development as a Sandbox project with CNCF. This Katacoda scenario will be updated as it evolves.

With these steps you have learned:

        ✅ Setup and install Litmus onto Kubernetes.

        ✅ Access the ChaosCenter and navigate the UI.

Do let us know how was your experience with Litmus and what are your suggestions on improving the same by filling up this form

In the last year we've seen Chaos Engineering move from a much talked-about idea to an accepted, mainstream approach to improving and assuring distributed system resilience. As organizations large and small begin to implement Chaos Engineering as an operational process, we're learning how to apply these techniques safely at scale. The approach is definitely not for everyone, and to be effective and safe, it requires organizational support at scale. -- ThoughtWorks Radar

References

Deploying Litmus 2.0

Step 1 of 3

Deploy Litmus 2.0 using kubectl


You might need to wait for a few seconds to a minute for your dev environment to set up. Typically it requires around 1 minute or less for Katacoda to set up the cloud environment.

Install Litmus ChaosCenter in your cluster

kubectl apply -f https://litmuschaos.github.io/litmus/2.0.0/litmus-2.0.0.yaml

Verify Your Installation

Once all the CRDs are applied you can verify the installation by

  • Checking the pods in the namespace where you installed Litmus:

    watch kubectl get pods -n litmus

    Expected Output

    NAME                                    READY   STATUS  RESTARTS  AGE
    litmusportal-frontend-97c8bf86b-mx89w   1/1     Running 2         6m24s
    litmusportal-server-5cfbfc88cc-m6c5j    2/2     Running 2         6m19s
    mongo-0                                 1/1     Running 0         6m16s
    
  • Checking the services running in the namespace where you installed Litmus:

    kubectl get svc -n litmus

    Expected Output

    NAME                            TYPE        CLUSTER-IP      EXTERNAL-IP PORT(S)                       AGE
    litmusportal-frontend-service   NodePort    10.100.105.154  <none>      9091:30229/TCP                7m14s
    litmusportal-server-service     NodePort    10.100.150.175  <none>      9002:30479/TCP,9003:31949/TCP 7m8s
    mongo-service                   ClusterIP   10.100.226.179  <none>      27017/TCP                     7m6s