Je veux configurer un PVC sur AWS, où j'ai besoin de ReadWriteMany
comme mode d'accès. Malheureusement, EBS ne prend en charge que ReadWriteOnce
.
Comment pourrais-je résoudre ce problème?
ReadWriteMany
, mais comme dit, il s'agit toujours de la version bêta, et son installation semble quelque peu floconneuse.ReadWriteOnce
, mais cela limite l'évolutivité.Existe-t-il d'autres moyens de résoudre ce problème? Fondamentalement, j'ai besoin d'un moyen de stocker des données de manière persistante pour les partager entre des pods indépendants les uns des autres.
Le provisionneur EFS peut être bêta, mais EFS lui-même ne l'est pas. Étant donné que les volumes EFS peuvent être montés via NFS, vous pouvez simplement créer un PersistentVolume
avec une source de volume NFS manuellement - en supposant que l'approvisionnement automatique n'est pas une exigence difficile de votre côté:
apiVersion: v1
kind: PersistentVolume
metadata:
name: my-efs-volume
spec:
capacity:
storage: 100Gi # Doesn't really matter, as EFS does not enforce it anyway
volumeMode: Filesystem
accessModes:
- ReadWriteMany
mountOptions:
- hard
- nfsvers=4.1
- rsize=1048576
- wsize=1048576
- timeo=600
- retrans=2
nfs:
path: /
server: fs-XXXXXXXX.efs.eu-central-1.amazonaws.com
Vous pouvez ensuite réclamer ce volume à l'aide d'un PersistentVolumeClaim
et l'utiliser comme d'habitude dans un pod (ou plusieurs pods).
Si l'approvisionnement automatique est une exigence difficile pour vous, vous pouvez envisager d'autres solutions: il existe plusieurs systèmes de fichiers distribués que vous pouvez déployer sur votre cluster qui offrent un stockage ReadWriteMany
au-dessus de Kubernetes et/ou AWS. Par exemple, vous pouvez jeter un œil à Rook (qui est essentiellement un opérateur Kubernetes pour Ceph). Il est également officiellement encore en phase de pré-sortie, mais j'ai déjà travaillé un peu avec et il fonctionne assez bien. Il y a aussi opérateur GlusterFS , qui semble déjà avoir quelques versions stables.
Comme vous mentionnez le volume EBS avec affinity
& node selector
arrêtera l'évolutivité mais avec EBS seul ReadWriteOnce
fonctionnera.
Si je partage mon expérience, si vous effectuez de nombreuses opérations sur le système de fichiers et que vous poussez et récupérez fréquemment des fichiers, cela peut être lent avec EFS
, ce qui peut dégrader les performances des applications. le taux de fonctionnement sur EFS est lent.
Cependant, vous pouvez utiliser GlusterFs
à l'arrière, il provisionnera le volume EBS. GlusterFS
prend également en charge ReadWriteMany
et ce sera plus rapide par rapport à EFS
car il s'agit du stockage en bloc (SSD).