Řada ovladačů Container Storage Interface: Když dojde k výpadku uzlu, blokové svazky, které jsou připojeny k uzlu, nemohou být připojeny k jinému uzlu

摘要: Když dojde k výpadku uzlu (kvůli havárii uzlu, vypnutí uzlu nebo vypnutí), blokové svazky, které jsou připojeny k uzlu, nelze připojit k jinému uzlu.

本文章適用於 本文章不適用於 本文無關於任何特定產品。 本文未識別所有產品版本。

症狀

Když dojde k výpadku uzlu (kvůli havárii uzlu, vypnutí uzlu nebo vypnutí), blokové svazky, které jsou připojeny k uzlu, nelze připojit k jinému uzlu. 

Problém se týká pouze blokových svazků.

K problému nedochází u svazků NFS.

Problém se týká následujících ovladačů:

  • Ovladač CSI pro PowerFlex
  • Ovladač CSI pro úložiště PowerMax
  • Ovladač CSI pro PowerScale
  • Ovladač CSI pro Unity

Tento problém nemá vliv na ovladač CSI pro zařízení PowerStore.

Problém je hlášen na GitHub #282Tento hypertextový odkaz vás zavede na webové stránky mimo společnost Dell Technologies.

kroky k reprodukování: 

  1. Vytvořte PVC1 a vytvořte POD1.
  2. Zkontrolujte uzel, ve kterém byl vytvořen POD1, a vypněte uzel ze systému vSphere.
  3. Když uzel nebude připraven, zkuste odstranit POD1 (zasekne se v ukončovacím stavu, protože uzel není připraven).
  4. Pokuste se vytvořit POD2 pomocí stejného PVC1. POD2 je ve stavu vytváření kontejneru s touto chybou v popisu výstupu.
Warning FailedAttachVolume 43s attachdetach-controller Multi-Attach error for volume "csivol-18eb3daee0" Volume is already used by pod(s) iscsipod1-p 

Očekávaný výsledek: POD by se měl odstranit i v případě, že uzel není připravený.

Výsledek: Uzel POD se zasekne v ukončovacím stavu z důvodu nepřipraveného uzlu.

Následující výstup ukazuje, že původní pod končí a nový pod se zablokuje při vytváření kontejnerů:

kubectl get pods -o wide

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


Následující příkaz ukazuje, že uzel není připraven:

kubectl get nodes

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


Následující příkaz ukazuje, že PVC je stále svázáno s PV:

kubectl get pvc -n <namespace>

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


Následující příkaz zobrazí upozornění:

kubectl describe pod -n <namespace>

...
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

原因

Hlavní příčinou je, že postranní vozík připojovače není schopen odeslat ControllerUnpublishVolume() pro uzel, který spadl. Viz informace obsažené v GitHubu #215 Tento hypertextový odkaz vás zavede na webové stránky mimo společnost Dell Technologies.

解析度

Zástupné řešení:
  1. Vynutit odstranění podu, který běžel na uzlu, který byl mimo provoz.
kubectl delete po <pod name> --force --grace-period=0
  1. Odstraňte přílohu svazku k uzlu, který spadl.
kubectl delete volumeattachment <volumeattachment>

Svazek lze nyní připojit k novému uzlu.

Řešení:
 Toto řešení bude aktualizováno, jakmile bude vydána oprava.
文章屬性
文章編號: 000200778
文章類型: Solution
上次修改時間: 07 7月 2023
版本:  8
向其他 Dell 使用者尋求您問題的答案
支援服務
檢查您的裝置是否在支援服務的涵蓋範圍內。