Drivrutiner för behållarlagringsgränssnitt i serien: När en nod stängs av kan blockvolymer som är anslutna till noden inte anslutas till en annan nod

摘要: När en nod stängs av (på grund av nodkrasch, nodavbrott, avstängningsscenario) kan de blockvolymer som är anslutna till noden inte anslutas till en annan nod.

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

症状

När en nod stängs av (på grund av nodkrasch, nodavbrott, avstängningsscenario) kan de blockvolymer som är anslutna till noden inte anslutas till en annan nod. 

Problemet är specifikt för att endast blockera volymer.

Problemet uppstår inte för NFS-volymer.

Problemet påverkar följande drivrutiner:

  • CSI-drivrutin för PowerFlex
  • CSI-drivrutin för PowerMax
  • CSI-drivrutin för PowerScale
  • CSI-drivrutin för Unity

Det här problemet påverkar inte CSI-drivrutinen för PowerStore.

Problemet rapporteras i GitHub #282-stegDen här hyperlänken tar dig till en webbplats utanför Dell Technologies.

för att återskapa: 

  1. Skapa en PVC1 och skapa POD1.
  2. Kontrollera noden där POD1 skapades och stäng av noden från vSphere.
  3. När noden inte är klar kan du försöka ta bort POD1 (den fastnar i avslutad status eftersom noden inte är redo.)
  4. Försök att skapa POD2 med samma PVC1. POD2 är i behållarskapandeläge med det här felet i beskrivningen av utdata.
Warning FailedAttachVolume 43s attachdetach-controller Multi-Attach error for volume "csivol-18eb3daee0" Volume is already used by pod(s) iscsipod1-p 

Förväntat resultat: POD bör tas bort även när noden inte är klar.

Resultatet: POD fastnar i avslutad status på grund av att noden inte är klar.

Nedanstående utdata visar den ursprungliga podden avslutas och den nya podden fastnar i Container Creating:

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              


Följande kommando visar att noden inte är redo:

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


Följande kommando visar att PVC fortfarande är bunden till PV:

kubectl get pvc -n 

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


Följande kommando visar varningen:

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

原因

Grundorsaken är att bifogarens sidovagn inte kan skicka ControllerUnpublishVolume() för den nod som slutade fungera. Se information i GitHub #215 Den här hyperlänken tar dig till en webbplats utanför Dell Technologies.

解决方案

Alternativ lösning:
  1. Tvinga bort den podd som kördes på den nod som slutade fungera.
kubectl delete po  --force --grace-period=0
  1. Ta bort volymbilaga till den nod som slutade fungera.
kubectl delete volumeattachment 

Volymen kan nu anslutas till den nya noden.

Lösning:
 Lösningen uppdateras när en korrigering har släppts.
文章属性
文章编号: 000200778
文章类型: Solution
上次修改时间: 07 7月 2023
版本:  8
从其他戴尔用户那里查找问题的答案
支持服务
检查您的设备是否在支持服务涵盖的范围内。