Docker devicemapper
Sur les serveurs Kubernetes, il y a un volume monté particulier : docker-metadata.
Ce volume sert à plusieurs choses dont:
- Stocker les informations sur les pods
- Stocker les sorties standard des pods
- Stocker les images des containers.
- Stocker les volumes temporaires des containers.
Ce volume peut prendre de plus en plus de place en fonction notamment du nombre de pods et de la verbosité des pods sur leur sortie standard.
Le volume est monté généralement sur le dossier /var/lib/docker
.
Nettoyage
Il peut parfois devenir nécessaire de faire un nettoyage. Dans un premier temps nous allons rechercher quel container prend le plus de place. Nous pouvons nous baser sur la commande du
.
du -hs /var/lib/docker/containers/*
Il est possible de trier les résultats par taille.
du -hs /var/lib/docker/containers/*/*-json.log | sort -h
Puis nous pouvons réduire la taille en utilisant la commande truncate
.
Exemple :
truncate /var/lib/docker/containers/09874390ab3984cd98723e9fbb2398a29c24/09874390ab3984cd98723e9fbb2398a29c24-json.log -s 0 -c
Il peut être nécessaire d'identifier à quel pod appartient un container donné. Il est possible d'utiliser la commande suivante :
kubectl get pods --all-namespaces -o jsonpath="{range .items[*]}{@.metadata.name}{' '}{@.status.containerStatuses[*].containerID}{'\\n'}{end}" --all-namespaces | column -t | grep 09874390ab3984cd98723e9fbb2398a29c24