我正在使用hostPath
作为已部署的Postgres数据库的持久卷,在虚拟机中运行单个主/节点Kubernetes。
我的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
我的问题是:
hostPath
时spec.capacity.storage
确实很重要
卷,或者该卷实际上受基础分区的限制
大小?capacity
时会发生什么? (即Kubernetes将如何处理此问题)答案 0 :(得分:1)
根据Kubernetes GitHub页面上的@ wongma7:
这按预期工作,kube无法/不会强制执行 PV,PV上的容量字段只是一个标签。取决于 “管理员”(即PV的创建者)对其进行准确标记 当用户创建需要> = X Gi的PVC时,他们得到的是 想要。
您可以找到原始讨论here。
此外,官方Volume/Resources文档中也介绍了该内容:
emptyDir
或hostPath
卷可以容纳多少空间没有限制 ,并且容器之间或容器之间没有隔离。将来,我们预计emptyDir和hostPath卷将是 能够使用资源请求一定数量的空间 规范,并选择要用于集群的媒体类型 有几种媒体类型。