Använd den här artikeln för att felsöka och lösa lagringsrelaterade problem i AKS Arc.
Om du konfigurerar beständiga volymanspråk uppstår felet : "Det går inte att initiera agenten. Fel: mkdir /var/log/agent: behörighet nekad"
Det här felet om nekad behörighet anger att standardlagringsklassen kanske inte är lämplig för dina arbetsbelastningar och inträffar i Linux-arbetsbelastningar som körs ovanpå Kubernetes version 1.19.x eller senare. Enligt metodtips för säkerhet anger många Linux-arbetsbelastningar inställningen securityContext fsGroup
för en podd. Arbetsbelastningarna startar inte på AKS på Azure Local eftersom standardlagringsklassen inte anger parametern fstype (=ext4)
, så Kubernetes kan inte ändra ägarskapet för filer och beständiga volymer baserat på den fsGroup
begärda av arbetsbelastningen.
Lös problemet genom att definiera en anpassad lagringsklass som du kan använda för att etablera datorer.
Podden för containerlagringsgränssnittet har fastnat i tillståndet ContainerCreating
Ett nytt Kubernetes-arbetsbelastningskluster skapades med Kubernetes version 1.16.10 och uppdaterades sedan till 1.16.15. Efter uppdateringen csi-msk8scsi-node-9x47m
fastnade podden i containerskapningstillståndet kube-proxy-qqnkr
och podden fastnade i tillståndet Avslutande enligt utdata nedan:
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
Eftersom kubelet
hamnade i ett felaktigt tillstånd och inte längre kan prata med API-servern är den enda lösningen att starta om kubelet
tjänsten. När du har startat om hamnar klustret i ett körningstillstånd .
Disklagringen fylls på från kraschdumploggar
Disklagring kan fyllas i från kraschdumploggar som skapas. Detta beror på ett utgånget klientcertifikat för Geneva-agent. Symtomen kan vara följande:
- Det går inte att starta tjänsterna.
- Kubernetes-poddar, distributioner osv. startar inte på grund av otillräckliga resurser.
Viktigt!
Det här problemet kan påverka alla nya Mariner-hanterings- och målklusternoder som skapats efter den 18 april 2023 på versioner från april 2022 till mars 2023. Problemet åtgärdas i versionen 2023-05-09 och senare.
Det här problemet kan påverka alla åtgärder som innebär att diskutrymme allokeras eller nya filer skrivs, så eventuella "otillräckligt diskutrymme/resurser"-fel är ett bra tips. Kontrollera om det här problemet finns på en viss nod genom att köra följande gränssnittskommando:
clouduser@moc-lwm2oudnskl $ sudo du -h /var/lib/systemd/coredump/
Det här kommandot rapporterar det lagringsutrymme som förbrukas av diagnostikfilerna.
Rotorsak
Förfallodatumet för det klientcertifikat som används för att autentisera Genève-agenten till tjänstslutpunkten gör att agenten kraschar, vilket resulterar i en kraschdump. Agentens krasch-/återförsöksloop är cirka 5 sekunder vid den första starten och det finns ingen tidsgräns. Det innebär att en ny fil (cirka 330 MB) skapas i nodens filsystem med några sekunders mellanrum, vilket snabbt kan förbruka disklagring.
Riskreducering
Den bästa lösningen är att uppgradera till den senaste versionen, version 1.10.18.10425, som har ett uppdaterat certifikat. Det gör du genom att först manuellt uppgradera dina arbetsbelastningskluster till valfri delversion som stöds innan du uppdaterar din lokala Azure-värd.
Om du vill ha mer information om AKS Arc-versioner och alla de senaste AKS-nyheterna i Azure Local kan du prenumerera på sidan med AKS-versioner.
Om uppgradering inte är ett alternativ kan du inaktivera mdsd-tjänsten . För varje Mariner-nod:
Inaktivera Genève-agenten med följande gränssnittskommandon:
sudo systemctl disable --now mdsd
Kontrollera att Genèveagenten har inaktiverats:
sudo systemctl status mdsd
Ta bort ackumulerade filer med följande kommando:
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
Starta om noden:
sudo reboot
Lagringspodden kraschar och loggarna säger att parametern "createSubDir" är ogiltig
Ett fel kan inträffa om du har en SMB- eller NFS CSI-drivrutin installerad i distributionen och du uppgraderar till majversionen från en äldre version. En av parametrarna, som kallas createSubDir
, accepteras inte längre. Om detta gäller för distributionen följer du anvisningarna nedan för att lösa problemet med lagringsklassen.
Om det här felet uppstår kraschar lagringspodden och loggarna anger att parametern createSubDir
är ogiltig.
Återskapa lagringsklassen.
När du skapar en beständig volym misslyckas ett försök att montera volymen
När du har raderat en beständig volym eller ett beständiga volymanspråk i en AKS Arc-miljö skapas en ny beständiga volym för mappning till samma resurs. Men när du försöker montera volymen misslyckas monteringen och podden överskrider tidsgränsen med felet . NewSmbGlobalMapping failed
Om du vill undvika misslyckandet med att montera den nya volymen kan du SSH till Windows-noden och köra Remove-SMBGlobalMapping
och ange den resurs som motsvarar volymen. När du har kört det här kommandot bör försöken att montera volymen lyckas.