Scaling Applications Using Containers (II)
Explore how to use Kubernetes for scaling Node.js applications in containerized environments. Understand cluster management, deployments, rollouts, load balancing, and automatic recovery to maintain high availability and efficient scaling.
What is Kubernetes
We just ran a Node.js application using containers, hooray! Even though this seems like a particularly exciting achievement, we have just scratched the surface here. The real power of containers comes out when building more complicated applications. For instance, when building applications composed of multiple independent services that need to be deployed and coordinated across multiple cloud servers. In this situation, Docker alone isn’t sufficient anymore. We need a more complex system that allows us to orchestrate all the running container instances over the available machines in our cloud cluster: we need a container orchestration tool.
A container orchestration tool has a number of responsibilities:
It allows us to join multiple cloud servers (nodes) into one logical cluster, where nodes can be added and removed dynamically without affecting the availability of the services running in every node.
It makes sure that there’s no downtime. If a container instance stops or becomes unresponsive to health checks, it’ll be automatically restarted. Also, if a node in the cluster fails, the workload running in that node will be automatically migrated to another node.
It provides functionalities to ...