What is the different between openshift deploymentconfig and kubernetes deployment

Weiwei Jiang picture Weiwei Jiang · Apr 19, 2018 · Viewed 10k times · Source

After far as I know:

  • deploymentconfig → replicationcontroller → pod

vs.

  • deployment → replicaset → pod

Otherwise, do these two resources have additional differences?

The more detail the better.

Answer

Michael Hausenblas picture Michael Hausenblas · Apr 19, 2018

A DeploymentConfig (DC) in OpenShift is more or less equivalent to a Kubernetes Deployment, nowadays. Main difference (besides that one is using ReplicationController and the other using ReplicaSet as you rightly pointed out) is that

  1. there are a few things you can do with a DeploymentConfig (around triggers) that you can't do with a Deployment.

  2. DeploymentConfig's are first-class citizens in the Web console.

The reason DeploymentConfig's exist is because we (Red Hat) are innovating. In other words: DeploymentConfig's predate Deployment's and while we're always trying to propose these innovations upstream, they are not always accepted by the community as is. For example, in the case of RBAC, the stuff we had in OpenShift was accepted upstream and that's why you have the same RBAC resources etc. now in OpenShift and Kubernetes. With DeploymentConfig's that was not the case. Over time one would expect that DeploymentConfig's are phased out in favor of Deployment's but I can't give you a timeline. If portability is your primary concern, I'd say, use Deployment's.