Fault injection is an important way to verify the stability and reliability of data products. There are mature fault injection products in the Kubernetes ecosystem, such as Chaos Mesh and Litmus. KubeBlocks directly integrates Chaos Mesh as an add-on to perform fault injection through both CLI and YAML files.
KubeBlocks provides two major types of fault injection.
Faults of basic resource types:
- PodChaos: simulates Pod faults, such as Pod restart, Pods failure, and container restart in a specified Pod.
- NetworkChaos: simulates network faults, such as network delay, network packet loss, packet disorder, and various network partitions.
- DNSChaos: simulates DNS faults, such as random DNS domain names and returning the wrong IP address.
- HTTPChaos: simulates HTTP communication faults, such as HTTP communication delays.
- StressChao: simulates CPU or memory stress.
- IOChaos: simulates the file I/O fault of a specific application, such as I/O delay, read and write failure.
- TimeChaos: simulates abnormal time offset.
Faults of a platform: