品牌营销型网站建设公司,如何建立官网,描述photoshop在网站建设中的作用与特点.,站牛网是做什么的k8s的存储卷/数据卷
容器内的目录和宿主机的目录挂载
容器在系统上的生命周期是短暂的#xff0c;delete#xff0c;k8s用控制创建的pod#xff0c;delete相当于重启#xff0c;容器的状态也会回复到初始状态
一旦回到初始状态#xff0c;所有的后天编辑的文件都会消失…k8s的存储卷/数据卷
容器内的目录和宿主机的目录挂载
容器在系统上的生命周期是短暂的deletek8s用控制创建的poddelete相当于重启容器的状态也会回复到初始状态
一旦回到初始状态所有的后天编辑的文件都会消失
容器和节点之间创建一个可以持久化保存容器内文件的存储卷即使容器被销毁删除重启节点上的存储卷的数据依然存在后续也可以使用
可以继续将容器内目录的宿主机挂载保存的数据继续使用。
1、emptyDir
容器内部共享存储卷,k8s系统中是一个pod当中多个容器共享一个存储卷目录。
emptyDir卷可以使pod当中容器在这个存储卷上读取和写入
emptyDir不能挂载到节点的随着pod的生命周期结束emptyDir也会结束数据也不会被保留。 容器内部共享lnmp
hostPath:将容器内的挂载点和节点上的目录进行挂载hostPath可以实现数据的持久化node节点被销毁那么数据也会丢失。
污点设置为
NoExecute:的节点上pod会被驱逐文件数据在不在
pod被驱逐并不是node节点所有数据还在保留在节点上
pod被驱逐之后(基于控制器创建的会在其他节点重新部署)又会在其他节点生成一个新的存储卷数据依然可以持久化。
emptyDir的共享数据会丢失
NFS共享存储
所有pod内的目录都和节点上NFS共享目录形成数据卷所有的数据文件都保存在共享目录当中。集中、方便管理 pvc和pv
pv:全程Persistent Volume持久化存储卷描述和定义一个存储卷pv是由我们运维人员来定义的
pvc:persistent Volume Claim持久存储的请求pvc实际上是用来藐视或者声明我希望使用是什么样的pv来进行存储
pvc-pv是---对应的关系(描述存储(大小))
pvc----pv---nfs
pvc和pv都是虚拟化的概念是一种k8s抽象虚拟的存储资源
pvc和pv之间静态请求。一但又成百个pvc怎么办还有动态pvc
pv是集群当中的存储资源pvc实际上请求存储资源也是对存储资源的一个检索(检查索引)选择一个最合适的pv来存储资源
pv和pvc之间是有生命周期管理:
1、Provisioning(配置)---pvc请求request-----检查索引(找一个合适的pv)---pvc和pv(bending绑定)----使用使用完毕后---pod被删除---pv的releasing(释放)-----recycling(回收) 配置:静态、动态
绑定:就是把pv分配给pvc
使用:就是pod通过pvs使用存储资源
释放:实际上是pod解除和挂载卷volume的关系删除掉pvc
回收:保留这个pv以供下一个pvc使用 pv的四种状态:
Available可用状态指的是可用而且没有被任何pvc绑定
Bound:绑定 pv已经绑定了pvc 绑定即使用
released:释放pvc已经被删除了但是pv的存储资源还没有被集群回收
Failed:表示pv的资源回收失败而且这个pv不可用状态 ReadWriteOnce RWO,在配置文件里是全称表示存储pv可读可写但是只支持被单个pod挂载
ReadOnlyMany:ROX 存储的pv可以以只读的方式被多个pod挂载
ReadWriteMany:RWX,存储可以支持读写的方式被多个pod共享 读写挂载的两个方式
nfs:可以支持三种读写和挂载方式
SCSI不支持ReadWriteMany
ISCSI支持ReadWriteOnce
iscsiadm -m session -P 3
iscsiadm查看服务器是否有iscsi设备
-m session:指定操作的会话模块管理iscsi的会话
-P 3:显示详细信息的级别级别为3显示详细信息 hostPath:只支持ReadWriteOnce方式其他都不支持 集群回收pv资源的方式:
1、Retain:保留存储pod和挂载点的数据不会被删除
2、Recycle:回收pv上数据会被删除挂载点的数据也被删除
3、Delete:删除解绑时会自动删除pv上数据(本地硬盘不能使用)支持动态卷的可以使用,pv也不再可用(由云平台自己处理)
补充:当pod允许之后通过pvc请求到了pv除非pod被销毁否则无法删除pvc。 k8s存储卷的模式
emptDir:用于容器呢ide存储卷随着pod被销毁也会被销毁数据不保留
hostPath:就是和节点目录的存储卷进行挂载可以实现持久化存储数据在每个节点上都有不方便集中管理
nfs:最常用的模式共享目录存储卷既可以实现在持久化也可以数据集中数据集中在一个目录方便管理
pv和pvc
pvc请求---pv的存储资源---------硬盘空间(nfs)
nfs支持pvc所有挂载方式和读写模式
hostPath仅支持ReadWriteOnce方式
pvc是检索的方式找到匹配的资源 检索挂载方式和读写模式
检索pv能提供的存储资源的大小
谁合适选谁
保留:默认可以不写
回收:自动回收节点上的数据会被删除
删除:pv会变成failed模式不可用数据也会被删除 一个实验
在NFS主机上创建共享目录并且进行exportfs发布
mkdir /data/v{1..5}
vim /etc/exports
/data/v1 20.0.0.0/24(rw,no_root_squash)
/data/v2 20.0.0.0/24(rw,no_root_squash)
/data/v3 20.0.0.0/24(rw,no_root_squash)
/data/v4 20.0.0.0/24(rw,no_root_squash)
/data/v5 20.0.0.0/24(rw,no_root_squash)exportfs -avf
在master主机编写pv资源创建yaml
vim /opt/pv.yaml
apiVersion: v1
kind: PersistentVolume
metadata:name: pv001labels:name: pv001
spec:nfs:path: /data/v1server: 20.0.0.95accessModes: [ReadWriteMany,ReadWriteOnce]capacity:storage: 1Gi
---
apiVersion: v1
kind: PersistentVolume
metadata:name: pv002labels:name: pv002
spec:nfs:path: /data/v2server: 20.0.0.95accessModes: [ReadWriteOnce]capacity:storage: 2Gi
---
apiVersion: v1
kind: PersistentVolume
metadata:name: pv003labels:name: pv003
spec:nfs:path: /data/v3server: 20.0.0.95accessModes: [ReadWriteMany,ReadWriteOnce]capacity:storage: 2Gi
---
apiVersion: v1
kind: PersistentVolume
metadata:name: pv004labels:name: pv004
spec:nfs:path: /data/v4server: 20.0.0.95accessModes: [ReadWriteMany,ReadWriteOnce]capacity:storage: 4Gi---
apiVersion: v1
kind: PersistentVolume
metadata:name: pv005labels:name: pv005
spec:kubectl apply -f pv-demo.yaml
创建pvc资源并且设置匹配绑定相应的pv
vim /opt/pvc.yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:name: mypvc
spec:accessModes: [ReadWriteMany]resources:requests:storage: 2Gi---
apiVersion: apps/v1
kind: Deployment
metadata:labels:app: nginxname: nginx
spec:replicas: 3selector:matchLabels:app: nginxtemplate:metadata:labels:app: nginxspec:containers:- image: nginx:1.22name: nginx1volumeMounts:- name: htmlmountPath: /usr/share/nginx/html/volumes:- name: htmlpersistentVolumeClaim:claimName: mypvc---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:name: mypvc1
spec:accessModes: [ReadWriteMany]resources:requests:storage: 2Gi---
apiVersion: apps/v1
kind: Deployment
metadata:labels:app: nginx2name: nginx2
spec:replicas: 3selector:matchLabels:app: nginx2template:metadata:labels:app: nginx2spec:containers:- image: nginx:1.22name: nginx1volumeMounts:- name: htmlmountPath: /usr/share/nginx/html/volumes:- name: htmlpersistentVolumeClaim:claimName: mypvc1