7.1 Understanding Docker, Kubernetes, and Helm

Docker is an open platform that gives an ability to package and run your applications in an isolated environment called containers. You can run multiple containers simultaneously on a given host. The containers have everything that the software needs to run including libraries, system tools, code, and runtime, so you can separate the applications from your infrastructure and seamlessly move code.

Kubernetes is a container orchestration engine for Docker. Kubernetes manages multiple containers and ensures that there is no downtime. Kubernetes clusters allow for scheduling and running the containers across groups of machines and environments such as virtual, physical, cloud-based, and on-premises.

Helm is a package manager for Kubernetes that helps to deploy, configure, and upgrade the Self Service Password Reset on the Kubernetes cluster.

Advantages of Kubernetes

Kubernetes enables seamless deployment of the Self Service Password Reset docker container. As a result, the Self Service Password Reset containers are no longer confined to the Self Service Password Reset application. Instead, they can be operated as a standalone entity within Kubernetes to enhance deployment flexibility and scalability. Some of the parameters that Kubernetes enables are:

  • Container orchestration: Kubernetes automates the deployment, scaling, and management of the containers. Kubernetes containerization hosts all the components required to run an application and ensures that the application becomes an independent package without any dependencies.

  • Scalability: Kubernetes facilitates the seamless scalability of application containers. It allows you to scale your application by adding or removing the pods according to user traffic. This ensures the application to effectively handle the increasing demand.

  • High-Avalability: Kubernetes provides automated failover to ensure the application is running in all instances without downtime.

  • Self-Healing: Kubernetes closely monitors the health of your application and recovers from failure without human intervention. If Kubernetes observes that the pod or node is failing, it automatically restarts or reschedules the containers on the healthy node.