title: What is the difference between ReplicaSet and ReplicationController?
body: <p>From what I can tell in the documentation, a <a href="https://kubernetes.io/docs/concepts/workloads/controllers/replicaset/" rel="noreferrer"><code>ReplicaSet</code></a> is created when running a <a href="https://kubernetes.io/docs/concepts/workloads/controllers/deployment/" rel="noreferrer"><code>Deployment</code></a>. It seems to support some of the same features of a <a href="https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller/" rel="noreferrer"><code>ReplicationController</code></a> - scale up/down and auto restart, but it's not clear if it supports rolling upgrades or autoscale.</p>
  
  <p>The v1.1.8 user guide shows how to create a deployment in <a href="http://kubernetes.io/docs/user-guide/deploying-applications/" rel="noreferrer">Deploying Applications</a> (which automatically creates a <code>ReplicaSet</code>), yet the <code>kubectl get replicasets</code> command is not available until v1.2.0. I cannot find any other information about <code>ReplicaSet</code> in the documentation. </p>
  
  <p>Will <code>ReplicaSet</code> eventually replace <code>ReplicationController</code>? Why would I want to use <code>Deployment</code> and <code>ReplicaSet</code> instead of <code>ReplicationController</code>?</p>