Introduction
Running microservice applications in containers solves problems related to scalability, reliability, and robustness; however, it comes with own its drawbacks. In the previous chapter, a database and blog application were run in Docker containers. If you want to run multiple databases and blogs across numerous servers, there are a couple of issues to consider. For instance, networking should be configured to enable communication between database and blog instances. In addition, the storage of the database instances should be handled so that no data is lost. Furthermore, there should be a method to handle failures at the application and hardware levels. Kubernetes is the answer to solve all these problems, plus many more to run microservice applications in containers in a scalable, reliable, and robust way. In this chapter, the history and architecture of Kubernetes are presented first. After that, accessing Kubernetes clusters is covered, and, finally, Kubernetes concepts...