¿Cómo soluciono un contenedor o nodo anormal debido a que no hay espacio en disco de thin pool?
Descripción del problema
Cuando el espacio en disco de un thin pool en un nodo está a punto de agotarse, ocasionalmente se producen las siguientes excepciones:
No se pueden crear archivos o directorios en el contenedor, el sistema de archivos del contenedor es de solo lectura, el nodo está contaminado con la presión del disco o el nodo no está disponible.
Puede ejecutar el comando docker info en el nodo para ver el espacio utilizado y restante del thin pool para localizar el error. La siguiente figura es un ejemplo.
Causa posible
Cuando se utiliza el mapeador de dispositivos Docker, aunque puede configurar el parámetro basesize para limitar el tamaño del directorio /home de un solo contenedor (a 10 GB de forma predeterminada), todos los contenedores del nodo siguen compartiendo el thin pool del nodo para el almacenamiento. No están completamente aislados. Cuando la suma del espacio de thin pool utilizado por ciertos recipientes alcanza el límite superior, otros recipientes no pueden funcionar correctamente.
Además, después de eliminar un archivo en el directorio /home del contenedor, el espacio de thin pool ocupado por el archivo no se libera inmediatamente. Por lo tanto, incluso si basesize se establece en 10 GB, el espacio de thin pool ocupado por los archivos sigue aumentando hasta 10 GB cuando se crean archivos en el contenedor. El espacio liberado después de la eliminación del archivo se reutilizará solo después de un tiempo. Si el número de contenedores de servicio en el nodo multiplicado por tamaño básico es mayor que el tamaño del espacio de thin pool del nodo, existe la posibilidad de que se haya agotado el espacio de thin pool.
Solución
Cuando se agota el espacio de thin pool de un nodo, algunos servicios pueden migrarse a otros nodos para recuperar servicios rápidamente. Pero se recomienda utilizar las siguientes soluciones para resolver la causa raíz:
Solución 1:
Planifique correctamente la distribución del servicio y el espacio en disco del plano de datos para evitar el escenario donde el número de contenedores de servicio multiplicado por el tamaño básico es mayor que el tamaño del thin pool del nodo. Para ampliar el espacio del thin pool, consulte Ampliación de la capacidad del disco del nodo.
Solución 2:
Cree y elimine archivos en contenedores de servicio en el almacenamiento local (por ejemplo, emptyDir y hostPath) o en el directorio de almacenamiento en la nube montado en el contenedor. Tales archivos no ocupan el espacio de thin pool.
Solución 3:
Si el sistema operativo utiliza OverlayFS, los servicios se pueden desplegar en dichos nodos para evitar el problema de que el espacio en disco ocupado por los archivos creados o eliminados en el contenedor no se libere inmediatamente.
Ejecución de nodo Preguntas frecuentes
- ¿Qué debo hacer si un clúster está disponible pero algunos nodos no están disponibles?
- ¿Cómo soluciono los problemas de la falla al iniciar sesión de forma remota en un nodo en un clúster de CCE?
- ¿Cómo inicio sesión en un nodo usando una contraseña y restablezco la contraseña?
- ¿Cómo puedo recopilar logs de nodos en un clúster de CCE?
- ¿Qué puedo hacer si la red de contenedores no está disponible después de actualizar el sistema operativo?
- ¿Qué debo hacer si el disco vdb de un nodo está dañado y el nodo no se puede recuperar después del restablecimiento?
- ¿Qué puertos se utilizan para instalar kubelet en los nodos del clúster de CCE?
- ¿Cómo configuro un pod para usar la capacidad de aceleración de un nodo de GPU?
- ¿Qué debo hacer si la suspensión de E/S ocurre ocasionalmente cuando se usan discos SCSI de EVS?
- ¿Qué debo hacer si los logs excesivos de auditoría de Docker afectan a la E/S del disco?
- ¿Cómo soluciono un contenedor o nodo anormal debido a que no hay espacio en disco de thin pool?
- ¿En qué puertos escucha un nodo?
- ¿Cómo puedo rectificar fallas cuando se utiliza el controlador de NVIDIA para iniciar contenedores en nodos de GPU?
Comentarios
¿Le pareció útil esta página?
Deje algún comentariomore