Skorzystaj z tego artykułu, aby ułatwić rozwiązywanie problemów związanych z magazynem w usłudze AKS Arc.
Konfigurowanie oświadczeń trwałych woluminów powoduje błąd: "Nie można zainicjować agenta. Błąd: mkdir /var/log/agent: odmowa uprawnień"
Ten błąd odmowy uprawnień wskazuje, że domyślna klasa magazynu może nie być odpowiednia dla obciążeń i występuje w obciążeniach systemu Linux uruchomionych na platformie Kubernetes w wersji 1.19.x lub nowszej. Zgodnie z najlepszymi rozwiązaniami w zakresie zabezpieczeń wiele obciążeń systemu Linux określa securityContext fsGroup
ustawienie zasobnika. Nie można uruchomić obciążeń w usłudze AKS w usłudze Azure Local, ponieważ domyślna klasa magazynu nie określa parametru fstype (=ext4)
, więc platforma Kubernetes nie może zmienić własności plików i woluminów trwałych na podstawie żądanego fsGroup
obciążenia.
Aby rozwiązać ten problem, zdefiniuj niestandardową klasę magazynu, której można użyć do aprowizacji kontrolerów PVC.
Zasobnik interfejsu magazynu kontenerów zablokowany w stanie "ContainerCreating"
Utworzono nowy klaster obciążeń Kubernetes w wersji 1.16.10, a następnie zaktualizowano go do wersji 1.16.15. Po aktualizacji csi-msk8scsi-node-9x47m
zasobnik został zablokowany w stanie ContainerCreating i zasobnik został zablokowany w stanie Zakończenie, kube-proxy-qqnkr
jak pokazano w poniższych danych wyjściowych:
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
Ponieważ kubelet
skończyło się na złym stanie i nie może już komunikować się z serwerem interfejsu API, jedynym rozwiązaniem jest ponowne uruchomienie kubelet
usługi. Po ponownym uruchomieniu klaster przechodzi w stan działania .
Magazyn dysku wypełniony dziennikami zrzutu awaryjnego
Magazyn dyskowy można wypełnić z utworzonych dzienników zrzutu awaryjnego. Jest to spowodowane wygasłym certyfikatem klienta agenta Geneva. Objawy mogą być następujące:
- Nie można uruchomić usług.
- Nie można uruchomić zasobników, wdrożeń itp. kubernetes z powodu niewystarczającej ilości zasobów.
Ważne
Ten problem może mieć wpływ na wszystkie nowe węzły zarządzania mariner i docelowe klastry utworzone po 18 kwietnia 2023 r. w wersjach z kwietnia 2022 r. do marca 2023 r. Problem został rozwiązany w wersji 2023-05-09 i nowszej.
Ten problem może mieć wpływ na dowolną operację, która polega na przydzielaniu miejsca na dysku lub zapisywaniu nowych plików, więc każdy błąd "za mało miejsca na dysku/zasobów" jest dobrą wskazówką. Aby sprawdzić, czy ten problem występuje w danym węźle, uruchom następujące polecenie powłoki:
clouduser@moc-lwm2oudnskl $ sudo du -h /var/lib/systemd/coredump/
To polecenie zgłasza miejsce do magazynowania używane przez pliki diagnostyczne.
Główna przyczyna
Wygaśnięcie certyfikatu klienta używanego do uwierzytelniania agenta Genewskiego w punkcie końcowym usługi powoduje awarię agenta, co powoduje awarię zrzutu. Pętla awarii/ponawiania prób agenta wynosi około 5 sekund podczas początkowego uruchamiania i nie ma limitu czasu. Oznacza to, że nowy plik (około 330 MB) jest tworzony w systemie plików węzła co kilka sekund, co może szybko korzystać z magazynu dyskowego.
Czynności zapobiegawcze
Preferowanym ograniczeniem ryzyka jest uaktualnienie do najnowszej wersji 1.10.18.10425, która ma zaktualizowany certyfikat. W tym celu należy najpierw ręcznie uaktualnić klastry obciążeń do dowolnej obsługiwanej wersji pomocniczej przed zaktualizowaniem hosta lokalnego platformy Azure.
Aby uzyskać więcej informacji o wydaniach usługi AKS Arc i wszystkich najnowszych wiadomościach usługi AKS w usłudze Azure Local, zasubskrybuj stronę wydań usługi AKS.
Jeśli uaktualnienie nie jest opcją, możesz wyłączyć usługę mdsd . Dla każdego węzła Mariner:
Wyłącz agenta Genewa przy użyciu następujących poleceń powłoki:
sudo systemctl disable --now mdsd
Sprawdź, czy agent Genewa został pomyślnie wyłączony:
sudo systemctl status mdsd
Usuń zebrane pliki za pomocą następującego polecenia:
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
Uruchom ponownie węzeł:
sudo reboot
Zasobnik magazynu ulega awarii, a dzienniki mówią, że parametr "createSubDir" jest nieprawidłowy
Błąd może wystąpić, jeśli masz sterownik SMB lub NFS CSI zainstalowany we wdrożeniu i uaktualnisz do kompilacji may ze starszej wersji. Jeden z parametrów o nazwie createSubDir
nie jest już akceptowany. Jeśli dotyczy to wdrożenia, postępuj zgodnie z poniższymi instrukcjami, aby rozwiązać problem z błędem klasy magazynu.
Jeśli wystąpi ten błąd, zasobnik magazynu ulegnie awarii, a dzienniki wskazują, że createSubDir
parametr jest nieprawidłowy.
Utwórz ponownie klasę magazynu.
Podczas tworzenia woluminu trwałego próba zainstalowania woluminu kończy się niepowodzeniem
Po usunięciu woluminu trwałego lub trwałego oświadczenia woluminu w środowisku usługi AKS Arc zostanie utworzony nowy wolumin trwały do mapowania na ten sam udział. Jednak podczas próby zainstalowania woluminu instalacja kończy się niepowodzeniem i upłynął limit czasu zasobnika z powodu błędu NewSmbGlobalMapping failed
.
Aby obejść błąd instalacji nowego woluminu, możesz uruchomić Remove-SMBGlobalMapping
protokół SSH w węźle systemu Windows i udostępnić udział odpowiadający woluminowi. Po uruchomieniu tego polecenia próby zainstalowania woluminu powinny zakończyć się powodzeniem.