Comprensión de la salida df dentro del contenedor GKE

2 minutos de lectura

Estoy probando el almacenamiento efímero por primera vez. Tengo un nodo con un solo disco SSD local (GKE) de 375 G y un disco de arranque estándar de 100 G. Para el almacenamiento efímero, utilizo emptyDirmonte el volumen en /workdiry establecí mi solicitud/límite en 20G. Cuando entro en el pod y corro df -kh Ya veo:

Filesystem      Size  Used Avail Use% Mounted on
overlay         369G  7.8G  342G   3% /
tmpfs            64M     0   64M   0% /dev
tmpfs           103G     0  103G   0% /sys/fs/cgroup
/dev/nvme0n1    369G  7.8G  342G   3% /workdir
shm              64M   24K   64M   1% /dev/shm
tmpfs           103G     0  103G   0% /proc/acpi
tmpfs           103G     0  103G   0% /proc/scsi
tmpfs           103G     0  103G   0% /sys/firmware

Esperaba /workdir tener un tamaño de 20G. ¿Por qué ambos / y /workdir parecen ser idénticos y ¿por qué veo casi el disco lleno?

  • ¿Qué versión de Kube estás usando?

    – Gari Singh

    7 abr 2021 a las 20:59

  • También deberías usar du -sh dentro del contenedor en lugar de df si quieres ver el uso.

    – Gari Singh

    7 abr 2021 a las 21:07


  • El clúster ejecuta 1.18.12-gke.1210. No estoy interesado en el uso, sino en el espacio total, por lo que creo que df es la herramienta adecuada. Me interesa saber por qué más 20G parece estar disponible cuando mi pod solicitó 20GB.

    – Papá Hoosier

    8 de abril de 2021 a las 5:10

  • El espacio total será el espacio del volumen/disco real que respalda el nodo, que en este caso es el SSD 375G, emptyDir no crea el equivalente de un disco virtual. El propio kubelet rastrea el uso y desalojará el pod si hay una contención de recursos por encima del límite (según recuerdo).

    – Gari Singh

    8 de abril de 2021 a las 7:47

  • Entonces, ¿esto significa que la solicitud solo se usa para programar? Es decir, ¿podría programar 18 de mis pods en este nodo (para 360 GB), al menos en lo que respecta al almacenamiento efímero? Con respecto a la disputa: ¿estaría bien si un pod usara todos los 360 GB y los otros pods usaran cero?

    – Papá Hoosier

    08/04/2021 a las 15:25

  • Actualicé mi respuesta porque no se leía correctamente. Creo que si el kubelet detecta que el contenedor/vaina ha excedido el límite, hará que la vaina sea desalojada.

    – Gari Singh

    8 de abril de 2021 a las 17:13

  • Gracias por la aclaración. ¿Sabes si un proceso en un contenedor puede saber cuál es el límite?

    – Papá Hoosier

    9 de abril de 2021 a las 14:11

  • No puedo pensar en una manera que no implique realmente llamar a una API de Kube. Creo que la función de volúmenes efímeros genéricos resolverá todo esto por ti (eventualmente)

    – Gari Singh

    9 de abril de 2021 a las 14:14

  • Aparte, me gusta tu nombre de usuario, ¡inteligente!

    – Gari Singh

    10 de abril de 2021 a las 8:36

¿Ha sido útil esta solución?