According to Termination of Pods, step 7 occurs simultaneously with 3. Is there any way I can prevent this from happening and have 7 occur only after the Pod
's graceful termination (or expiration of the grace period)?
The reason why I need this is that my Pod
's termination routine requires my-service-X.my-namespace.svc.cluster.local
to resolve to the Pod
's IP during the whole process, but the corresponding Endpoint
gets removed as soon as I run kubectl delete
on the Pod
/ Deployment
.
Note: In case it helps making this clear, I'm running a bunch of clustered VerneMQ (Erlang) nodes which, on termination, dump their contents to other nodes on the cluster — hence the need for the nodenames to resolve correctly during the whole termination process. Only then should the corresponding Endpoint
s be removed.
Maybe you should consider using headless service instead of using ClusterIP one. That way your apps will discover using the actual endpoint IPs and the removal from endpoint list will not break the availability during shutdown, but will remove from discovery (or from ie. ingress controller backends in nginx contrib)