<blockquote>
<p>readinessProbe: Indicates whether the container is ready to respond to requests. If the readiness probe fails, the endpoints controller removes the Pod's IP address from the endpoints of all Services that match the Pod. The default state of readiness before the initial delay is Failure. If a Container does not provide a readiness probe, the default state is Success</p>
</blockquote>
<p>If the readiness probe fails (and the Pod's IP address is removed from end point), what happens next?
Will the Pod's readiness probe conditions be checked again? Will it check again after initial delay? Is there any chance the Pod's IP address is added to the end point again (if the Pod self healed after readiness probe fails)? Will that Pod receive traffic again incase if it's healed?</p>

<blockquote>
<p>will the pod's readiness prob conditions checked again?</p>
</blockquote>
<p>yes, the condition will be checked again depends on the threshold you have set.</p>
<p>On each <code>periodSeconds</code>configuration readiness will be checked for POD.</p>
<blockquote>
<p>will it check again after the initial delay?</p>
</blockquote>
<p>It will check after the Initial delay only. Initial delay comes into the picture when POD is initializing or starting. readiness check will wait for configured time and after that time it will start checking the readiness of POD on each time interval suppose every <code>5</code> second or <code>10</code> seconds depends on the configuration of the <code>periodSeconds</code>.</p>
<blockquote>
<p>are there any chance pod's ip address added to the end point again(if
pod self healed after readiness probe fails)?</p>
</blockquote>
<p>Yes if get auto healed mean, <code>successThreshold</code> set to <code>1</code> time if POD give 200 one time it will marked as heal and running pod is this case POD will get the traffic again.</p>
<blockquote>
<p>will the pod ever receive traffic again incase if it's healed?</p>
</blockquote>
<p>Yes</p>
<p>For example :</p>
<pre><code>readinessProbe:
            httpGet:
              path: /k8/readiness
              port: 9595
            initialDelaySeconds: 25
            periodSeconds: 8
            timeoutSeconds: 10
            successThreshold: 1
            failureThreshold: 30
        livenessProbe:
            httpGet:
              path: /k8/liveness
              port: 9595
            initialDelaySeconds: 30
            periodSeconds: 8
            timeoutSeconds: 10
            successThreshold: 1
            failureThreshold: 30
</code></pre>
<p>The readiness and liveness probe will check the status on HTTP endpoint as mentioned in configuration.</p>
<p><strong>initialDelaySeconds</strong> : it will only come into the picture when your POD initializing or starting again due to restart or anything. So when POD is starting readiness wont check service status till 30 second.</p>
<p>After <strong>30</strong> <code>seconds</code> it will try to check the status on the endpoint. If successful POD will be in a <strong>ready</strong> state to handle the traffic or else it will try for another time <code>periodSeconds</code> so after <strong>8</strong> seconds it will try again if we will <code>200 response</code> POD will be <strong>Ready</strong> or else will try after <strong>8</strong> seconds.</p>
<p><strong>timeoutSeconds</strong> : single hop or request will wait the amount of time to get response from service or else mark as failed check.</p>
<p><strong>failureThreshold</strong> : Maximum number of failed check after this POD will get started or changed to Not Ready state based on configuration liveness or readiness.</p>
<p><strong>successThreshold</strong> : Successful threshold means if single request get success response from service POD status gets changed to <strong>Ready</strong>.</p>
<p>If continuous <strong>30</strong> <code>failureThreshold</code> occur then only POD will get marked as <strong>Not ready</strong> if in between <strong>single</strong> <code>successThreshold</code> occur POD will get mark as <strong>Ready</strong> same for liveness.</p>
<p><strong>Note</strong> : Above example is just for reference can not be useful in an actual production scenario.</p>
<p>Read more at : <a href="https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/" rel="nofollow noreferrer">https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/</a></p>
