<p>I have a Cassandra statefulSet in my Kubernetes cluster with a high terminationGracePeriod to handle data handover currently.</p>
<p>the problem is when a host machine goes down, K8s waits whole terminationGracePeriod in termination phase before rescheduling my pod on another node.</p>
<p>how can i make K8s to ignore terminationGracePeriod when the node is down and reschedule pods immediately?</p>

Aref Riant
<blockquote>
<p>the problem is when a host machine goes down, K8s waits whole terminationGracePeriod in termination phase before rescheduling my pod on another node.</p>
</blockquote>
<p>I think this is wrong assumption. When a host machine goes down, the node health check is used to detect this. Typically this is e.g. 5 minutes. Only after that, the pods are scheduled to other nodes.</p>
<p>See <a href="https://kubernetes.io/docs/concepts/architecture/nodes/#condition" rel="nofollow noreferrer">Node Condition and pod eviction</a>:</p>
<blockquote>
<p>If the status of the Ready condition remains Unknown or False for longer than the pod-eviction-timeout (an argument passed to the kube-controller-manager), then the node controller triggers API-initiated eviction for all Pods assigned to that node. The default eviction timeout duration is <strong>five minutes</strong>.</p>
</blockquote>
<blockquote>
<p>how can i make K8s to ignore terminationGracePeriod when the node is down and reschedule pods immediately?</p>
</blockquote>
<p>I don't think <code>terminationGracePeriod</code> is related to this. A pod gets a <code>SIGTERM</code> to shutdown, only if it hasn't successfully been shutdown during the whole <em>terminationGracePeriod</em>, it will be killed with <code>SIGKILL</code>.</p>
