2016-01-18 10 views
8

Ho più volumi e un reclamo. Come posso dire il reclamo a quale volume associare?Come controllo un kubernetes PersistentVolumeClaim per collegarsi a un PersistentVolume specifico?

In che modo a PersistentVolumeClaim sa a quale volume eseguire il binding? Posso controllarlo usando altri parametri o metadati?

Ho il seguente PersistentVolumeClaim:

{                             
    "apiVersion": "v1",                       
    "kind": "PersistentVolumeClaim",                    
    "metadata": {                         
     "name": "default-drive-claim"                    
    },                            
    "spec": {                          
     "accessModes": [                       
      "ReadWriteOnce"                      
     ],                           
     "resources": {                        
      "requests": {                       
       "storage": "10Gi"                     
      }                          
     }                           
    }                            
} 

{                             
    "apiVersion": "v1",                       
    "kind": "PersistentVolume", 
    "metadata": {                         
     "name": "default-drive-disk",                    
     "labels": {                        
      "name": "default-drive-disk"                   
     } 
    },  
    "spec": {                          
     "capacity": { 
      "storage": "10Gi"                      
     },  
     "accessModes": [                       
      "ReadWriteOnce"                      
     ],                           
     "gcePersistentDisk": {                      
      "pdName": "a1-drive", 
      "fsType": "ext4" 
     } 
    } 
} 

Se creo il credito e il volume utilizzando:

kubectl create -f pvc.json -f pv.json 

ottengo una lista dei volumi e reclami:

NAME     LABELS     CAPACITY ACCESSMODES STATUS CLAIM       REASON AGE 
default-drive-disk name=default-drive-disk 10Gi  RWO   Bound  default/default-drive-claim    2s 
NAME     LABELS STATUS VOLUME    CAPACITY ACCESSMODES AGE 
default-drive-claim <none> Bound  default-drive-disk 10Gi  RWO   2s 

In che modo la richiesta sa a quale volume legare?

risposta

6

L'implementazione corrente non consente a PersistentVolumeClaim di scegliere come target PersistentVolumes specifici. Le richieste si legano ai volumi in base alle sue capacità (modalità di accesso) e capacità.

In the works è la successiva iterazione di PersistentVolumes, che include PersistentVolumeSelector sul claim. Funzionerebbe esattamente come funziona NodeSelector su Pod. Il volume dovrebbe corrispondere al selettore dell'etichetta per legarsi. Questo è il targeting che stai cercando.

Vedere https://github.com/kubernetes/kubernetes/pull/17056 per la proposta contenente PersistentVolumeSelector.

+0

Suoni fantastici! –

+0

@GabrielPetrovay Se non l'hai già fatto, dovresti dare un'occhiata al significativo lavoro svolto per i PV. Non esiste un "pre-binding" bidirezionale che dovrebbe fare ciò che vuoi. –

+3

Il binding di un PVC a un PV specifico è supportato almeno dalla v1.3. Vedi http://stackoverflow.com/a/34323691/5443528 –

Problemi correlati