kubernetes pv / pvc容量

kubernetes pv / pvc capacity

我有一个 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

那么为什么创建的pvc是pv的全容量呢?因为我假设pvc只是pv的一部分,否则就没什么用了。

此致

cdpb

据我所知,它应该是这样工作的。索赔针对整卷。一开始也让我感到困惑的部分是 resources.requests.storage 值只是声明要求的最小值。我将它与 Ceph 一起使用,当 Pods 绑定到块设备时,它们占用了整个卷。

So why is the pvc created with the full capacity of pv? As I assumed that pvc is just a part of pv, otherwise it's pretty useless.

它不是没用,它旨在声明 永久卷。 requests 表示 'I need at least this much storage',就像 pods.

的计算一样

如果你有多个持久卷,这就更清楚了:pvc 不会得到 <1G 的 pv,但会得到这个 9.5G pv(或另一个足够大的 pv)。

如果您想动态配置特定的存储大小,您应该创建一个存储 Class,由 a volume that supports it. If you want to use NFS, the in-tree plugin doesn't, but there is one in kubernetes-incubator 提供支持。