Sterowniki CSI: Zbieranie wpisów do dziennika
Summary: W tym artykule przedstawiono sposób gromadzenia podstawowych dzienników w celu rozpoczęcia rozwiązywania problemu z rodziną modułów Dell Container Storage Modules (CSM): Sterowniki Dell Container Storage Interface (CSI) ...
Instructions
Zbiór
dzienników sterowników CSIObejmuje to włączenie debugowania, odtworzenie problemu, jeśli to możliwe, zebranie dzienników dla kontrolera sterowników CSI i zebranie dzienników z zasobnika węzła.
kubectl polecenia można zastąpić "oc" w środowiskach OpenShift.
Włącz dzienniki debugowania dla kontrolera sterownika CSI i zasobników węzła.
Zobacz funkcję "Dynamic Logging Configuration" w dokumentacji: https://dell.github.io/csm-docs/docs/csidriver
Określ nazwy zasobników kontrolera i węzła.
Za pomocą przycisku kubectl get pods , aby wyświetlić listę zasobników w przestrzeni nazw sterowników.
# kubectl get pods -n isilon NAME READY STATUS RESTARTS AGE isilon-controller-66d7d9d7c-6j6f4 6/6 Running 0 11m isilon-node-9wngk 2/2 Running 0 27d
Zbierz dzienniki kontrolera sterowników CSI.
Dzienniki powinny być zbierane dla zasobników kontrolera. Zbierz dzienniki ze wszystkich kontrolerów za pomocą kubectl logs . Upewnij się, że przekazujesz odpowiedni pojemnik, np. kierowcę.
kubectl logs -n <namespace> <controller> <container> > <file name>
Przykład:
kubectl logs -n isilon isilon-controller-66d7d9d7c-6j6f4 driver > isilon-controller-66d7d9d7c-6j6f4_driver.log
Powtórz te czynności w przypadku wszystkich wymaganych kontenerów związanych z problemem (dołączający, moduł migawki, inicjator, sterownik, zmiana rozmiaru itd.). Pamiętaj, aby zmienić nazwę pliku wyjściowego, aby była zgodna z nazwą kontrolera i kontenerem.
Zbieraj dzienniki zasobników węzła sterownika CSI.
Dzienniki powinny być również zbierane dla węzłów roboczych. Może to obejmować jeden węzeł lub wiele węzłów, jeśli zasobnik powodujący problemy był przenoszony z jednego węzła do drugiego. Spowoduje to zebranie dzienników dla każdego kontenera w zasobniku węzła sterownika CSI (sterownik, rejestrator itd.):
kubectl logs -n <namespace> <worker node> > <filename>.txt
Przykład:
kubectl logs -n isilon isilon-node-9wngk driver > isilon-node-9wngk_driver.txt kubectl logs -n isilon isilon-node-9wngk registrar > isilon-node-9wngk_registrar.txt
Alternatywy
Skrypt
: Spowoduje to wygenerowanie wszystkich dzienników kontrolera osobno (zmiana przestrzeni nazw "isilon" o 2 miejsca w razie potrzeby) i dodanie kontenerów zgodnie z wymaganiami.
for x in $(kubectl get pods -n isilon | grep controller | awk '{print $1}'); do for i in attacher provisioner driver snapshotter;do kubectl logs -n isilon $x -c $i > $x-$i.txt;done;done
Spowoduje to zebranie dzienników węzłów (w razie potrzeby zmiana przestrzeni nazw "isilon" w dwóch miejscach) i dodanie kontenerów zgodnie z wymaganiami.
for x in $(kubectl get pods -n isilon | grep node | awk '{print $1}'); do for i in driver registrar;do kubectl logs -n isilon $x -c $i > $x-$i.txt;done;done
Ponieważ opcja
Zebranie wszystkich dzienników może przynieść więcej danych niż jest to wymagane. Plik "--since" może być używana do zbierania przez znany czas. Po tej opcji następuje "5 s", "5 m" lub "5 h" przez sekundy, minuty, godziny, w zależności od tego, jak daleko wstecz powinien przejść dziennik. Jest to również pomocne, jeśli problem został odtworzony, zbierz ostatnie 5 minut dzienników (lub czas potrzebny na odtworzenie):
Przykład:
kubectl logs -n isilon isilon-node-xxx driver --since 5m > isilon-node-xxx_driver.txt
Wszystkie kontenery
W przypadku rozwiązywania problemów pomocne jest oddzielne zebranie dzienników w sposób opisany powyżej. Czasami zastąpienie nazwy kontenera ciągiem "--all-containers", aby zebrać dzienniki wszystkich kontenerów kapsuły, może być przydatne.
Przykład:
kubectl logs -n isilon isilon-node-xxx --all-containers> isilon-node_driver.txt
Inne wymagane informacje:
Container Orchestrator (K8s, OpenShift itd.) oraz wersja
Wersja i wersja
Kubernetes Wersja
sterownika Wersja macierzy lub mikrokodu
System operacyjny i wersja węzłów K8
Additional Information
Aby wyświetlić listę wdrożeń:
NAMESPACE NAME READY UP-TO-DATE AVAILABLE AGE
csi-powerscale isilon-controller 1/1 1 1 14d
powermax powermax-controller 1/1 1 1 26d
unity-controller 1/1 1 1 47d
vxflexos vxflexos-controller 2/2 2 2 107d
-Nazwa:
X_CSI_DEBUG wartość: "True" (Prawda)
w przypadku Isilon zawartość interfejsu API REST OneFS powinna być również zarejestrowana w debugowania przez ustawienie 0 (prawda):
-Nazwa:
X_CSI_VERBOSE wartość: "0"
Enable CSI Driver node debug logs by editing the daemonset.
Debugowanie jest włączone przez edycję demonsetu.
Aby wyświetlić listę demonów:
NAMESPACE NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE
csi-powerscale isilon-node 2 2 2 2 14d
powermax powermax-node 2 2 2 2 26d
unity unity-node 2 2 2 2 2 47d
vxflexos vxflexos-node 2 2 2 2 107d
-Nazwa:
X_CSI_DEBUG wartość: "Prawda"
W przypadku Isilon zawartość interfejsu API Rest OneFS również powinna być rejestrowana w debugowania przez ustawienie 0 (prawda):
-Nazwa:
X_CSI_VERBOSE wartość: "0"
Ponieważ dzienniki debugowania nie są retroaktywne, należy odtworzyć problem, jeśli to możliwe, przed zebraniem dzienników.