Updating batch processes, such as jobs and CronJobs, is relatively easy. Since they have a limited lifetime, the simplest strategy of updating code or configurations is just to update the resources in question before they are used again.
Long-running processes are a little harder to deal with, and even harder to manage if you are exposing a service to the network. Kubernetes provides us with the deployment resource to make deploying and, more importantly, updating long-running processes simpler.
In Chapter 2, Start Your Engines, we took a first look at the deployment resource, both creating deployments with kubectl run and by defining a deployment object in a YAML file. In this chapter, we will recap the process that the deployment controller uses to roll out changes, and then look in to some of the more advanced options for controlling...