我有多个卷和一个声明。如何判断要绑定到哪个卷的声明?
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
声明如何知道要绑定哪个卷?
答案 0 :(得分:6)
当前的实现不允许您的PersistentVolumeClaim以特定的PersistentVolumes为目标。声明根据其功能(访问模式)和容量绑定到卷。
在工程中是PersistentVolumes的下一次迭代,其中包括声明中的PersistentVolumeSelector。这可以像Pod上的NodeSelector一样工作。卷必须与标签选择器匹配才能绑定。这是您正在寻找的定位。
有关包含PersistentVolumeSelector的提案,请参阅https://github.com/kubernetes/kubernetes/pull/17056。