商务网站规划与建设课设的项目需求,欧模网室内设计网,wordpress安装博客,WordPress星光主题意义#xff1a;存储卷----数据卷
容器内的目录和宿主机的目录进行挂载
容器在系统上的生命周期是短暂的#xff0c;delete,k8s用控制器创建的pod#xff0c;delete相当于重启#xff0c;容器的状态也会回复到初始状态
一旦回到初始状态#xff0c;所有的后天编辑的文件…意义存储卷----数据卷
容器内的目录和宿主机的目录进行挂载
容器在系统上的生命周期是短暂的delete,k8s用控制器创建的poddelete相当于重启容器的状态也会回复到初始状态
一旦回到初始状态所有的后天编辑的文件都会消失。
容器和节点之间创建一个可以持久化保存容器内文件的存储卷即使容器被销毁删除重启节点上存储卷的数据依然存在后续也可以继续使用继续将容器内的目录和宿主机挂载保存的数据继续使用
1、emptyDir
容器内部共享存储卷k8s系统中是一个pod当中的多个容器共享一个存储卷目录
emptyDir卷可以使pod当中的容器在这个存储卷上读取和写入
emptyDir是不能挂载到节点的。随着pod生命周期结束emptyDir也会结束数据也不会保留
容器内部共享。LNMP
2、hostPath
将容器内的挂载点和节点上的目录进行挂载hostPath可以实现数据的持久。node节点被销毁那么数据也会丢失
污点设置为
NoExecute节点上的pod会被驱逐文件数据在不在
pod被驱逐并不是node节点被销毁。所有数据还保留在节点上
pod被驱逐 基于控制器创建的会在其他重新部署又会在其他节点生成一个新的存储卷。数据依然可以持久化
emptyDir的共享数据会丢失
apiVersion: apps/v1
kind: Deployment
metadata:name: nginxlabels:app: nginx
spec:replicas: 3selector:matchLabels:app: nginxtemplate:metadata:labels:app: nginxspec:containers:- image: nginx:1.22name: nginx1volumeMounts:- name: htmlmountPath: /usr/share/nginx/html
#第一个name存储的名称可以自定义mountpath定义容器内的挂载目录点和节点或者##其他容器的
共享目录- image: nginx:1.22name: nginx2volumeMounts:- name: htmlmountPath: /data
#引用上一个挂载的名称表示我将和、usr/share/nginx/html这个目录挂载由data目录和他挂载 command: [/bin/bash,-c, while true; do echo $(date) /data/index.html; sleep 2; done]volumes:- name: htmlhostPath:path: /opt/testtype: DirectoryOrCreate3、NFS共享存储 所有的pod内的目录都和节点上的nfs共享目录形成数据所有的数据文件都保存在共享目录当中集中方便管理
apiVersion: apps/v1
kind: Deployment
metadata:name: nginxlabels:app: nginx
spec:replicas: 3selector:matchLabels:app: nginxtemplate:metadata:labels:app: nginxspec:containers:- image: nginx:1.22name: nginx1volumeMounts:- name: htmlmountPath: /usr/share/nginx/html
#第一个name存储的名称可以自定义mountpath定义容器内的挂载目录点和节点或者##其他容器的
共享目录- image: nginx:1.22name: nginx2volumeMounts:- name: htmlmountPath: /data
#引用上一个挂载的名称表示我将和、usr/share/nginx/html这个目录挂载由data目录和他挂载 command: [/bin/bash,-c, while true; do echo $(date) /data/index.html; sleep 2; done]volumes:- name: htmlnfs:path: /data/volumesserver: harbor
#server可以是共享节点的ip地址也可以是主机名主机名要做映射 pvc和pv
pv:全称Persistent Volume 持久化存储卷描述和定义一个存储卷pv是由我们运维人员来定的
pvc全称Persistent Volume Claim 持久化存储的请求,pvc实际上是用来描述或者声明我希望使用什么样的pv来进行存储
pvc-pv是一一对应的关系描述存储大小
pvc----pv-----NFS
pvc和pv都是虚拟化的概念是k8s的抽象的虚拟的存储资源 pv是集群当中的存储资源pvc请求存储资源也是对存储资源的一个检索 检查索引选择一个最合适的pv来存储资源
pv和pvc之间是有生命周期管理
1、Provisioning配置-----pvc请求request-----检索找一个合适的pv----pvc和pvbinding 绑定-------使用-----
pod被删除-------pv的releasing释放------资源回收recyling
配置静态动态
绑定就是把pv分配给pvc
使用就是pod通过pvc使用存储资源—NFS
释放:pod解除和挂载卷的关系删除pvc
回收保留pv以供下一次pvc使用
pv的状态
Avaliable:可用而且没有被任何pvc绑定
Bound绑定pv已经绑定了pvc绑定即使用
released:释放,pvc已经被删除了但是pv的存储资源还没有被集群回收
Failed表示pv资源回收失败而且pv为不可用状态。
ReadWriteOnce RWO配置文件里是全称存储pv可读可写但是只能被单个pod挂载
ReadOnlyManyROX 存储pv可以以只读的方式被多个pod挂载
ReadWriteMany:RWX 存储可以支持读写的方式被多个pod共享
NFS:可以支持以上三种读写和挂载方式
SCSI
[rootmaster01 opt]# lsscsi
[0:0:0:0] disk VMware, VMware Virtual S 1.0 /dev/sda
[2:0:0:0] cd/dvd NECVMWar VMware IDE CDR10 1.00 /dev/sr0 ISCSI 不支持ReadWriteManyRWX
[rootmaster01 opt]# iscsiadm -m session -P 3
iscsiadm: No active sessions.
查询服务器是否有ISCSI设备 -m seesion 管理iscsi的会话 -P 3 显示详细信息的级别 hostpath:只支持RWO 其他两个不支持
回收策略
集群回收pv资源的方式
Retain保留pod和挂载点的数据不会被删除
Recycle回收pv上的数据会被删除挂载点的数据也被删除
Delete: 删除解绑时会自动删除pv上的数据 本地硬盘无法使用支持动态卷的可以使用pv也不再可用云平台自己处理
补充:当pod运行之后通过pvc请求到了pv,除非pod被销毁否则无法删除pvc
pvc----请求用哪个pv的存储----pv和物理存储做映射 挂载----物理设备提供存储卷
pvc yaml文件
apiVersion: v1
kind: PersistentVolume
metadata:name: pv001labels:name: pv001
spec:nfs:path: /data/v1server: 192.168.211.40accessModes:- ReadWriteMany- ReadWriteOncecapacity:storage: 1Gi更改回收策略
apiVersion: v1
kind: PersistentVolume
metadata:name: pv004labels:name: pv004
spec:nfs:path: /data/v4server: 192.168.211.40accessModes:- ReadWriteMany- ReadWriteOncepersistentVolumeReclaimPolicy: Recycle 添加这一行 capacity:storage: 4Gi[rootmaster01 opt]# kubectl apply -f pv.yaml
persistentvolume/pv001 unchanged
persistentvolume/pv002 unchanged
persistentvolume/pv003 configured *
persistentvolume/pv004 configured * 显示这个就是更改策略成功
persistentvolume/pv005 unchangedk8s当中存储卷的模式
emptyDir容器内的存储卷随着pod被销毁也会被销毁数据不保留
hostPath:节点目录的存储卷可以实现持久化存储数据在每个节点上都有不方便集中管理
nfs:共享目录存储卷既可以实现持久化也可以数据集中在一个目录方便管理
pv和pvc
pvc请求----pv的存储资源----硬盘空间NFS
NFS支持pvc的所有类型挂载权限和读写方式
hostpath:仅支持ReadWriteOnce 方式
pvc是以检索的方式找到匹配的pv资源
检索挂载方式和读写模式
检索pv能提供的存储资源的大小
谁合适选谁
保留默认可以不写
回收自动回收节点上的数据也会被删除
删除pv会变成failed模式不可用数据也会被删除
静态比较麻烦但是如何自动匹配pv资源 下回分解