Scaling Applications Using Containers (II)
Learn how to deploy and scale a simple Node.js web server on Kubernetes (using minikube).
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 implement service discovery and load balancing.
It provides ...