2017-09-08 6 views
4

Je le volume persistant et le volume suivant la revendication:Comment configurer une revendication de volume persistante à l'aide d'AWS EFS et ReadWriteMany?

kind: PersistentVolume 
apiVersion: v1 
metadata: 
    name: kloud 
spec: 
    capacity: 
    storage: 100Gi 
    accessModes: 
    - ReadWriteMany 
    persistentVolumeReclaimPolicy: Retain 
    nfs: 
    server: 172.21.51.42 
    path:/
    readOnly: false 

et:

kind: PersistentVolumeClaim 
apiVersion: v1 
metadata: 
    name: kloud 
spec: 
    accessModes: 
    - ReadWriteMany 
    resources: 
    requests: 
     storage: 100Gi 

Le serveur nfs est AWS EFS. J'ai spécifiquement ssh à k8s master et vérifié que je peux monter manuellement le volume NFS. Mais quand je crée le volume et la demande avec kubectl il est suspendu indéfiniment en attendant il:

$ kubectl get pvc 
NAME  STATUS VOLUME CAPACITY ACCESSMODES STORAGECLASS AGE 
kloud  Pending          gp2   8s 

Si je change le mode ReadWriteOnce, cela fonctionne comme prévu et ne se bloque pas.

$ kubectl get pvc 
NAME  STATUS VOLUME          CAPACITY ACCESSMODES STORAGECLASS AGE 
kloud  Bound  pvc-c9a01bff-94d0-11e7-8ed4-0aec4a0f734a 100Gi  RWO   gp2  

Y at-il quelque chose qui me manque? Comment puis-je créer une revendication RWX avec k8s et EFS?

Répondre

4

Vous devez configurer le provisionneur EFS dans votre cluster. Montage EFS est toujours pas pris en charge par la distribution par défaut Kubernetes et en tant que tel vous avez besoin de cette extension: https://github.com/kubernetes-incubator/external-storage/tree/master/aws/efs

Vous aurez besoin de mettre en place c'est la classe de stockage:

kind: StorageClass 
apiVersion: storage.k8s.io/v1beta1 
metadata: 
    name: aws-efs 
provisioner: example.com/aws-efs 

Et puis écrire extrasystoles ventriculaires du type:

kind: PersistentVolumeClaim 
apiVersion: v1 
metadata: 
    name: efs 
    annotations: 
    volume.beta.kubernetes.io/storage-class: "aws-efs" 
spec: 
    accessModes: 
    - ReadWriteMany 
    resources: 
    requests: 
     storage: 1Mi 

ne pas l'esprit la taille de stockage, bien qu'il soit pas utilisé par EFS, Kubernetes vous oblige à y mettre quelque chose pour que cela fonctionne.

+0

dois-je remplacer 'example.com' avec mon nom d'hôte maître? e.s. 'k8s-master.mondomaine.cloud'? à quoi ça sert? – Oz123

+0

Il peut être ce que vous voulez, c'est juste pour que vous ayez quelque chose à référencer quand vous voulez utiliser cette classe de stockage. – vascop