Que signifie l'erreur "cannot delete Pods with local storage"?

mxglt

Maxime Guilbert

Posted on April 3, 2023

Que signifie l'erreur "cannot delete Pods with local storage"?

Lors de mises à jour de cluster ou le retrait d'un noeud, il se peut que l'on tombe sur l'erreur "**cannot delete Pods with local storage".

$ kubectl drain node-1 --ignore-daemonsets
...
error: cannot delete Pods with local storage (use --delete-emptydir-data to override):
Enter fullscreen mode Exit fullscreen mode

La solution est simple et est notée dans le log d'erreur. Il suffit d'ajouter l'option --delete-emptydir-data à votre commande pour que ça fonctionne.

Mais qu'est-ce que cette erreur signifie réellement?


Explication de l'erreur

Cette erreur veut vous signaler que parmis les pods que vous avez sur le noeud que vous souhaitez vider, il y a des pods qui utilisent du stockage local (local storage) comme emptyDir.

apiVersion: v1
kind: Pod
metadata:
  name: my-pod
spec:
  containers:
  - image: busybox
    name: busybox
    volumeMounts:
    - mountPath: /data
      name: my-volume
  volumes:
  - name: my-volume
    emptyDir: {}
Enter fullscreen mode Exit fullscreen mode

Utiliser un volume emptyDir est quelque chose qui doit être réfléchie et bien comprise pour éviter de tomber dans cette situation.

En effet un volume emptyDir n'existe que sur le noeud sur lequel se trouve le pod auquel il est rattaché. Contrairement au pod, il ne sera pas transféré sur un nouveau noeud mais devra être supprimé et recréé sur le nouveau noeud. Signifiant alors que toutes les données se trouvant dans le volume étant sur l'ancien noeud devra être supprimé, perdant alors toutes les datas contenues dedans.

C'est vraiment pour ça qu'il faut bien être conscient de ce qu'est un volume emptyDir. Si vous l'utilisez pour stocker le contenu d'une base de données, à la première mise à jour du cluster, vous aurez un problème.

On peut donc en conclure que l'erreur cannot delete Pod with local storage n'est pas réellement une erreur, mais une sorte de "boîte de confirmation" qui va vous prévenir de la présence des volumes locaux avant qu'ils ne soient supprimés.


J'espère que ça vous sera utile! 🍺Lors de mises à jour de cluster ou le retrait d'un noeud, il se peut que l'on tombe sur l'erreur "**cannot delete Pods with local storage".

$ kubectl drain node-1 --ignore-daemonsets
...
error: cannot delete Pods with local storage (use --delete-emptydir-data to override):
Enter fullscreen mode Exit fullscreen mode

La solution est simple et est notée dans le log d'erreur. Il suffit d'ajouter l'option --delete-emptydir-data à votre commande pour que ça fonctionne.

Mais qu'est-ce que cette erreur signifie réellement?


Explication de l'erreur

Cette erreur veut vous signaler que parmis les pods que vous avez sur le noeud que vous souhaitez vider, il y a des pods qui utilisent du stockage local (local storage) comme emptyDir.

apiVersion: v1
kind: Pod
metadata:
  name: my-pod
spec:
  containers:
  - image: busybox
    name: busybox
    volumeMounts:
    - mountPath: /data
      name: my-volume
  volumes:
  - name: my-volume
    emptyDir: {}
Enter fullscreen mode Exit fullscreen mode

Utiliser un volume emptyDir est quelque chose qui doit être réfléchie et bien comprise pour éviter de tomber dans cette situation.

En effet un volume emptyDir n'existe que sur le noeud sur lequel se trouve le pod auquel il est rattaché. Contrairement au pod, il ne sera pas transféré sur un nouveau noeud mais devra être supprimé et recréé sur le nouveau noeud. Signifiant alors que toutes les données se trouvant dans le volume étant sur l'ancien noeud devra être supprimé, perdant alors toutes les datas contenues dedans.

C'est vraiment pour ça qu'il faut bien être conscient de ce qu'est un volume emptyDir. Si vous l'utilisez pour stocker le contenu d'une base de données, à la première mise à jour du cluster, vous aurez un problème.

On peut donc en conclure que l'erreur cannot delete Pod with local storage n'est pas réellement une erreur, mais une sorte de "boîte de confirmation" qui va vous prévenir de la présence des volumes locaux avant qu'ils ne soient supprimés.


J'espère que ça vous sera utile! 🍺


Vous voulez me supporter?

Buy Me A Coffee

💖 💪 🙅 🚩
mxglt
Maxime Guilbert

Posted on April 3, 2023

Join Our Newsletter. No Spam, Only the good stuff.

Sign up to receive the latest update from our blog.

Related