J'ai un exécuteur de test Pod
dans le cluster K8s créé via helm, qui demande un PersistentVolume
créé dynamiquement où il stocke les résultats du test.
J'aimerais maintenant obtenir le contenu de ce volume. Cela semble tout à fait naturel. Je m'attendrais à quelque kubectl download pv <id>
. Mais je ne peux rien chercher sur Google.
Comment puis-je obtenir le contenu d'un PersistentVolume
?
Je suis dans AWS EKS; l'API AWS est donc également une option. Je peux également accéder à ECR, alors je pourrais peut-être le stocker sous forme d'image et le télécharger?
Ou, en général, je cherche un moyen de transférer un répertoire, peut-être même dans une archive. Mais Cela devrait être après le conteneur a terminé et ne fonctionne plus.
Je peux penser à deux options pour répondre à vos besoins:
1) créez un module auquel le PV est attaché et utilisez kubectl cp
pour copier le contenu où vous en avez besoin. Vous pouvez par exemple utiliser un PodSpec
similaire au suivant:
apiVersion: v1
kind: Pod
metadata:
name: dataaccess
spec:
containers:
- name: Alpine
image: Alpine:latest
command:
- sleep
- 999999
volumeMounts:
- name: mypvc
mountPath: /data
volumes:
- name: mypvc
persistentVolumeClaim:
claimName: mypvc
Veuillez noter que mypvc doit être le nom du PersistentVolumeClaim
lié au PV à partir duquel vous souhaitez copier les données.
Une fois le pod en cours d'exécution, vous pouvez exécuter quelque chose comme ceci pour copier les données à partir de n'importe quelle machine sur laquelle kubectl est configuré pour se connecter à votre cluster:
kubectl cp dataaccess:/data data/
2) montez le volume EBS du PV dans une instance EC2 et copiez les données à partir de là. Ce cas est moins simple à expliquer en détail car il a besoin d'un peu plus de contexte sur ce que vous essayez de réaliser.