Estos contenidos se han traducido de forma automática para su comodidad, pero Huawei Cloud no garantiza la exactitud de estos. Para consultar los contenidos originales, acceda a la versión en inglés.
Centro de ayuda/ Cloud Container Engine/ Preguntas frecuentes/ Nodo/ Núcleo de nodos/ Cuando las aplicaciones se crean y eliminan repetidamente en un nodo de CentOS con una versión de kernel anterior, se produce una fuga de cgroup Kmem de vez en cuando
Actualización más reciente 2023-08-08 GMT+08:00

Cuando las aplicaciones se crean y eliminan repetidamente en un nodo de CentOS con una versión de kernel anterior, se produce una fuga de cgroup Kmem de vez en cuando

Síntoma

En escenarios donde la versión del núcleo de los nodos de CentOS 7.6 es anterior a 3.10.0-1062.12.1.el7.x86_64 (principalmente en clústeres de la versión 1.17.9), la fuga de cgroup kmem ocurre cuando las aplicaciones se crean repetidamente. Como resultado, hay memoria de nodo pero no se pueden crear nuevos nodos, y se muestra el mensaje de error "Cannot allocate memory" (No se puede asignar memoria).

Causa posible

Cuando se crea una aplicación repetidamente, se crea un cgroup de memoria temporal. Sin embargo, cuando se elimina la aplicación, el núcleo ha eliminado el cgroup (se ha eliminado el directorio cgroup correspondiente de /sys/fs/cgroup/memory), pero el cssid no se libera en el núcleo. Como resultado, el núcleo considera que el número real de cgroups es inconsistente. Cuando el número de cgroups residuales alcanza el límite superior del nodo, no se pueden crear pods en el nodo.

Solución

  • Utilice el parámetro cgroup.memory=nokmem globalmente en el núcleo para deshabilitar kmem para evitar fugas.
  • Los clústeres de v1.17 ya no se mantienen. Para resolver este problema, actualice el clúster a v1.19 o posterior y restablezca el sistema operativo del nodo a la versión más reciente. Asegúrese de que la versión del núcleo es posterior a 3.10.0-1062.12.1.el7.x86_64.