Controladores de CSI: Cómo recolectar registros
Summary: En este artículo, se muestra cómo recopilar los registros básicos para comenzar a solucionar un problema de la familia de módulos de almacenamiento de contenedores (CSM) de Dell: Controladores de la interfaz de almacenamiento de contenedores (CSI) de Dell ...
Instructions
Recopilación
de registros de controladores de CSIEsto consiste en habilitar la depuración, reproducir el problema si es posible, recopilar registros para la controladora del controlador de CSI y recopilar registros del pod del nodo.
kubectl Los comandos se pueden reemplazar por "oc" en entornos OpenShift.
Habilite los registros de depuración para la controladora del controlador CSI y los pods de nodos.
Consulte la función "Configuración de registro dinámico" en la documentación: https://dell.github.io/csm-docs/docs/csidriver
Determine los nombres de la controladora y los pods de nodos.
Utilice la función kubectl get pods comando para enumerar los pods en el espacio de nombres del controlador.
# 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
Recopile los registros de la controladora del controlador CSI.
Se deben recopilar registros para los pods de la controladora. Recopile registros de todas las controladoras mediante kubectl logs comando. Asegúrese de pasar el contenedor pertinente, como el controlador.
kubectl logs -n <namespace> <controller> <container> > <file name>
Ejemplo:
kubectl logs -n isilon isilon-controller-66d7d9d7c-6j6f4 driver > isilon-controller-66d7d9d7c-6j6f4_driver.log
Repita para todos los contenedores necesarios relacionados con el problema (conector, generador de instantáneas, aprovisionamiento, controlador, redimensionador, etc.). Asegúrese de cambiar el nombre del archivo de salida para que coincida con el nombre de la controladora y el contenedor.
Recopile los registros de pod del nodo del controlador CSI.
También se deben recopilar los registros de los nodos trabajadores. Esto podría incluir un nodo o varios nodos si un pod con problemas se movía de un nodo a otro. Esto recopila los registros de cada uno de los contenedores en el pod del nodo del controlador de CSI (controlador, registrador, etc.):
kubectl logs -n <namespace> <worker node> > <filename>.txt
Ejemplo:
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
Alternativas
Script
Esto genera todos los registros de la controladora individualmente (cambie el espacio de nombres "isilon" a 2 lugares si es necesario) y agrega contenedores según sea necesario.
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
Esto recopila registros de nodos (cambie el espacio de nombres "isilon" en dos lugares si es necesario) y agrega contenedores según sea necesario.
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
Opción
SinceLa recopilación de todos los registros podría producir más datos de los necesarios. El "--since" se puede utilizar para recopilar durante un período de tiempo conocido. A esta opción le sigue "5 s", "5 m" o "5 h" para segundos, minutos y horas, según la fecha hasta la cual se deba remontar la recopilación de registros. Esto también es útil si el problema se reprodujo, recopile los últimos 5 minutos de registros (o la cantidad de tiempo que tardó en reproducirse):
Ejemplo:
kubectl logs -n isilon isilon-node-xxx driver --since 5m > isilon-node-xxx_driver.txt
Todos los contenedores
Es útil para la solución de problemas recopilar los registros por separado, como se indicó anteriormente. A veces, se reemplaza el nombre del contenedor por "--all-containers" para recopilar todos los registros de los contenedores del pod puede ser útil.
Ejemplo:
kubectl logs -n isilon isilon-node-xxx --all-containers> isilon-node_driver.txt
Otra información necesaria:
Versión y orquestador de contenedores (K8s, OpenShift, etc.) Versión
y tipo
de Kubernetes Versión
del controlador Versión del arreglo o microcódigo
Nodos K8 Sistema operativo y versión
Additional Information
Para enumerar las implementaciones:
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-controller 2/2 2 107d
-Nombre:
X_CSI_DEBUG valor: "true"
Para Isilon, el contenido de la API REST de OneFS también se debe registrar en la depuración estableciendo en 0 (verdadero):
-Nombre:
X_CSI_VERBOSE valor: "0"
Active los registros de depuración del nodo del controlador de CSI editando el conjunto de demonios.
La depuración se habilita mediante la edición del conjunto de demonios.
Para enumerar los conjuntos de demonios:
NAMESPACE NAME DESIRED CURRENT READY UP-TO-DATE NODE SELECTOR AGE
csi-powerscale isilon-node 2 2 2 2 2 14d
powermax-node 2 2 2 2 2 26d
unity-node 2 2 2 2 2 47d
vxflexos-node 2 2 2 2 2 107d
-Nombre:
X_CSI_DEBUG valor: "verdadero"
Para Isilon, el contenido de la API REST de OneFS también se debe registrar en la depuración estableciendo en 0 (verdadero):
-Nombre:
X_CSI_VERBOSE valor: "0"
Dado que los registros de depuración no son retroactivos, reproduzca el problema si es posible antes de recopilar registros.