Statefulset pod 使用的存储空间多于 volumeClaimTemplates 中定义的存储空间

Statefulset pod is using more storage than defined in the volumeClaimTemplates

我在 microk8s 上创建了以下 statfulset:

apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: postgresql13
spec:
  selector:
    matchLabels:
      app: postgresql13
  serviceName: postgresql13
  replicas: 1
  template:
    metadata:
      labels:
        app: postgresql13
    spec:
      containers:
        - name: postgresql13
          image: postgres:13
          imagePullPolicy: Always
          ports:
            - containerPort: 5432
              name: sql-tcp
          volumeMounts:
            - name: postgresql13
              mountPath: /data
          env:
            - name: POSTGRES_PASSWORD
              value: testpassword
            - name: PGDATA
              value: /data/pgdata
  volumeClaimTemplates:
    - metadata:
        name: postgresql13
      spec:
        storageClassName: "microk8s-hostpath"
        accessModes: ["ReadWriteOnce"]
        resources:
          requests:
            storage: 1Ki

volumeClaimTemplates 中我只给了它 1Ki(这是 1 KB 对吧?) 但是数据库正常启动,当我在 pod 上 运行 kubectl exec postgresql13-0 -- df -h 时,我得到了这个

Filesystem                         Size  Used Avail Use% Mounted on
overlay                             73G   11G   59G  15% /
tmpfs                               64M     0   64M   0% /dev
/dev/mapper/ubuntu--vg-ubuntu--lv   73G   11G   59G  15% /data
shm                                 64M   16K   64M   1% /dev/shm
tmpfs                              7.7G   12K  7.7G   1% /run/secrets/kubernetes.io/serviceaccount
tmpfs                              3.9G     0  3.9G   0% /proc/acpi
tmpfs                              3.9G     0  3.9G   0% /proc/scsi
tmpfs                              3.9G     0  3.9G   0% /sys/firmware

难道不应该使用超过 PVC 的数量吗? 我特意坐了仓库classAllowVolumeExpansion: False

我在这里错过了什么?

allowVolumeExpansion 并且存储大小不适用于 hostPath。实际大小将是主机路径所在的主机卷大小。

Isn't is supposed to not use more than what the PVC have?

这是误会。您在 资源请求 中指定的是您的应用程序 至少需要 的资源。你可能会得到更多。您通常使用 资源限制 来设置硬限制。