Kubernetes deployment vs rolling-update

3/7/2016

I have tried all the basics of Kubernetes and if you want to update your application all you can use kubectl rolling-update to update the pods one by one without downtime. Now, I have read the kubernetes documentation again and I have found a new feature called Deployment on version v1beta1. I am confused since I there is a line on the Deployment docs:

Next time we want to update pods, we can just update the deployment again.

Isn't this the role for rolling-update? Any inputs would be very useful.

-- mateeyow
cluster-computing
kubernetes

3 Answers

3/8/2016

The main difference is that "kubectl rolling-update" is client-driven rolling update, whereas the Deployment object gives you server-side rolling update.

-- DavidO
Source: StackOverflow

3/7/2016

Deployment is an Object that lets you define a declarative deploy. It encapsulates

  • DeploymentStatus object, that is in charge of managing the number of replicas and its state.

  • DeploymentSpec object, which holds number of replicas, templateSpec , Selectors, and some other data that deal with deployment behaviour.

You can get a glimpse of actual code here: https://github.com/kubernetes/kubernetes/blob/5516b8684f69bbe9f4688b892194864c6b6d7c08/pkg/apis/extensions/v1beta1/types.go#L223-L253

You will mostly use Deployments to deploy services/applications, in a declarative manner.

If you want to modify your deployment, update the yaml/json you used without changing the metadata.

In contrast, kubectl rolling-update isn't declarative, no yaml/json involved, and needs an existing replication controller.

-- Pablo Mercado
Source: StackOverflow

4/8/2016

I have been testing rolling update of a service using both replication controller and declarative deployment objects. I found using rc there appears to be no downtime from a client perspective. But when the Deployment is doing a rolling update, the client gets some errors for a while until the update stabilizes.

This is with kubernetes 1.2.1

-- user126593
Source: StackOverflow