我有一个3节点coros kubernetes群集正在运行。
我想从独立的NFS服务器使用persitentvolumes(pv)。
nfs.yaml
apiVersion: v1
kind: PersistentVolume
metadata:
name: kube1
spec:
capacity:
storage: 9.5G
accessModes:
- ReadWriteMany
nfs:
path: /mnt/nfs/kube1
server: 10.3.0.3
claim.yaml
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: pvc2-1
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: 1G
kubecfg get pv
kube1 <none> 9500M RWX Released default/pvc2-1
kubecfg get pvc
pvc2-1 <none> Bound kube1 9500M RWX
那么为什么用pv的全部容量创建pvc?我认为pvc只是pv的一部分,否则它就没用了。
此致
cdpb
答案 0 :(得分:3)
据我所见,这应该是它的工作方式。索赔是针对整个卷。最初让我困惑的部分是resources.requests.storage值,它只是声明所需的最小值。我在Ceph中使用它,当Pods绑定到块设备时,它们占据整个卷。
答案 1 :(得分:0)
那为什么要用全部容量的pv创建pvc?我以为pvc只是pv的一部分,否则就没用了。
这不是没有用,它旨在声明持久卷。 requests
说,“我至少需要这么多的存储空间”,就像用于Pod的计算一样。
如果您有多个持久卷,这会更清楚:pvc不会获得<1G的pv,但是会获得9.5G pv(或另一个足够大的pv)。
如果要动态设置特定的存储大小,则应创建一个由a volume that supports it支持的存储类。如果要使用NFS,则不需要树内插件,但是可以使用one in kubernetes-incubator。