网站cms识别,wordpress主题添加右边栏,昆明做网站seo,温州企业做网站pv和pvc的概念
静态
动态——自动分配
pv#xff1a;persistent volume#xff0c;持久化存储卷#xff0c;描述或者定义存储卷的类型。集群范围内的存储概念#xff0c;代表的是实际的存储空间#xff08;本地磁盘、网络系统文件nfs#xff0c;云存储#xff09…pv和pvc的概念
静态
动态——自动分配
pvpersistent volume持久化存储卷描述或者定义存储卷的类型。集群范围内的存储概念代表的是实际的存储空间本地磁盘、网络系统文件nfs云存储。pv创建成功之后独立于pod的不依赖于特定的pod资源。一般都是由运维工程师定义好的。
pvcpersistent volume claim用户对存储资源的请求也就是创建pod的时候我们定义好了对于存储卷的要求大小存储类型在集群当中寻找一个合适的存储资源pv和这个pv进行绑定然后使用。
在使用的过程中被绑定的pv不可以再被其他pvc请求当pod生命周期结束之后pv的资源可以被释放就可以被后续的请求继续使用设置的pv类型以及数据是否保留。 数据流向
静态 动态 pv和pvc之间的生命周期的关系
1、provisioning配置——匹配对象pv——绑定——使用——使用——回收有不同的策略 2、pv的状态
Available表示pv的状态可用且未被其他pvc绑定只有Available才可以被pvc请求和绑定使用
Reclaiming回收状态以及释放根据回收策略把pv的资源进行回收供下一次pvc继续使用
bound绑定pv和pvc已经绑定可以正常使用。
released已释放的状态绑定解除正在等待资源回收也是不可被请求使用的。
Failed失败pv的自动回收失败。 3、回收策略
Retain保留即使pv和pvc解除绑定之前的数据也会保留。
Delete删除动态卷可以使用不仅是删除数据而且会把pv也会一并删除。
Recycle自动回收自动删除绑定会被解除数据也会被删除然后自动的把pv的状态恢复到Available的状态。 4、读写模式和挂载方式
ReadWriteOnceRWO存储方式可以读写但是只能被单个pod挂载。
ReadOnlyManyROX存储方式只能读可以被多个pod进行挂载。
ReadWriteManyRWX存储方式可以读写而且可以被多个pod进行挂载。 5、挂载卷的类型
emptyDir
hostPath不支持ReadOnlyMany和ReadWriteMany
nfs三种模式都可以使用 静态pv实操
1、nfs配置pv的底层存储空间。
2、配置pv设置pv的存储大小和读写类型。
3、创建pvc匹配设置的pv然后绑定使用。
只有状态是Available的pv可以被pvc请求和绑定使用。
工作中根据业务的需要开发提前约定好了需求的规格运维人员把pv创建好等着上线使用即可。 1、nfs配置pv的底层存储空间。 2、配置pv设置pv的存储大小和读写类型 运行脚本之后可以发现pv创建成功。 3、创建pvc匹配设置的pv然后绑定使用 运行脚本之后可以发现我们创建的pvc1已经绑定pv02 恢复
将pv与pvc解绑 edit pv 02后删除如下字段保存退出即可恢复pv状态成Available。 回收策略 动态pv实操
k8s机制提供了一个插件stroagecalss——创建pv的模版插件pvc之后找到对应的stroagecalss来完成pv和pvc之间的绑定。
stroagecalssnfs来实现动态的pv
卷插件k8s本身不支持nfs创建动态pv外部的存储插件来实现pv的分配。需要prosisioner存储卷分配器外部存储卷的创建会来自动在nfs服务器创建pv。
nfs-client provisioner当pvc请求时会自动在nfs服务器上创建pv然后把pvc的请求实现绑定从而访问nfs的存储。只要有一个目录就可以实现不同pvc的请求。
配置过程
1、创建好共享的目录
2、配置nfs-client provisioner的集群访问权限
为了可以能够创建 pv 能够获取和绑定pvc的请求获取storageclass创建的pv的资源。 权限三部分组成
账号——访问集群访问集群的规则账号拥有的权限把账号的权限绑定到集群当中去
selflink是api的资源之一表示资源对象在k8s api中的自身链接唯一标识用唯一标识来对集群当中的资源对象进行区分。
3、部署和安装provisioner的插件
动态pv的回收策略没有回收策略只有保留和删除。 1、创建好共享的目录 2、配置nfs-client provisioner的集群访问权限
首先创建 Service Account 账户用来管理 NFS Provisioner 在 k8s 集群中运行的权限 接着屏蔽selflink字段以防报错添加如下false一行内容
vim /etc/kubernetes/manifests/kube-apiserver.yaml
kubectl delete pods kube-apiserver -n kube-system
kubectl apply -f /etc/kubernetes/manifests/kube-apiserver.yaml 最后运行yml文件 3、部署和安装provisioner的插件 4、实现自动的pv和pvc
首先创建 StorageClass负责建立 PVC 并调用 NFS provisioner 进行预定的工作。 RECLAIMPOLICYpv的回收策略VOLUMEBINDINGMODEImmediate 当用pvc请求时会立刻绑定一个可用的pv。ALLOWVOLUMEEXPANSION自动挂载允许扩展大小。
然后使用上面静态pv创建的pvc脚本文件添加如下一段表示向class请求pv让 PV 与 PVC 建立关联。 最后可以发现我们的共享目录已经生产