Kubernetes hostPath PersistentVolume和spec.capacity.storage属性

Kubernetes hostPath PersistentVolume和spec.capacity.storage属性,kubernetes,persistent-volumes,Kubernetes,Persistent Volumes,我在虚拟机中运行单个主/节点Kubernetes,使用hostPath作为已部署Postgres数据库的持久卷 MyPersistentVolume具有以下配置: apiVersion: v1 kind: PersistentVolume metadata: annotations: volume.beta.kubernetes.io/storage-class: postgres labels: type: local name: postgres-storage

我在虚拟机中运行单个主/节点Kubernetes,使用
hostPath
作为已部署Postgres数据库的持久卷

My
PersistentVolume
具有以下配置:

apiVersion: v1
kind: PersistentVolume
metadata:
  annotations:
    volume.beta.kubernetes.io/storage-class: postgres
  labels:
    type: local
  name: postgres-storage
spec:
  accessModes:
  - ReadWriteOnce
  capacity:
    storage: 1Gi
  hostPath:
    path: /data/postgres
另外,我有一个
PersistentVolumeClaim
当前绑定到该卷,请求所有容量(
spec.resources.requests.storage:1Gi

最近,Postgres数据库的大小超过了
spec.capacity.storage
,但没有造成任何问题:

$ du -hs /data/postgres # Powers of 1024
1.2G    /data/postgres 

$ du -hs /data/postgres --si # Powers of 1000
1.3G    /data/postgres 
我的问题是:

  • 使用
    主机路径
    卷,或者该卷实际上由底层分区占用 尺寸
  • 当卷使用量超过其
    容量时会发生什么情况?(即Kubernetes将如何处理)

根据Kubernetes GitHub页面上的@wongma7:

这正按预期工作,kube不能/不会强制执行 PVs上的容量字段只是一个标签。这取决于 “管理者”,即PV的创建者,以便准确标记PV 当用户创建需要>=xgi的pvc时,他们得到了他们想要的 需要

你可以找到原始的讨论

此外,官方文件中还包括:

对于
emptyDir
hostPath
卷可以占用的空间没有限制 消耗
,容器之间或豆荚之间无隔离

在未来,我们预计emptyDir和hostPath卷将 能够使用资源请求一定数量的空间 规范,并为群集选择要使用的媒体类型 有多种媒体类型


哦,我明白了……在进一步调查之后,我甚至发现了
主机路径
卷中的
容量
注意事项。我冒昧地编辑了您的答案以添加此信息。