Current CSI volume lifecycle is not designed for the case when Node is unreachable.
When Node is shutdown or in a non-recoverable state such as hardware failure or broken OS, Node Plugin cannot issue NodeUnpublishVolume / NodeUnstageVolume . In this case, we want to make the status CREATED (volume is detached from the node and pods are evicted to other node and running)
But in current CSI volume lifecycle, there is no transition from PUBLISHED / VOL_READY / NODE_READY to CREATED.
As a result, k8s doesn't follow the CSI spec and the status moves from PUBLISHED to CREATED directly without going through VOL_READY and/or NODE_READY status.
We need to update the CSI volume lifecycle with considering the case when Node is unreachable.
Current CSI volume lifecycle is not designed for the case when
Nodeis unreachable.When
Nodeis shutdown or in a non-recoverable state such as hardware failure or broken OS,Node Plugincannot issueNodeUnpublishVolume/NodeUnstageVolume. In this case, we want to make the statusCREATED(volume is detached from the node and pods are evicted to other node and running)But in current CSI volume lifecycle, there is no transition from
PUBLISHED/VOL_READY/NODE_READYtoCREATED.As a result, k8s doesn't follow the CSI spec and the status moves from
PUBLISHEDtoCREATEDdirectly without going throughVOL_READYand/orNODE_READYstatus.We need to update the CSI volume lifecycle with considering the case when
Nodeis unreachable.