当前位置:  开发笔记 > 运维 > 正文

PVC可以绑定到特定的PV吗?

如何解决《PVC可以绑定到特定的PV吗?》经验,为你挑选了2个好方法。

k8s维护者在https://github.com/kubernetes/kubernetes/issues/7438#issuecomment-97148195中对此进行了讨论:

允许用户询问特定PV会破坏它们之间的分离

我不买.我们允许用户选择一个节点.这不是常见的情况,但它存在是有原因的.

它是怎么结束的?什么是> 1 PV和PVC的预期方式,如https://github.com/kubernetes/kubernetes/tree/master/examples/nfs中的那个?

我们使用NFS,而PersistentVolume是一个方便的抽象,因为我们可以保留serverIP和path那里.但PersistentVolumeClaim得到任何具有足够的规模PV,防止path重复使用.

可以设置volumeName在PVC spec块中(参见https://github.com/kubernetes/kubernetes/pull/7529),但没有区别.



1> Saad Ali..:

今天有一种方法可以将PV预先绑定到PVC,这里有一个示例显示如何:

1)使用ClaimRef字段创建一个PV对象,该字段引用随后将创建的PVC:

$ kubectl create -f pv.yaml
persistentvolume "pv0003" created

其中pv.yaml包括:

apiVersion: v1
kind: PersistentVolume
metadata:
  name: pv0003
spec:
  capacity:
    storage: 5Gi
  accessModes:
    - ReadWriteOnce
  persistentVolumeReclaimPolicy: Recycle
  claimRef:
    namespace: default
    name: myclaim
  nfs:
    path: /tmp
    server: 172.17.0.2

2)然后创建具有相同名称的PVC:

kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: myclaim
spec:
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 5Gi

3)PV和PVC应立即绑定:

$ kubectl get pvc
NAME      STATUS    VOLUME    CAPACITY   ACCESSMODES   AGE
myclaim   Bound     pv0003    5Gi        RWO           4s
$ ./cluster/kubectl.sh get pv
NAME      CAPACITY   ACCESSMODES   STATUS    CLAIM             REASON    AGE
pv0003    5Gi        RWO           Bound     default/myclaim             57s

我们还计划引入"卷选择器",这将使用户能够根据某些特定于实现的特性(特定机架,例如,或在您的情况下,强制执行1:1 PV到PVC映射的方式)选择特定存储.

请参阅https://github.com/kubernetes/kubernetes/issues/18333.



2> 小智..:

可以使用关键字volumeName来完成:

例如

apiVersion: "v1"
kind: "PersistentVolumeClaim"
metadata:
  name: "claimapp80"
spec:
  accessModes:
    - "ReadWriteOnce"
  resources:
    requests:
      storage: "10Gi"
  volumeName: "app080"

将要求特定PV app080

推荐阅读
路人甲
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有