What is a Rollback in Kubernetes?
Within Kubernetes, a roll back is a mechanism to undo any failed attempt to modify or update an existing working application deployment, to its previous stable state. A failure could be caused by for example a new application release bug, lack of resources or a conflicting configuration change.
Do I need Rollbacks in Kubernetes?
Yes, for any application deployment in production, requiring a change or upgrade in the application release, configuration or resources allocation change, and where a failure occurs, a roll back ensures that the application returns to its stable state, reducing unavailability of the application service.
What are possible failure scenarios within Kubernetes?
Failures are possible in the application image level, unable to retrieve an application image from the registry, failure to run the image or missing required environment variables. Failures on the application level are common, where the application contains a bug, making it unable to start or upgrade from the existing version. Failures are also possible in case of resource allocation increases, where the Kubernetes cluster lacks the necessary resources to start the application. Finally, any change in the configuration of the application deployment, including but not limited to network policies, security and access configuration changes.
Does Kubernetes perform Rollbacks automatically?
No, Kubernetes does not and cannot perform rollbacks in most cases, because it is not aware and does not keep track of any changes in the configuration files of an application deployment that is modified by the administrator or manager of the deployment.
How does Kubermachines ensures that application deployment failures do not happen and if they happen, it does not affect application uptime?
Kubermachines application deployment takes away all the necessary validation of applications ensuring an application deployment succeed in most cases, if no bug or failure exists within the application. In case of application updates, Kubermachines keeps track of all changes and automatically reverts to the old stable state in case of any application failures. When there are resources lacking, Kubermachines will automatically detect this before applying any change. Kubermachines does not allow any broken or incorrect network or configuration changes due to the extensive validation and consistency built into it's deployment process.