【问题标题】:How do I control a kubernetes PersistentVolumeClaim to bind to a specific PersistentVolume?如何控制 kubernetes PersistentVolumeClaim 绑定到特定的 PersistentVolume?
【发布时间】:2016-04-23 15:39:13
【问题描述】:

我有多个卷和一个声明。如何判断声明要绑定到哪个卷?

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"
        }
    }
}

如果我使用以下方式创建声明和卷:

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

我得到以下卷和声明的列表:

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

声明如何知道要绑定到哪个卷?

【问题讨论】:

    标签: kubernetes persistent-storage


    【解决方案1】:

    当前的实现不允许您的 PersistentVolumeClaim 以特定的 PersistentVolume 为目标。声明根据卷的功能(访问模式)和容量绑定到卷。

    正在进行中的是 PersistentVolumes 的下一个迭代,其中包括声明中的 PersistentVolumeSelector。这与 Pod 上的 NodeSelector 完全一样。卷必须匹配标签选择器才能绑定。这是您正在寻找的目标。

    有关包含 PersistentVolumeSelector 的提案,请参阅 https://github.com/kubernetes/kubernetes/pull/17056

    【讨论】:

    • @GabrielPetrovay 如果您还没有,您应该查看为 PV 所做的重要工作。没有应该做你想做的双向“预绑定”。
    • 至少从 v1.3 开始支持将 PVC 绑定到特定 PV。见stackoverflow.com/a/34323691/5443528
    猜你喜欢
    • 2017-01-04
    • 1970-01-01
    • 2019-05-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-07
    • 1970-01-01
    • 2018-12-06
    相关资源
    最近更新 更多