文章目录
简介
存储卷是定义在Pod之上的可被其内部所有容器挂载是使用的共享目录,该目录实际上是宿主机或外部存储设备之上的存储空间,可以被Pod内的多个容器挂载使用。存储卷独立与Pod的生命周期,因此它存储的数据可以在容器重启或重建后继续使用。
目前k8s支持的存储卷可以大致分为一下几类,它们各自有着不同的实现插件:
- 临时存储卷:emptyDir
- 本地存储卷:hostPath
- 网络存储卷:nfs、cinder、rbd、iscsi等
- 特殊存储卷:configmap、secret
- 扩展支持第三方存储的存储接口:CSI
通常k8s内置的存储卷插件可以归类为In-Tree类型,它们通k8s源码一起发布迭代,而由存储厂商借助CSI接口扩展的独立于k8s源码的插件统称为Out-of-Tree类型,集群管理员可以根据需要创建自定义的扩展插件,CSI是比较常用的实现方式。目前k8s已经开始逐步将In-Tree类型的存储卷插件迁移到CSI,所以建议在新环境中使用CSI。
emptyDir存储卷
emptyDir存储卷可以看作是Pod上的一个临时目录,其生命周期和Pod相同,Pod创建时被创建,Pod删除时被删除,通常用于数据缓存和临时存储。
emptyDir存储卷定义在Pod资源的spec.volumes.emptyDir字段,可嵌套使用的字段有两个:
- medium:用于指定emptyDir存储卷使用的存储介质,可用值为default和Memory,默认是default表示使用节点的默认存储介质(磁盘);Memory表示使用基于内存的临时文件系统tmpfs,可用空间受限于内存,但性能很好,一般用于缓存
- sizeLimit :当前存储卷的空间限额,默认为nil,不限制
apiVersion: apps/v1
kind: Deployment
metadata:
name: volume-emptydir-demo
spec:
replicas: 1
selector:
matchLabels:
app: volume-emptydir-demo
template:
metadata:
labels:
app: volume-emptydir-demo
spec:
containers:
- name: nginx
image: nginx
imagePullPolicy: IfNotPresent
ports:
- name: http
containerPort: 80
volumeMounts:
- name: cache-volume
mountPath: /cache
volumes:
- name: cache-volume
emptyDir:
medium: Memory
sizeLimit: 128Mi
进入Pod验证

emptyDir其实就是node节点上的一个目录,它存放在 /var/lib/kubelet/pods/<pod-id>/volumes/kubernetes.io~empty-dir/ 下

hostPath存储卷
hostPath是将工作节点上的目录或文件关联到Pod上的一种卷类型,类似于Docker的bind mount,hostPath卷的生命周期和工作节点相同。hostPath存储卷在Pod需要访问节点上的文件时很有用。
hostPath存储卷定义在Pod资源的spec.volumes.hostPathz字段,可嵌套使用的字段有两个:
- path <string>:用于指定工作节点上的目录路径
- type <string>:用于指定工作节点之上的存储类型
关于type字段,目前支持的值有下面这些:
- DirectoryOrCreate:指定的目录不存在时,自动将其创建为0755权限的空目录,属主和属组都为kubelet
- Directory:事先必须存在的目录
- FileOrCreate:指定的不存在时,自动将其创建为0644权限的空文件,属主和属组都为kubelet
- File:事先必须存在的文件
- Socket:事先必须存在的Socket文件
- CharDevice:事先必须存在的字符设备路径
- BlockDevice:事先必须存在的文件设备路径
- “”:空字符串,默认值,用于向后兼容,在关联hostPath卷之前不进行任何检查
apiVersion: apps/v1
kind: Deployment
metadata:
name: volume-hostpath-demo
spec:
replicas: 1
selector:
matchLabels:
app: volume-hostpath-demo
template:
metadata:
labels:
app: volume-hostpath-demo
spec:
containe

最低0.47元/天 解锁文章
1342

被折叠的 条评论
为什么被折叠?



