Upravit

Sdílet prostřednictvím


Oprava známých problémů a chyb při správě úložiště v AKS Arc

Tento článek vám pomůže s řešením potíží souvisejících s úložištěm ve službě AKS Arc.

Konfigurace trvalých deklarací identity svazku způsobí chybu: Agent se nedá inicializovat. Chyba: mkdir /var/log/agent: oprávnění odepřeno

Tato chyba odepření oprávnění značí, že výchozí třída úložiště nemusí být vhodná pro vaše úlohy a vyskytuje se v linuxových úlohách spuštěných nad Kubernetes verze 1.19.x nebo novější. Podle osvědčených postupů zabezpečení určuje securityContext fsGroup mnoho linuxových úloh nastavení podu. Úlohy se nepodaří spustit v AKS ve službě Azure Stack HCI, protože výchozí třída úložiště neurčuje fstype (=ext4) parametr, takže Kubernetes nedokáže změnit vlastnictví souborů a trvalých svazků na fsGroup základě požadavků úlohy.

Pokud chcete tento problém vyřešit, definujte vlastní třídu úložiště , kterou můžete použít ke zřízení FVE.

Pod rozhraní úložiště kontejnerů se zasekl ve stavu ContainerCreating

Vytvořil se nový cluster úloh Kubernetes s kubernetes verze 1.16.10 a pak se aktualizoval na verzi 1.16.15. Po aktualizaci csi-msk8scsi-node-9x47m se pod zasekl ve stavu ContainerCreating a kube-proxy-qqnkr pod se zasekl ve stavu Ukončování , jak je znázorněno ve výstupu níže:

Error: kubectl.exe get nodes  
NAME              STATUS     ROLES    AGE     VERSION 
moc-lf22jcmu045   Ready      <none>   5h40m   v1.16.15 
moc-lqjzhhsuo42   Ready      <none>   5h38m   v1.16.15 
moc-lwan4ro72he   NotReady   master   5h44m   v1.16.15

\kubectl.exe get pods -A 

NAMESPACE     NAME                        READY   STATUS              RESTARTS   AGE 
    5h38m 
kube-system   csi-msk8scsi-node-9x47m     0/3     ContainerCreating   0          5h44m 
kube-system   kube-proxy-qqnkr            1/1     Terminating         0          5h44m  

Vzhledem k tomu, že kubelet skončil ve špatném stavu a už nemůže komunikovat se serverem ROZHRANÍ API, jediným řešením je restartovat kubelet službu. Po restartování cluster přejde do spuštěného stavu.

Diskové úložiště naplněné protokoly výpisu stavu systému

Diskové úložiště je možné vyplnit z vytvořených protokolů výpisu stavu systému. Důvodem je klientský certifikát agenta Geneva, jehož platnost vypršela. Příznaky mohou být následující:

  • Služby se nedaří spustit.
  • Pody, nasazení atd. Kubernetes se nespustí kvůli nedostatku prostředků.

Důležité

Tento problém může ovlivnit všechny nové uzly clusteru pro správu Mariner a cílové uzly clusteru vytvořené po 18. dubnu 2023 ve verzích od dubna 2022 do března 2023. Problém je opravený ve verzi 2023-05-09 a novější.

Tento problém může mít vliv na jakoukoli operaci, která zahrnuje přidělení místa na disku nebo zápis nových souborů, takže jakákoli chyba "nedostatek místa na disku nebo prostředků" je dobrou nápovědou. Pokud chcete zkontrolovat, jestli k tomuto problému dochází na daném uzlu, spusťte následující příkaz prostředí:

clouduser@moc-lwm2oudnskl $ sudo du -h /var/lib/systemd/coredump/

Tento příkaz hlásí prostor úložiště spotřebovaný diagnostickými soubory.

Původní příčina

Vypršení platnosti klientského certifikátu použitého k ověření agenta Geneva na koncovém bodu služby způsobí chybové ukončení agenta, což způsobí výpis stavu systému. Smyčka selhání nebo opakování agenta je přibližně 5 sekund při počátečním spuštění a nedochází k žádnému vypršení časového limitu. To znamená, že v systému souborů uzlu se každých několik sekund vytvoří nový soubor (přibližně 330 MB), který může rychle využívat diskové úložiště.

Omezení rizik

Upřednostňovaným zmírněním rizik je upgrade na nejnovější verzi 1.10.18.10425 s aktualizovaným certifikátem. Uděláte to tak, že před aktualizací hostitele AKS-HCI nejprve ručně upgradujete clustery úloh na libovolnou podporovanou podverzi .

Pokud chcete získat další informace o verzích AKS Arc a všech nejnovějších novinkách AKS-HCI, přihlaste se k odběru stránky vydaných verzí AKS.

Pokud upgrade není možné, můžete službu mdsd vypnout. Pro každý uzel Mariner:

  1. Vypněte agenta Geneva pomocí následujících příkazů prostředí:

    sudo systemctl disable --now mdsd
    
  2. Ověřte, že se agent Geneva úspěšně zakázal:

    sudo systemctl status mdsd
    
  3. Odstraňte kumulované soubory pomocí následujícího příkazu:

    sudo find /var/lib/systemd/coredump/ -type f -mmin +1 -exec rm -f {} \;
    sudo find /run/systemd/propagate -name 'systemd-coredump@*' -delete
    sudo journalctl --rotate && sudo journalctl --vacuum-size=500M
    
  4. Restartujte uzel:

    sudo reboot
    

Pod úložiště se chybově ukončí a protokoly říkají, že parametr createSubDir je neplatný.

K chybě může dojít, pokud máte v nasazení nainstalovaný ovladač SMB nebo NFS CSI a upgradujete na květnový build ze starší verze. Jeden z parametrů s názvem createSubDirse už nepřijímá. Pokud se to týká vašeho nasazení, vyřešte selhání třídy úložiště podle následujících pokynů.

Pokud dojde k této chybě, pod úložiště dojde k chybovému ukončení a protokoly indikují, že createSubDir parametr je neplatný.

Znovu vytvořte třídu úložiště.

Při vytváření trvalého svazku se nezdaří pokus o připojení svazku.

Po odstranění trvalého svazku nebo deklarace identity trvalého svazku v prostředí AKS Arc se vytvoří nový trvalý svazek pro mapování na stejnou sdílenou složku. Při pokusu o připojení svazku se však připojení nezdaří a podu vyprší časový limit s chybou NewSmbGlobalMapping failed.

Pokud chcete obejít selhání připojení nového svazku, můžete SSH do uzlu Windows spustit Remove-SMBGlobalMapping a poskytnout sdílenou složku, která odpovídá svazku. Po spuštění tohoto příkazu by měly pokusy o připojení svazku proběhnout úspěšně.