k8s对象-挂载卷
支持类型
emptyDir
hostPath
gcePersistentDisk
awsElasticBlockStore
nfs
iscsi
glusterfs
rbd
gitRepo
secret
persistentVolumeClaim
以下介绍集中常用挂载类型:
1. emptyDir
1.1 概念
-
位置
pod所在的node节点。
实际位置在/var/lib/kubelet/pods/
下(2.1.3 中我们将验证这个操作) -
生命周期
该pod启动时创建
该pod被移除时删除
容器崩溃数据不丢失
1.2 示例
volumeMounts: - name: server-logs mountPath: /app/logs volumes: - name: server-logs emptyDir: {}
1.3 实际位置
测试:我们按2.1.2 示例 创建一个挂载空目录的nginx容器,在容器中写一个 hellohello文件,到pod所在node节点上,查看该容器:
[root@DoN03 data]# docker ps |grep nginx a1b2d342fe85 harbocto.boe.com.cn/public/nginx "/docker-entrypoint.…" 8 minutes ago Up 8 minutes k8s_nginxtest-02_nginxtest-02_test_9928f5c6-80fd-4310-b4f6-8b07ce61fbab_0 52b228668ff3 registry.aliyuncs.com/google_containers/pause:3.1 "/pause" 8 minutes ago Up 8 minutes k8s_POD_nginxtest-02_test_9928f5c6-80fd-4310-b4f6-8b07ce61fbab_0
查找该文件所在位置:
[root@DoN03 data]# find / -name hellohello /var/lib/kubelet/pods/9928f5c6-80fd-4310-b4f6-8b07ce61fbab/volumes/kubernetes.io~empty-dir/server-logs/hellohello
2. hostPath
-
位置
pod所在的node节点的指定目录下 -
生命周期
该pod启动时创建
该pod被移除时不会删除 -
示例
app/logs
将被挂载在宿主机的/data/logs
目录
volumeMounts: - name: server-logs mountPath: /app/logs volumes: - name: server-logs hostPath: path: /data/logs
3. pvc+pv
3.1 作用
- pvc:和pod关联(由pod指定pvc名),关联到pod中要挂载的目录。
- pv:向存储申请空间并关联pvc,不受namespace限制。
3.2 组件间的关系
pod--------pvc------pv--------存储
- 一个pod可以挂载多个pvc
- 多个pod可挂载一个pvc
- pv和pvc一一对应
3.3 示例
- pvc
kind: PersistentVolumeClaim apiVersion: v1 metadata: name: pv-map-logs spec: accessModes: - ReadWriteOnce resources: requests: storage: 1Gi
- pv
apiVersion: v1 kind: PersistentVolume metadata: name: pv-map-logs #名字和pvc一致即可关联 spec: capacity: storage: 1Gi accessModes: - ReadWriteOnce nfs: path: /data/map/logs #挂载nfs服务器的路径 server: 10.10.xxx.xxx # 挂载nfs服务器的地址 persistentVolumeReclaimPolicy: Recycle #回收策略
说明:
1)回收策略:
Recycle
:删除pvc自动清除pv中的数据,pv的状态变为Available,可重新被挂载。Retain
:删除pvc后,pv变为Released状态,不可再使用。Delete
:删除pvc后,自动删除pv。
- deployment 使用
volumeMounts: - name: map-logs mountPath: /app/logs volumes: - name: map-logs persistentVolumeClaim: claimName: pv-map-logs
4. 动态存储
storageclass 为PVC自动创建PV。
合集:
《kubernetes》
, 第一章 原理和对象
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?