怎样建立门户网站,怎么用wordpress模板,wordpress替换图片不显示,wordpress月亮花园存储卷----数据卷
容器内的目录和宿主机的目录进行挂载
容器在系统上的生命周期是短暂的#xff0c;delete#xff0c;k8s用控制创建的pod#xff0c;delete相当于重启#xff0c;容器的状态也会回复到初始状态
一旦回到初始状态#xff0c;所有的后天编辑的文件都会消…存储卷----数据卷
容器内的目录和宿主机的目录进行挂载
容器在系统上的生命周期是短暂的deletek8s用控制创建的poddelete相当于重启容器的状态也会回复到初始状态
一旦回到初始状态所有的后天编辑的文件都会消失
容器和节点之间创建一个可以持久化保存容器内文件的存储卷即使容器被销毁删除重启节点上的存储卷的数据依然存在后续也可以继续使用可以继续讲容器内目录和宿主机挂载保存的数据继续使用 存储的方式
1、emptyDir 容器内部共享存储卷k8s系统中是一个pod当中的多个容器共享一个存储卷目录emptyDir卷可以是pod当中容器在这个存储卷上读取和写入
emptyDir是不能挂载到节点的随着pod的生命周期结束emptyDir也会结束数据也不会保留
容器内部共享。lnmp
apiVersion: apps/v1
kind: Deployment
metadata:name: nginx-xblabels:app: nginx
spec:replicas: 3selector:matchLabels:app: nginxtemplate:metadata:labels:app: nginxspec:containers:- image: nginx:1.22name: xbvolumeMounts:- name: htmlmountPath: /usr/share/nginx/html
#第一个name存储的名称可以自定义mountPath定义容器内的挂载目录点和节点或者其他容器的共享目录- image: nginx:1.22name: xb1volumeMounts:- name: htmlmountPath: /data/
#引用上一个挂载的名称表示我将和usr/share/nginx/html这个目录挂载由data目录和它的目录挂载command: [/bin/sh,-c,while true;do echo $(date) /data/index.html;sleep 2;done]volumes:- name: htmlemptyDir: {} 2、hostPath 将容器内的挂载和节点上的目录进行挂载hostPath可以实现数据的持久化node节点被销毁那么数据也会丢失
apiVersion: apps/v1
kind: Deployment
metadata:name: nginxlabels:app: nginx
spec:replicas: 3selector:matchLabels:app: nginxtemplate:metadata:labels:app: nginxspec:containers:- name: nginximage: nginx:1.22volumeMounts:- name: htmlmountPath: /usr/share/nginx/html- name: nginx1image: nginx:1.22volumeMounts:- name: htmlmountPath: /datacommand: [/bin/bash,-c,while ture; do echo $(date) /data/index.html; sleep 2; done]volumes:- name: htmlhostPath:path: /opt/testtype: DirectoryOrCreate 3、NFS共享存储
所有pod内的目录都和节点上的nfs共享目录形成数据卷所有的数据文件都保存在共享目录当中集中方便管理
在私有仓库上
vim /etc/exports
/data/volumes 20.0.0.0/24(rw,no_root_squash)在主节点上
apiVersion: apps/v1
kind: Deployment
metadata:name: nginxlabels:app: nginx
spec:replicas: 3selector:matchLabels:app: nginxtemplate:metadata:labels:app: nginxspec:containers:- name: nginximage: nginx:1.22volumeMounts:- name: htmlmountPath: /usr/share/nginx/html
#第一个name存储的名称可以自定义mountPath定义容器内的挂载目录点和节点或者其他容器的共享目录- image: nginx:1.22name: nginx1volumeMounts:- name: htmlmountPath: /data
#引用上一个挂载的名称表示我将和usr/share/nginx/html这个目录挂载由data目录和它的目录挂载command: [/bin/bash,-c,while ture; do echo $(date) /data/index.html; sleep 2; done]volumes:- name: htmlnfs:path: /data/volumesserver: 20.0.0.73 pvs和PV
pv全称Persistent Volume 持久化存储卷用来描述和定义一个存储卷pv是由运维人员来定的
pvcPersistent Volume Claim 持久化存储的请求pvc实际上是用来描述或者声明我希望使用什么样的pv来进行存储
pvc-pv是一一对应的关系描述存储大小
pvc---pv---?
pvc和pv都是虚拟化的概念是k8s的抽象的虚拟的存储资源 pod内的挂载点声明一个请求pvc请求pvc会找一个最合适的pv来作为pod的存储卷pv和共享目录在一一映射最终由nfs来提供最终的共享存储空间
pvc和pv的请求方式
静态请求
动态请求
pvc和pv之间静态请求一旦成百个怎么办所有还有动态pvc pv是集群当中的存储资源pvc请求存储资源也是对存储资源的一个检索检查索引选择一个最合适的pv来存储资源
pv和pvc之间是有生命周期管理
1、Provisioning配置----- pvc请求request-----检索找一个合适的pv---- pvc和pvbinding绑定---- 使用 ---- pod被删除 ----- pv的relesing释放-----recycling回收
配置动态 静态
绑定就是把pv分配给pvc
使用就是pod通过pvc使用存储资源
释放pod解除和Volume的关系删除pvc
回收保留pv让下一个pvc使用 pv的状态
Available可用而且没有被任何pvc绑定
Bound绑定pv已经绑定了pvc绑定即使用
released释放pvc已经被删除了但是pv的存储资源还没有被集群回收
Failed表示pv资源回收失败而且pv为不可用状态
pv的读写方式
ReadWriteOnce RWO 配置文件里是全称存储pv可读可写但是只能被单个pod挂载
ReadOnlyMany ROX存储的pv可以以只读的方式被多个pod挂载
ReadWriteMany RWX存储可以支持读写的方式被多个pod共享
nfs可以支持三种读写和挂载方式
ISCSI 不支持
hostPath支持ReadWriteOnce方式
查看设备上所有的Iscsi
[rootmaster01 opt]# lsscsi
[1:0:0:0] cd/dvd NECVMWar VMware SATA CD01 1.00 /dev/sr0
[30:0:0:0] disk VMware, VMware Virtual S 1.0 /dev/sda iscsiadm -m session -P 3
iscsiadm 查看服务器是否有iscsi设备
-m session 指定操作的会话模块管理iscsi的会话
-P 3 显示详细信息的级别级别就是3显示详细信息
集群回收pv资源的方式
1、Retain 保留pod和挂载点的数据不会被删除
2、Recycle 回收pv上的数据被删除挂载点的数据也被删除
3、Delete删除解绑时自动删除pv上的数据本地硬盘不能使用AWSEBSGCE支持动态卷的可以使用pv不再可用云平台自己处理
补充当pod运行之后通过pvc请求到了pv除非pod被销毁否则无法删除pvc
静态
mkdir v{1,2,3,4,5}
vim/etc/perports
/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)systemctl restart rpcbind
systemctl restart nfs
exportfs -arv节点上查看
showmount -e 20.0.0.73
Export list for 20.0.0.73:
/data/v5 20.0.0.0/24
/data/v4 20.0.0.0/24
/data/v3 20.0.0.0/24
/data/v2 20.0.0.0/24
/data/v1 20.0.0.0/24
/data/volumes 20.0.0.0/24主节点
vim pv.yamlapiVersion: v1
kind: PersistentVolume
metadata:name: pv001labels:name: pv001
spec:nfs:path: /data/v1server: 20.0.0.73accessModes: [ReadWriteMany,ReadWriteOnce]capacity:storage: 1Gi
---
apiVersion: v1
kind: PersistentVolume
metadata:name: pv002labels:name: pv002
spec:nfs:path: /data/v2server: 20.0.0.73accessModes: [ReadWriteOnce]capacity:storage: 2Gi
---
apiVersion: v1
kind: PersistentVolume
metadata:name: pv003labels:name: pv003
spec:nfs:path: /data/v3server: 20.0.0.73accessModes: [ReadWriteMany,ReadWriteOnce]capacity:storage: 2Gi
---
apiVersion: v1
kind: PersistentVolume
metadata:name: pv004labels:name: pv004
spec:nfs:path: /data/v4server: 20.0.0.73accessModes: [ReadWriteMany,ReadWriteOnce]capacity:storage: 4Gi
---
apiVersion: v1
kind: PersistentVolume
metadata:name: pv005labels:name: pv005
spec:nfs:path: /data/v5server: 20.0.0.73accessModes: [ReadWriteMany,ReadWriteOnce,ReadOnlyMany]capacity:storage: 5Gi查看生成的pv
[rootmaster01 opt]# kubectl get pv
NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE
pv001 1Gi RWO,RWX Retain Available 7s
pv002 2Gi RWO Retain Available 7s
pv003 2Gi RWO,RWX Retain Available 7s
pv004 4Gi RWO,RWX Retain Available 7s
pv005 5Gi RWO,ROX,RWX Retain Available 7svim pvc.yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:name: mypvc
spec:accessModes: [ReadWriteMany]
#pvc期望请求的pv的读写挂载类型是什么resources:requests:storage: 2Gi
#pvc 期望请求pv的存储大小是2G期望的pv类型ReadWritemany 大小是2G
---
apiVersion: apps/v1
kind: Deployment
metadata:name: nginx-xblabels:app: nginx
spec:replicas: 3selector:matchLabels:app: nginxtemplate:metadata:labels:app: nginxspec:containers:- image: nginx:1.22name: xbvolumeMounts:- name: htmlmountPath: /usr/share/nginx/htmlvolumes:- name: htmlpersistentVolumeClaim:claimName: mypvc查看
[rootmaster01 opt]# kubectl get pv
NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE
pv001 1Gi RWO,RWX Retain Available 144m
pv002 2Gi RWO Retain Available 144m
pv003 2Gi RWO,RWX Retain Bound default/mypvc 144m
pv004 4Gi RWO,RWX Retain Available 144m
pv005 5Gi RWO,ROX,RWX Retain Available 144mpvc --- 请求用哪个pv的存储-----pv和物理存储做映射挂载----删除pvc
[rootmaster01 opt]# kubectl delete pvc mypvc会卡
[rootmaster01 /]# kubectl delete deployments.apps nginx-xb
进入kubectl edit pv pv003删除 claimRef模块修改pv的资源方式
pv.yaml
......accessModes: [ReadWriteMany,ReadWriteOnce]persistentVolumeReclaimPolicy: Recyclecapacity:storage: 4Gi
.....查看
[rootmaster01 opt]# kubectl get pv
NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE
pv001 1Gi RWO,RWX Retain Available 151m
pv002 2Gi RWO Retain Available 151m
pv003 2Gi RWO,RWX Retain Available 151m
pv004 4Gi RWO,RWX Recycle Available 151m
pv005 5Gi RWO,ROX,RWX Retain Available 151m