Famiglia di driver dell'interfaccia di storage container: Quando un nodo si interrompe, i volumi di blocchi collegati al nodo non possono essere collegati a un altro nodo

摘要: Quando un nodo si arresta inattivo (a causa di arresto anomalo del nodo, arresto del nodo, spegnimento), i volumi di blocco collegati al nodo non possono essere collegati a un altro nodo. ...

本文适用于 本文不适用于 本文并非针对某种特定的产品。 本文并非包含所有产品版本。

症状

Quando un nodo si arresta inattivo (a causa di arresto anomalo del nodo, arresto del nodo, spegnimento), i volumi di blocco collegati al nodo non possono essere collegati a un altro nodo. 

Il problema è specifico solo per i volumi di block.

Il problema non si verifica per i volumi NFS.

Il problema riguarda i seguenti driver:

  • Driver CSI per PowerFlex
  • Driver CSI per PowerMax
  • Driver CSI per PowerScale
  • Driver CSI per Unity

Questo problema non interessa il driver CSI per PowerStore.

Il problema viene segnalato nei passaggi GitHub n. 282Questo link ipertestuale indirizza a un sito web esterno a Dell Technologies.

per riprodurre: 

  1. Creare un PVC1 e pod1.
  2. Controllare il nodo in cui è stato creato POD1 e spegnere il nodo da vSphere.
  3. Quando il nodo non è pronto, provare a eliminare POD1 (è bloccato in stato di terminazione poiché il nodo non è pronto).
  4. Provare a creare POD2 utilizzando lo stesso PVC1. POD2 è nello stato di creazione del contenitore con questo errore nella descrizione dell'output.
Warning FailedAttachVolume 43s attachdetach-controller Multi-Attach error for volume "csivol-18eb3daee0" Volume is already used by pod(s) iscsipod1-p 

Risultato previsto: Pod dovrebbe essere eliminato anche quando il nodo non è pronto.

Risultato: POD è bloccato in stato di terminazione a causa di un nodo non pronto.

L'output seguente mostra l'interruzione del pod originale e il nuovo pod bloccato in Creazione contenitore:

kubectl get pods -o wide

NAME        READY STATUS            RESTARTS AGE   IP     NODE    NOMINATED NODE READINESS GATES
iscsipod1-p 1/1   Terminating       0        9m43s              
iscsipod2-p 0/1   ContainerCreating 0        55s              


Il comando seguente mostra che il nodo non è pronto:

kubectl get nodes

NAME  STATUS   ROLES                AGE  VERSION
Node1 Ready    control-plane,master 163d v1.23.0
Node2 Ready                   162d v1.23.0
Node3 NotReady               162d v1.23.0


Il comando seguente mostra che il PVC è ancora associato al PV:

kubectl get pvc -n 

NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
iscsipvc1-p Bound csivol-18eb3daee0 5Gi RWO powerstore-iscsi 10m


Il comando seguente mostra l'avviso:

kubectl describe pod -n 

...
node.kubernetes.io/unreachable:NoExecute op=Exists for 300s
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal Scheduled 108s default-scheduler Successfully assigned default/iscsipod2-p to lglw3178
Warning FailedAttachVolume 108s attachdetach-controller Multi-Attach error for volume "csivol-18eb3daee0" Volume is already used by pod(s) iscsipod1-p

原因

La root cause è che il sidecar del attacher non è in grado di inviare ControllerUnpubblicazioneVolume() per il nodo che è andato inattivo. Consulta le informazioni contenute in GitHub n. 215 Questo link ipertestuale indirizza a un sito web esterno a Dell Technologies.

解决方案

Soluzione alternativa:
  1. Forzare l'eliminazione del pod in esecuzione sul nodo inattivo.
kubectl delete po  --force --grace-period=0
  1. Eliminare l'allegato del volume al nodo che è andato inattivo.
kubectl delete volumeattachment 

Il volume può ora essere collegato al nuovo nodo.

Risoluzione:
 Questa soluzione verrà aggiornata quando verrà rilasciata una correzione.
文章属性
文章编号: 000200778
文章类型: Solution
上次修改时间: 07 7月 2023
版本:  8
从其他戴尔用户那里查找问题的答案
支持服务
检查您的设备是否在支持服务涵盖的范围内。