Introduction
In the previous chapters, you ran multiple Docker containers with Docker Compose and Docker Swarm. Microservices running in various containers help developers to create scalable and reliable applications.
However, when multiple applications are spread over multiple servers across a data center, or even across multiple data centers around the world, it becomes more complex to manage the applications. There are many open-ended problems related to the complexity of distributed applications, including, but not limited to, networking, storage, and container management.
For instance, the networking of containers running on the same nodes, as well as different nodes, should be configured. Similarly, the volumes of the containers that contain the applications (which can be scaled up or down) should be managed with a central controller. Fortunately, the management of the distributed containers has a well-accepted and adopted solution: Kubernetes.
Kubernetes is an open...