Gebruik dit artikel om problemen met betrekking tot opslag in AKS Arc op te lossen.
Het configureren van permanente volumeclaims resulteert in de fout: 'Kan agent niet initialiseren. Fout: mkdir /var/log/agent: machtiging geweigerd'
Deze fout geeft aan dat de standaardopslagklasse mogelijk niet geschikt is voor uw workloads en optreedt in Linux-workloads die worden uitgevoerd boven op Kubernetes versie 1.19.x of hoger. Volgens best practices voor beveiliging geven veel Linux-workloads de securityContext fsGroup
instelling voor een pod op. De workloads kunnen niet worden gestart op AKS in Azure Stack HCI omdat de standaardopslagklasse de fstype (=ext4)
parameter niet opgeeft, waardoor Kubernetes het eigendom van bestanden en permanente volumes niet kan wijzigen op basis van de fsGroup
aangevraagde workload.
U kunt dit probleem oplossen door een aangepaste opslagklasse te definiëren die u kunt gebruiken om HPC's in te richten.
ContainerOpslaginterfacepod vastgelopen in de status ContainerCreating
Er is een nieuw Kubernetes-workloadcluster gemaakt met Kubernetes versie 1.16.10 en vervolgens bijgewerkt naar 1.16.15. Na de update is de csi-msk8scsi-node-9x47m
pod vastgelopen in de status ContainerCreating en is de kube-proxy-qqnkr
pod vastgelopen in de afsluitstatus , zoals wordt weergegeven in de onderstaande uitvoer:
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
Omdat kubelet
deze in een slechte status terecht is gekomen en niet meer kan communiceren met de API-server, is de enige oplossing het opnieuw starten van de kubelet
service. Na het opnieuw opstarten wordt het cluster uitgevoerd .
Schijfopslag opgevuld vanuit crashdumplogboeken
Schijfopslag kan worden opgevuld vanuit crashdumplogboeken die worden gemaakt. Dit komt door een verlopen Geneva-agentclientcertificaat. De symptomen kunnen als volgt zijn:
- Services kunnen niet worden gestart.
- Kubernetes-pods, implementaties, enzovoort kunnen niet worden gestart vanwege onvoldoende resources.
Belangrijk
Dit probleem kan van invloed zijn op alle nieuwe Mariner-beheer- en doelclusterknooppunten die na 18 april 2023 zijn gemaakt bij releases van april 2022 tot maart 2023. Het probleem is opgelost in de release 2023-05-09 en hoger.
Dit probleem kan van invloed zijn op elke bewerking waarbij schijfruimte wordt toegewezen of nieuwe bestanden worden geschreven, dus een eventuele fout 'onvoldoende schijfruimte/resources' is een goede hint. Voer de volgende shell-opdracht uit om te controleren of dit probleem aanwezig is op een bepaald knooppunt:
clouduser@moc-lwm2oudnskl $ sudo du -h /var/lib/systemd/coredump/
Met deze opdracht wordt de opslagruimte gerapporteerd die wordt verbruikt door de diagnostische bestanden.
Hoofdoorzaak
Het verlopen van het clientcertificaat dat wordt gebruikt om de Geneva-agent te verifiëren bij het service-eindpunt, zorgt ervoor dat de agent vastloopt, wat resulteert in een crashdump. De lus voor vastlopen/opnieuw proberen van de agent duurt ongeveer 5 seconden bij de eerste start en er is geen time-out. Dit betekent dat er elke paar seconden een nieuw bestand (ongeveer 330 MB) wordt gemaakt in het bestandssysteem van het knooppunt, dat snel schijfopslag kan verbruiken.
Oplossing
De voorkeursbeperking is om een upgrade uit te voeren naar de nieuwste versie, versie 1.10.18.10425, die een bijgewerkt certificaat heeft. Hiervoor moet u eerst uw workloadclusters handmatig upgraden naar een ondersteunde secundaire versie voordat u uw AKS-HCI-host bijwerkt.
Abonneer u op de pagina AKS-releases voor meer informatie over AKS Arc-releases en het laatste AKS-HCI-nieuws.
Als upgraden geen optie is, kunt u de mdsd-service uitschakelen. Voor elk Mariner-knooppunt:
Schakel de Geneva-agent uit met de volgende shell-opdrachten:
sudo systemctl disable --now mdsd
Controleer of de Geneva-agent is uitgeschakeld:
sudo systemctl status mdsd
Verwijder verzamelde bestanden met de volgende opdracht:
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
Start het knooppunt opnieuw op:
sudo reboot
Opslagpod loopt vast en de logboeken geven aan dat de parameter createSubDir ongeldig is
Er kan een fout optreden als u een SMB- of NFS CSI-stuurprogramma hebt geïnstalleerd in uw implementatie en u een upgrade uitvoert naar de build van mei vanaf een oudere versie. Een van de parameters, genaamd createSubDir
, wordt niet meer geaccepteerd. Als dit van toepassing is op uw implementatie, volgt u de onderstaande instructies om de fout met de opslagklasse op te lossen.
Als deze fout optreedt, loopt de opslagpod vast en geven de logboeken aan dat de createSubDir
parameter ongeldig is.
Maak de opslagklasse opnieuw.
Bij het maken van een permanent volume mislukt een poging om het volume te koppelen
Na het verwijderen van een permanent volume of een permanente volumeclaim in een AKS Arc-omgeving, wordt een nieuw permanent volume gemaakt om aan dezelfde share toe te wijzen. Wanneer u echter probeert het volume te koppelen, mislukt de koppeling en treedt er een time-out op voor de pod met de fout NewSmbGlobalMapping failed
.
Als u de fout bij het koppelen van het nieuwe volume wilt omzeilen, kunt u SSH uitvoeren in het Windows-knooppunt en Remove-SMBGlobalMapping
de share opgeven die overeenkomt met het volume. Na het uitvoeren van deze opdracht moeten pogingen om het volume te koppelen slagen.