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?
这是误会。您在 资源请求 中指定的是您的应用程序 至少需要 的资源。你可能会得到更多。您通常使用 资源限制 来设置硬限制。
我在 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?
这是误会。您在 资源请求 中指定的是您的应用程序 至少需要 的资源。你可能会得到更多。您通常使用 资源限制 来设置硬限制。