# Fault Tolerant and Auto-recovery

<figure><img src="https://1593419829-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fq2i9CKCFbySxr6jRoJfA%2Fuploads%2FBsMs5PtOoyGL26T4lmoT%2Fimage.png?alt=media&#x26;token=ef918c47-63d9-47d8-ad3f-ae7b20d1e671" alt=""><figcaption></figcaption></figure>

* Kubernetes Cluster auto scaler will scale in and scale out the Nodes based on CPU and Memory Load.

&#x20;     ![](https://1593419829-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fq2i9CKCFbySxr6jRoJfA%2Fuploads%2FHJF4jKivIaqN2PEbUH80%2Fimage.png?alt=media\&token=00ae3497-feef-468e-8a68-98096ccc30be)

* Nodes are Virtual/Physical machines.
* Each Microservice (Multiple services combined as container) is deployed as POD. Each POD is deployed into multiple Nodes for resilience.
* PODs are enables with autoscaling based on CPU and Memory Parameters.
* All Pods are configured to have two instances, each deployed in different Nodes, using the node affinity parameter.
* PODs are configured with self-healing, which mean when there is a failure a new POD is spun up.
