When a pod with a block volume is deleted while kubelet is down (e.g. whole node is powered off), newly started kubelet does not clean up the device symlinks. It is reported upstream: https://github.com/kubernetes/kubernetes/issues/83445 We need to backport at least these PRs when they're merged upstream: https://github.com/kubernetes/kubernetes/pull/83451 https://github.com/kubernetes/kubernetes/pull/83466 + watch the issue if there are more PRs.
Check with 4.3.0-0.nightly-2019-11-24-183610, Create a pod with persistent volume, wait until the pod is running. Check which node the pods is scheduled to. Check on the node that the volume is mounted. Stop the node, and wait until it's fully stopped. On the client, force remove the pod. Start the node, wait until it is running and ready. Check on the node that the volume is not mounted, and the symlinks are moved.
Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://access.redhat.com/errata/RHBA-2020:0062