
我能够实现上述情况,您需要在pv中使用“ claimRef”来绑定PVC。请看看下面的pv json和statefulset json
PV-0.json
{ "kind": "PersistentVolume", "apiVersion": "v1", "metadata": { "name": "pv-data-vol-0", "labels": { "type": "local" } }, "spec": { "capacity": { "storage": "10Gi" }, "accessModes": [ "ReadWriteOnce" ], "storageClassName": "local-storage", "local": { "path": "/prafull/data/pv-0" }, "claimRef": { "namespace": "default", "name": "data-test-sf-0" }, "nodeAffinity": { "required": { "nodeSelectorTerms": [ { "matchexpressions": [ { "key": "kubernetes.io/hostname", "operator": "In", "values": [ "ip-10-0-1-46.ec2.internal" ] } ] } ] } } }}PV-1.json
{ "kind": "PersistentVolume", "apiVersion": "v1", "metadata": { "name": "pv-data-vol-1", "labels": { "type": "local" } }, "spec": { "capacity": { "storage": "10Gi" }, "accessModes": [ "ReadWriteOnce" ], "storageClassName": "local-storage", "local": { "path": "/prafull/data/pv-1" }, "claimRef": { "namespace": "default", "name": "data-test-sf-1" }, "nodeAffinity": { "required": { "nodeSelectorTerms": [ { "matchexpressions": [ { "key": "kubernetes.io/hostname", "operator": "In", "values": [ "ip-10-0-1-46.ec2.internal" ] } ] } ] } } }}Statefulset.json
{ "kind": "StatefulSet", "apiVersion": "apps/v1beta1", "metadata": { "name": "test-sf", "labels": { "state": "test-sf" } }, "spec": { "replicas": 2, "template": { "metadata": { "labels": { "app": "test-sf" }, "annotations": { "pod.alpha.kubernetes.io/initialized": "true" } } ... ... }, "volumeClaimTemplates": [ { "metadata": { "name": "data" }, "spec": { "accessModes": [ "ReadWriteOnce" ], "storageClassName": "local-storage", "resources": { "requests": { "storage": "10Gi" } } } } ] }}将创建两个Pod,分别创建test-sf-0和test-sf-1,依次创建两个PVC数据-test-sf-0和data-test-
sf-1,它们将绑定到PV-0和Pv-1。因此,test-sf-0将写入PV-0中指定的位置,而test-
sf-1将写入PV-1中指定的位置。希望这可以帮助。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)