Řada ovladačů rozhraní kontejnerových úložišť: Když uzel přejde dolů, blokové svazky připojené k uzlu nelze připojit k jinému uzlu

摘要: Když dojde k výpadku uzlu (v důsledku selhání uzlu, nefunkčního uzlu, vypnutí), blokové svazky připojené k uzlu nelze připojit k jinému uzlu.

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

症状

Když dojde k výpadku uzlu (v důsledku selhání uzlu, nefunkčního uzlu, vypnutí), blokové svazky připojené k uzlu nelze připojit k jinému uzlu. 

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

U svazků NFS k problému nedochází.

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

  • Ovladač CSI pro powerflex
  • Ovladač CSI pro PowerMax
  • Ovladač CSI pro PowerScale
  • Ovladač CSI pro Unity

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

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

Steps to Reproduce: 

  1. Vytvořte pvc1 a vytvořte pod1.
  2. Zkontrolujte uzel, kde byl vytvořen pod1, a vypněte uzel ze systému vSphere.
  3. Pokud uzel není připraven, zkuste odstranit pod1 (zablokuje se ve stavu ukončení, protože uzel není připraven.)
  4. Zkuste 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 když uzel není připraven.

Výsledek: Pod se zasekne ve stavu ukončení, protože uzel není připraven.

Níže uvedené výstupy zobrazují ukončení původního modulu pod a nový modul zamrzne v vytváření kontejneru:

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              


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                   162d v1.23.0
Node3 NotReady               162d v1.23.0


Následující příkaz ukazuje, že pvc je stále vázán na PV:

kubectl get pvc -n 

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


Následující příkaz zobrazí varování:

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

原因

Hlavní příčinou je to, že přídavný vozík nemůže odeslat soubor ControllerUnpublishVolume() pro uzel, který se zřítil. 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. Vynuťte odstranění modulu spuštěného na uzlu, který se spustil.
kubectl delete po  --force --grace-period=0
  1. Odstraňte přílohu svazku s uzlem, který se spustil.
kubectl delete volumeattachment 

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

Řešení:
 Toto řešení bude aktualizováno po vydání opravy.
文章属性
文章编号: 000200778
文章类型: Solution
上次修改时间: 07 7月 2023
版本:  8
从其他戴尔用户那里查找问题的答案
支持服务
检查您的设备是否在支持服务涵盖的范围内。