2 votes

Kubernetes ne copie pas les données dans le volume monté

Selon la documentation ici : https://docs.docker.com/storage/volumes/

Si vous démarrez un conteneur qui crée un nouveau volume, comme ci-dessus, et que le conteneur possède des fichiers ou des répertoires dans le répertoire à monter (comme /app/ ci-dessus), le contenu du répertoire est copié dans le volume. Le conteneur monte ensuite le volume et l'utilise, et les autres conteneurs qui utilisent le volume ont également accès au contenu pré-rempli.

En d'autres termes, l'attente est que, si j'ai des fichiers comme celui-ci dans /var/lib/mysql

root@d8fa9a8b305a:/var/lib/mysql# ls
auto.cnf         xtz           ib_logfile0  ibdata1  mysql               sys
debian-5.7.flag  ib_buffer_pool  ib_logfile1  ibtmp1   performance_schema

Ensuite, lorsque je monte un volume dans /var/lib/mysql alors tous les fichiers du conteneur devraient être copiés dans mon volume.

Mais je constate que ce n'est pas le cas :

/var/lib/mysql/mysql # ls
auto.cnf        ib_buffer_pool  ib_logfile0     ib_logfile1     ibdata1

C'est le contenu du volume que j'ai monté dans /var/lib/mysql, et comme vous pouvez le voir les données ne sont pas les mêmes que celles présentes dans /var/lib/mysql de l'image docker elle-même. Donc, en conséquence, il y a un échec au démarrage.

Nota : Le volume en question est effectivement monté par kubernetes. Donc, je fais une supposition majeure ici que

volumeMounts:
        - name: xtz-persistent-storage
          mountPath: "/var/lib/mysql/"

est l'équivalent de faire ceci : docker run -p 443:443 --rm -v mysql:/var/lib/mysql <image>

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X