Kubernetes PV/PVC容量

4

我有一个由3个节点组成的coros kubernetes集群,已经运行正常。

我希望从独立的NFS服务器使用持久卷(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 已发布 default/pvc2-1

kubecfg get pvc

pvc2-1 <none> 已绑定 kube1 9500M RWX

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

敬礼

cdpb

2个回答

7
据我所见,这应该是它应该工作的方式。索赔涉及整个卷。起初让我困惑的部分是,resources.requests.storage值仅是索赔所需的最小值。我在使用Ceph时,当Pod绑定到块设备时,它们会占用整个卷。

2
那么为什么 PVC 要使用 PV 的全部容量呢?我原以为 PVC 只是 PV 的一部分,否则它就没什么用了。
它并不是没用,而是设计用来声明持久卷的。`requests` 参数表示“我至少需要这么多存储空间”,就像为 Pod 请求计算资源一样。
如果有多个持久卷,这就更清晰了:PVC 不会获得小于 1G 的 PV,但会获得这个 9.5G 的 PV(或另一个足够大的 PV)。
如果您想动态地配置特定大小的存储空间,应该创建一个 StorageClass,并支持 支持它的卷。如果想使用 NFS,则内置插件不支持,但 kubernetes-incubator 中有一个插件可以支持。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接