<p>I am trying to get my hands dirty on Kubernetes. I am firing following command:</p>

<pre><code>kubectl get deployment
</code></pre>

<p>and I get the following headers in the output:</p>

<p><a href="https://i.stack.imgur.com/mX2TR.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/mX2TR.png" alt="kubectll get deployment"></a></p>

<p>I can't find the difference between <code>current</code> and <code>available</code> columns in the following output?</p>

<p>I know that official documentation gives a small description each of these fields, but it doesn't answer my following questions:</p>

<ol>
<li>Is <code>Current</code> &lt;= <code>Desired</code> true?</li>
<li>Is <code>Up-to-Date</code> &lt;= <code>Current</code> true?</li>
<li>Is <code>Up-to-Date</code> > <code>Current</code> and <code>Up-to-Date</code> &lt;= <code>Desired</code> true?</li>
<li>Is <code>Available</code> always &lt;= <code>Current</code> OR it can be > <code>Available</code>?</li>
</ol>

<p>In short, what is the relation between all these fields?</p>

<p>The Deployment object specifies the desired state of your Deployment, and the Deployment Controller drives the current state of the system towards the desired state.</p>

<p>The <code>Desired</code> field specifies the number of replicas you asked for, while the <code>Current</code> field specifies the number of replicas that are currently running in the system. The <code>Up-To-Date</code> field indicates the number of replicas that are up to date with the desired state. The <code>Available</code> field shows the number of replicas that are passing readiness probes (if defined).</p>

<ol>
<li><p>Is <code>Current</code> always &lt;= <code>Desired</code>? No, current can be greater than desired during a deployment update.</p></li>
<li><p>Is <code>Up-to-date</code> always &lt;= <code>Current</code>? I believe the answer here is yes.</p></li>
<li><p>Is <code>Up-to-date</code> > <code>Current</code>? No, up-to-date should be the same as current, or less than current during a deployment update.</p></li>
<li><p>Is <code>Available</code> always &lt;= <code>Current</code>? Yes.</p></li>
</ol>

<p>I encourage you to go through a deployment update and scale out/in while using <code>watch</code> to monitor these fields as the controller converges current state to desired state.</p>
