2016-01-18 12 views
8

私は複数のボリュームと1つのクレームを持っています。どのボリュームにバインドするのか、どのように主張するのですか?kubernetes PersistentVolumeClaimを制御して特定のPersistentVolumeにバインドするにはどうすればよいですか?

PersistentVolumeClaimは、どのボリュームをバインドするかをどのように知っていますか?他のパラメータやメタデータを使用してこれを制御できますか?

私は次のよう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" 
     } 
    } 
} 

私が使用して主張してボリュームを作成する場合:

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 

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

を、私は、ボリュームおよび特許請求の範囲の次のリストを取得します

クレームはどのボリュームをバインドするかをどのように知っていますか?

答えて

6

現在の実装では、PersistentVolumeClaimが特定のPersistentVolumesを対象とすることができません。クレームは、その機能(アクセスモード)と容量に基づいてボリュームにバインドされます。

作品では、次の反復であるPersistentVolumesがあります。これには、主張にPersistentVolumeSelectorが含まれています。これは、PodのNodeSelectorとまったく同じように動作します。バインドするには、ボリュームをラベルセレクタに一致させる必要があります。これはあなたが探しているターゲットです。

PersistentVolumeSelectorを含む提案については、https://github.com/kubernetes/kubernetes/pull/17056を参照してください。

+0

素晴らしいサウンドです! –

+0

@GabrielPetrovayまだPVをお持ちでない場合は、PVのために行われた重要な作業を確認してください。あなたが望むことをするための双方向の "事前バインディング"はありません。 –

+3

PVCを特定のPVにバインドするには、v1.3以上でサポートされている必要があります。 http://stackoverflow.com/a/34323691/5443528を参照してください。 –

関連する問題