Configuring the environment
A well-designed microservice will have its configuration externalized so that it can take the configuration from the environment it is deployed to. This means we can deploy the same container to a development environment, test environment, and deployment environment and not have specific versions for each. Another particularly good reason to externalize configuration such as usernames, passwords, and other credentials is to keep them out of the source code repository, so we must keep them secret. We will be making use of manifests extensively in this chapter. Manifests declare what the state should be, and Kubernetes does what it needs to do to bring the cluster into that state. Manifests are idempotent, so if a manifest is applied multiple times, no changes are made except for the first time it is applied. If the contents of a manifest are changed and it is applied, then Kubernetes will update its state to address the difference between the two instances...