场景
我有一个PersistentVolume,volumeMode作为Block。它的定义是:
apiVersion: v1
kind: PersistentVolume
metadata:
name: block-vol
spec:
accessModes:
- ReadWriteOnce
capacity:
storage: 1Gi
local:
path: /dev/sdb # this path on the host specified below is used as a device mount
nodeAffinity:
required:
nodeSelectorTerms:
- matchExpressions:
- key: kubernetes.io/hostname
operator: In
values:
- <my-host>
persistentVolumeReclaimPolicy: Retain
storageClassName: block-storage
volumeMode: Block当我用一个statefulset将它挂载到一个VolumeClaimTemplate上时,我将它指定为storage字段为1Gi。但是,当执行人员进入部署的吊舱时,我看到块大小比1Gi大(这是物理机器上该设备的实际大小)。
StatefulSet YAML:
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: nginx
spec:
selector:
matchLabels:
app: nginx
serviceName: "nginx"
replicas: 1
template:
metadata:
labels:
app: nginx
spec:
terminationGracePeriodSeconds: 10
containers:
- name: nginx
image: k8s.gcr.io/nginx-slim:0.8
ports:
- containerPort: 80
name: web
volumeDevices:
- name: rawdev0
devicePath: /dev/kdb0
volumeClaimTemplates:
- metadata:
name: rawdev0
spec:
accessModes: [ "ReadWriteOnce" ]
storageClassName: block-storage
volumeMode: Block
resources:
requests:
storage: 1Gi我使用blockdev来查找块的大小(以字节为单位):
root@nginx-0:/# ls -lhrt /dev/kdb0
brw-rw----. 1 root disk 8, 16 Jan 13 19:49 /dev/kdb0
root@nginx-0:/# blockdev --getsize64 /dev/kdb0
536870912000 #size of block in bytes问题
在这种情况下,storage字段意味着什么?
发布于 2021-01-13 20:29:24
Kubernetes不能对本地卷的存储大小做很多事情。创建PersistentVolume的管理员必须设置适当的大小,对于粒度大小,他/她可能应该创建自己的分区,而不是将本地卷映射到目录。
PersistentVolumeClaim中的存储大小是一个请求,因此应用程序至少可以获得该大小的卷。
https://stackoverflow.com/questions/65709110
复制相似问题