教人做辐射4mod的网站,wordpress跟换域名,网站设计建设专业服务,张家界公司网站建设存储卷----数据卷
容器内的目录和宿主机的目录进行挂载
容器在系统上的生命周期是短暂的#xff0c;delete#xff0c;k8s用控制创建的pod#xff0c;delete相当于重启#xff0c;容器的状态也会恢复到初识状态
一旦容器回到初始状态#xff0c;所有得分后天编辑的文件…存储卷----数据卷
容器内的目录和宿主机的目录进行挂载
容器在系统上的生命周期是短暂的deletek8s用控制创建的poddelete相当于重启容器的状态也会恢复到初识状态
一旦容器回到初始状态所有得分后天编辑的文件都会消失
容器和所有节点之间创建一个可以持久化保存容器内文件的存储卷即使容器被销毁删除重启节点上的存储卷的数据依然存在后续也可以继续使用可以继续将容器内目录和宿主机进行挂载保存的数据继续使用 emptyDir
容器内部共享存储卷k8s系统中是一个pod当中的多个容器共享一个存储卷目录
EmptyDir卷可以是pod当中容器在这个存储卷上读取和写入
EmptyDir是不能挂载到节点的随着pod的生命周期结束emptyDir也会结束数据也不会保留
只能用于内部共享 演示 进入容器 hostPath
将容器内的挂载点和节点上的目录进行挂载hostpath可以实现数据持久化node节点将会被销毁那么数据也就会丢失
污点设置为NoExecute:节点上的pod会被驱逐文件数据在不在
Pod被驱逐并不是node节点被销毁所有的数据还保留在节点上
Pod被驱逐基于控制器创建的会在其他节点继续部署又会在其他节点生成一个新的存储卷数据依然可以持久化
EmptyDir被驱逐数据会丢失 演示 查看不同pod输出的日志 第三种
NFS共享存储方式
所有的pod内部的目录都和节点上的NFS共享形成数据同步所有文件都将保存在一个目录当中便于管理 验证 用主机名做 找不到挂载卷因为没有映射 每个主机都做映射 HostPath和NFS是我们常用的方式推荐使用NFS PVC和PV必问
PV全称persistent volume持久化存储卷描述和定义一个存储卷PV是由我们运维人员来定的
PVC全称persistent Volume Claim 持久化存储的请求PVC实际上是用来描述或者声明我希望使用什么样PV来进行存储 PVC----pv------NFS 意思就是说PVC请求PV
PVC是发起一个请求PVC是提供一个虚拟化的存储卷
PVC和PV都是虚拟的概念是k8s的抽象的虚拟化的存储资源 结构图 PVC和PV之间的静态请求一旦百个PVC怎么办所有引申出了动态请求 PV是集群当中的存储资源PVC请求存储资源也是对存储资源的一个索引检查索引选择一个最合适的PV来存储资源
PV和PVC之间是有生命周期管理
Provisioning配置------PVC请求request-----检索找一个合适的PV----PVC和PVbinding绑定----使用---pod被删除-------PV的releasing释放-------recycling回收 配置静态动态
绑定就是把PV分配给PVC
使用就是pod通过PVC使用存储资源---NFS
释放pod解除和挂载卷volume的关系删除PVC
回收保留PV让下一个PVC使用 PV的状态
Available可用而且没有被任何PVC绑定
Bound:绑定PV已经绑定了PVC绑定即使用
Released释放PVC已经被删除了但是PV的存储资源还没有被集群回收
Failed:表示PV资源回收失败而且PV为不可用状态 ReadWriteOnce: RWO,配置文件里面是全称存储PV可读可写但是只能被单个pod挂载
ReadOnlyMary:ROX 存储的PV可以以只读的方式被多个pod挂载
ReadWriteMany:RWX 存储可以支持读写的方式被多个pod共享 EmptyDir不考虑
NFS可以支持以上三种读写和挂载方式
ISCSI:不支持ReadWriteMany
hostPath只支持ReadWriteOnce方式 iscsiadm -m session -P 3查看服务器是否有iscsi设备
-m session指定操作的会话模块管理iscsi会话
-P 3显示详细信息的级别级别就是3显示详细信息 集群回收PV资源的方式
Retain保留pod和挂载点的数据不会被删除
Recycle:回收PV上的数据被删除挂载点的数据也被删除
Delete:淡出解绑时自动删除PV上的数据。本地硬盘不能使用AWSEBDGCE支持动态卷的可以使用PV不再可用云平台自己处理 补充当pod运行之后通过PVC请求到了PV除非pod被销毁否则无法删除PVC 演示PVC静态和资源回收方式 映射全部 发布 每个节点查看 vim pv.yml apiVersion: v1
kind: PersistentVolume
metadata: name: pv001 labels: name: pv001
spec: nfs: path: /data/v1 server: 20.0.0.74 accessModes: [ReadWriteMany,ReadWriteOnce] capacity: storage: 1Gi
---
apiVersion: v1
kind: PersistentVolume
metadata: name: pv002 labels: name: pv002
spec: nfs: path: /data/v2 server: 20.0.0.74 accessModes: [ReadWriteOnce] capacity: storage: 2Gi
---
apiVersion: v1
kind: PersistentVolume
metadata: name: pv003 labels: name: pv003
spec: nfs: path: /data/v3 server: 20.0.0.74 accessModes: [ReadWriteMany,ReadWriteOnce] capacity: storage: 2Gi
---
apiVersion: v1
kind: PersistentVolume
metadata: name: pv004 labels: name: pv004
spec: nfs: path: /data/v4 server: 20.0.0.74 accessModes: [ReadWriteMany,ReadWriteOnce] capacity: storage: 4Gi
---
apiVersion: v1
kind: PersistentVolume
metadata: name: pv005 labels: name: pv005
spec: nfs: path: /data/v5 server: 20.0.0.74 accessModes: [ReadWriteMany,ReadWriteOnce] capacity: storage: 5Gi 定义一个PVC请求
vim pvc.yml apiVersion: v1
kind: PersistentVolumeClaim
metadata: name: mypvc
spec: accessModes: [ReadWriteMany]
#pvc期望请求的PV的读写挂载类型是什么 resources: requests: storage: 2Gi
#PVC期望请求PV的存储大小是2G。上面合起来的意思期望读写模式ReadWriteMany 并且大小是2G ---
apiVersion: apps/v1
kind: Deployment
metadata: labels: app: nginx name: nginx spec: replicas: 3 selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: containers: - image: nginx:1.22 name: nginx volumeMounts: - name: html mountPath: /usr/share/nginx/html volumes: - name: html persistentVolumeClaim: claimName: mypvc 选择了PV003 测试 怎么删除PVC 删不掉因为pod还在 怎么删呢删除pod 处在回收状态 怎么让其回到可用状态 kubectl edit pv pv003 回到了available状态 配置回收策略
persistentVolumeReclaimPolicy: Recycle 稍微等等 也就是挂载内容被回收也就是被删除了 persistentVolumeReclaimPolicy: Delete 先删pod再删PVC删除之后数据卷还在 动态卷是要删除的这里还在只是演示一下
怎么恢复 总结
k8s当中存储卷的模式
EmptyDir用于容器内共享随着pod被销毁也会被销毁数据不保留
hostPath节点目录的存储卷可以实现存储化存储数据在每个节点上都有不方便集中管理
NFS共享目录存储卷既可以实现持久化也可以数据集中在一个目录方便管理 PV和PVC
PVC是一种请求----PV存储资源----------硬盘空间NFS
NFS支持PVC的所有挂载方式和读写模式 hostPath仅支持readwriteOnce方式
PVC是以检索的方式找到匹配的PV资源 检索挂载方式和读写模式
检索PV能提供的存储资源的大小
谁合适选谁
保留默认可以不写
回收自动回收节点上的数据会被删除
删除PV会变成failed模式不可用数据也会被删除