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
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
Deploying Litmus 2.0
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
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
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