<p>Let's say I have a deployment template like this</p>

<pre><code>spec:
  minReadySeconds: 15
  readinessProbe:
    failureThreshold: 3
    httpGet:
      path: /
      port: 80
      scheme: HTTP
    initialDelaySeconds: 20
    periodSeconds: 20
    successThreshold: 1
    timeoutSeconds: 5
</code></pre>

<p>How will this affect the newly versions of my app? Will the <code>minReadySeconds</code> and <code>initialDelaySeconds</code> count at the same time? Will the <code>initialDelaySeconds</code> come first then <code>minReadySeconds</code>?</p>

<p>From Kubernetes <a href="https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#min-ready-seconds" rel="noreferrer">Deployment documentation</a>:</p>

<blockquote>
  <p><code>.spec.minReadySeconds</code> is an optional field that specifies the minimum number of seconds for which a newly created Pod should be ready without any of its containers crashing, for it to be considered available. This defaults to 0 (the Pod will be considered available as soon as it is ready). To learn more about when a Pod is considered ready, see <a href="https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#container-probes" rel="noreferrer">Container Probes</a></p>
</blockquote>

<p>So your newly created app pod have to be ready for <code>.spec.minReadySeconds</code> seconds to be considered as available.</p>

<blockquote>
  <p><code>initialDelaySeconds</code>: Number of seconds after the container has started before liveness or readiness probes are initiated.</p>
</blockquote>

<p>So <code>initialDelaySeconds</code> comes before <code>minReadySeconds</code>.</p>

<p>Lets say, container in the pod has started at <code>t</code> seconds. Readiness probe will be initiated at <code>t+initialDelaySeconds</code> seconds. Assume Pod become ready at <code>t1</code> seconds(<code>t1 &gt; t+initialDelaySeconds</code>). So this pod will be available after <code>t1+minReadySeconds</code> seconds.</p>
