Managing applications in Kubernetes is generally a lot easier then managing applications deployed on bare servers because all the configuration for applications can be done through a unified command-line interface. That said, as you move tens or hundreds of containers into a Kubernetes environment, the volume of configuration management that needs to be automated can be difficult to approach from a unified perspective. ConfigMaps, Secrets, API server credentials, and customization of volume types are just a few of the day-to-day paper cuts that can make Kubernetes administration tedious over time.
In this chapter, we’ll (finally) take a step back from the internal details of a Kubernetes implementation and spend a little bit of time looking at the higher-level aspects of application configuration and administration. We’ll start by thinking about what an application is and how we can install applications on Kubernetes.
For our purposes, we’ll refer to a Kubernetes application as a collection of API resources that need to be deployed for a service. The canonical example of this might be the Guestbook application, defined at http://mng.bz/y4NE. This application includes