09.Kubernetes之pvpvc及使用nfs网络存储应用常见youmen

PV的全称是:PersistentVolume(持久化卷),是对底层的共享存储的一种抽象,PV由管理员进行创建和配置,它和具体的底层的共享存储技术的实现方式有关,比如Ceph、GlusterFS、NFS等,都是通过插件机制完成与共享存储的对接.

但是通过PVC请求一定的存储空间也很有可能不足以满足对于存储设备的各种需求,而且不同的应用程序对于存储性能的要求也能也不尽相同,比如读写速度、并发性能等,为了解决这一问题,Kubernetes又为我们引入了一个新的资源对象:StorageClass,通过StorageClass的定义,管理员可以将存储资源定义为某种类型的资源,比如快速存储、慢速存储等,用户根据StorageClass的描述就可以非常直观的知道各种存储资源特性了,这样就可以根据应用的特性去申请合适的存储资源了.

Kubernetes支持两种资源的供应模式:静态模式(Staic)和动态模式(Dynamic)。资源供应的结果就是创建好的PV.

静态模式:管理员手工创建许多PV,在定义PV时需要将后端存储的特性进行设置

在用户定义好PVC后,系统将根据PVC对存储资源的请求(存储空间和访问模式)在已存在的PV中选择一个满足PVC要求的PV,一旦找到,就将PV与用户定义的PVC进行绑定,然后用户的应用就可以使用这个PVC了。如果系统中没有满足PVC要求的PV,PVC则会无限期处于Pending状态,直到等到系统管理员创建了一个符合要求的PV。PV一旦绑定在某个PVC上,就被这个PVC独占,不能再与其他PVC进行绑定了。在这种情况下,当PVC申请的存储空间比PV的少时,整个PV的空间都能够为PVC所用,可能会造成资源的浪费。如果资源供应使用的是动态模式,则系统在PVC找到合适的StorageClass后,将会自动创建PV并完成PVC的绑定

Pod使用volume的定义,将PVC挂载到容器内的某个路径进行使用。volume的类型为persistentVoulumeClaim,在容器应用挂载了一个PVC后,就能被持续独占使用。不过,多个Pod可以挂载同一个PVC,应用程序需要考虑多个实例共同访问一块存储空间的问题

当用户对存储资源使用哪个完毕后,用户可以删除PVC,与该PVC绑定的PV将会被标记为已释放,但还不能立刻与其他PVC进行绑定。通过之前PVC写入的数据可能还留在存储设备上,只有在清除之后该PV才能继续使用.

对于PV,管理员可以设定回收策略(ReclaimPolicy)用于设置与之绑定的PVC释放资源之后,对于遗留数据如何处理。只有PV的存储空间完成回收,才能供新的PVC绑定和使用。

1.静态资源下,通过PV和PVC完成绑定,并供Pod使用的存储管理机制

2.动态资源下,通过StorageClass和PVC完成资源动态绑定(系统自动生成PV,并供Pod使用的存储管理机制

由于容器本身是非持久化的,因此需要解决在容器中运行应用程序遇到的一些问题。首先,当容器崩溃时,kubelet将重新启动容器,但是写入容器的文件将会丢失,容器将会以镜像的初始状态重新开始;第二,在通过一个Pod中一起运行的容器,通常需要共享容器之间一些文件。Kubernetes通过存储卷解决上述的两个问题。

spec.volumes:通过此字段提供指定的存储卷spec.containers.volumeMounts:通过此字段将存储卷挂载到容器中

当前Kubernetes支持如下所列的存储卷类型,并以hostPath、nfs和persistentVolumeClaim类型的存储卷为例,介绍如何定义存储卷,以及如何在Pod中被使用.

*awsElasticBlockStore*azureDisk*azureFile*cephfs*configMap*csi*downwardAPI*emptyDir*fc(fibrechannel)*flocker*gcePersistentDisk*gitRepo*glusterfs*hostPath*iscsi*local*nfs*persistentVolumeClaim*projected*portworxVolume*quobyte*rbd*scaleIO*secret*storageos*vsphereVolumexample1EmptyDir(两个Pod目录互相挂载)EmptyDir是一个空目录,他的生命周期和所属的Pod是完全一致的,他用处是把同一Pod内的不同容器之间共享工作过程产生的文件,

Pv和Pvc是K8s的一种标准资源,Pvc被Pv调用后就会被绑定起来,取决于用户怎么绑,

因为pvc属于集群资源级别的不能定义在名成空间

通过PV的capacity属性来设置存储空间,目前仅支持storage=数据大小,未来可能会加入IOPS、吞吐量等指标配置

AccessModes访问模式

AccessModes是用来对PV进行访问模式的设置,用于描述用户应用对存储资源的访问权限

ReadWriteOnce(RWO):读写权限,但是只能被单个节点挂载

ReadOnlyMany(ROX):只读权限,可能被多个节点挂载

ReadWriteMany(RWX):读写权限,可以被多个节点挂载

注意:一些pv可能支持多种访问模式,但挂载时候只可以使用一种访问模式,多种访问模式不奏效

PV实际上没有存储,相当于我们node一样,还需要创建Pod进行消费,接下来我们进行PVC的创建与配置

由于我们的index.html直接挂在到了/data1/k8s目录下面,如果有很多个pod都使用pvc进行挂载,会造成我们数据目录的文件比较乱

这里我们添加一个subpathsubPath的目的是为了在单一Pod中多次使用同一个volume而设计的。

NFS存储的缺点

不支持动态创建持久卷,只能手工创建先手工创建PV,再通过PV手工创建PVC,PVC就是真正可用的持久卷

PVC是和PV进行绑定的:PVC会根据自己需求空间的大小自动选择合适的PV,比如需要一个5G的PVC,PV分别为2G,7G和10G,那么PVC会自动选择7G的,但是剩余的空间不是浪费了么?原因如下:一个被绑定的PV只能用于一个PVC,他们是一对一绑定的,如果PVC大小只需要5G,但是所选的PV有7G,那么剩余的2G是没办法使用的,如果不想这样浪费空间只能使用动态创建的方式.

THE END
1.openwrt挂载硬盘报错控制设备在编译[openwrt](https://wenku.csdn.net/doc/6461cd585928463033b33a41?spm=1055.2569.3001.10083) 18.06时,您遇到了挂载硬盘报错的问题。根据引用[2]中的信息,您可以尝试以下步骤解决该问题: 1. 首先,您可以使用命令`fdisk -l`查看磁盘信息,确认硬盘是否被正确识别。 2. 然后,您可以使用`mount`命令将硬盘挂载https://liebiancat.cn/post/909.html
2.虚拟机扩容一、创建分区 fdisk/dev/sda 按m查看帮助 按n创建新分区 按p扩展分区 按3(因为前面已经有2个了) 大小回车默认 最后按w保存退出。 重启系统。 二、挂载分区 格式化 mkfs -t ext3 /dev/sda3 转换物理卷 lvs pvcreate /dev/sda3 查看lvm名称 vgdisplay https://blog.csdn.net/DshadowD/article/details/144390909
3.DG常见问题及解决方法问题3:通过rman备份,restore数据文件由于种种原因失败(比如空间不足),部分数据文件没有restore出来。 解决办法:清理空间,重新restore database,数据库会restore还未恢复出来的文件。不需要重新做过 问题4:搭建rac-rac的dg时,发现备库只能接收到一节点的归档,接收不到二节点的归档 https://blog.itpub.net/70013625/viewspace-3056368/
4.mysql开启二进制日志mysql存储二进制文件--all-databases: 备份所有库 --databases db1 db2 : 备份指定的多个库,如果使用此命令,恢复时5.挂载快照卷并备份 6.备份完成之后,删除快照卷 恢复: 1.二进制日志保存好; 提取备份之后的所有事件如下面的命令:实际上就是把未完成的事务提交,准备工作需要在还原之前才执行,在这之前都能执行准备https://blog.51cto.com/u_16213637/10953728
5.ubuntu挂载windows分区uuid知识修改卷标名称songbei6新驱动程序的挂载选项: 你需要开辟一块空间来挂载NTFS卷,然后就可以进行挂载操作了。 mkdir /mnt/windows NLS(本地语言支持)决定字符是如何被显示的。你可以选择像Unicode一样可以表示所有字符的utf8,或者你自己的代码页,比如iso8859-1(西欧)、iso8859-2(中欧)、gb2312(简体中文)、iso8859-8(希伯来文)。nls=gbhttp://blog.chinaunix.net/uid-11647316-id-2857818.html
6.mount中文手册未分类在挂载后输出文件系统的卷标签。mount 必须有读取磁盘设备的权限。 -n, --no-mtab 不将挂载信息写入 /etc/mtab ,当此 /etc 位于只读文件系统上的时候,通常就需要使用它。 -c, --no-canonicalize 不对路径(path)进行规范化。 mount 默认会将所有来自命令行和 fstab 的路径进行规范化之后再写入 /etc/mtab https://www.wenjiangs.com/uncategorized/mount.html
7.SuperAgent管理注意:下发数据摄入任务前,请务必确认所需执行器已成功部署至目标主机或目标Kubernetes集群,否则数据摄入任务将无法执行!您也可以先行配置任务参数,待部署完成后再下发此任务。 4.获取数据上报地址(仅针对数据接收任务):成功创建数据接收任务后,返回至SuperAgent数据摄入任务管理列表,即可查看数据发送端所需的数据上报地址https://docs.aishu.cn/help/anyrobot-family-5/superagent-guan-li_49252
8.>第6章管理OracleSolarisZFS文件系统rename操作会尝试对文件系统以及任何后代文件系统按顺序执行取消挂载/重新挂载操作。如果该操作无法取消挂载活动文件系统,则rename命令将失败。发生这种问题时,必须强行取消挂载该文件系统。 有关重命名快照的信息,请参见重命名 ZFS 快照。 ZFS 属性介绍 属性是用来对文件系统、卷、快照和克隆的行为进行控制的主要机制。https://docs.oracle.com/cd/E19253-01/819-7065/gavwq/index.html
9.创建卷在连接路径中,输入文件系统中用于挂载此卷的位置。该名称必须包含一个前导正斜杠,例如 /vol3。 要提高存储效率,请选择 “启用” 以启用此卷上的ONTAP存储效率功能(重复数据删除、压缩和压缩)。有关更多信息,请参阅 存储效率。 对于卷安全类型,请在Unix (Linux) 和“混合” 之间进行选择。NTFS有关更多信息,请https://docs.aws.amazon.com/zh_cn/fsx/latest/ONTAPGuide/creating-volumes.html
10.配置和管理逻辑卷RedHatProductDocumentation逻辑卷管理器(LVM)是一种存储虚拟化软件,旨在增强物理存储设备的管理和灵活性。通过抽象物理硬件,LVM 允许您动态创建、调整大小和删除虚拟存储设备。在这个框架中,物理卷(PV)代表分组在一起的原始存储设备,以组成卷组(VG)。在此 VG 中,LVM 分配空间来创建逻辑卷(LV)。LV 是文件系统、数据库或应用程https://access.redhat.com/documentation/zh-cn/red_hat_enterprise_linux/8/html-single/configuring_and_managing_logical_volumes/index
11.中国的十次国运由于沙俄垮台,沙俄这部分也免于赔付。俄国、德奥占《辛丑条约》赔款比重50%,如此一来中国赔款压力大大下降。再加上此前美国退还的部分庚子赔款(这部分钱用于创办留美预备学校,也就是清华大学),中国实际支付的辛丑赔款仅为原本设定的一半。 虽然巴黎和会上山东权益被日本窃取,但这一问题在1921年的华盛顿会议上得到https://www.meipian.cn/4zlwjqm9
12.如果,歼35战斗机挂载四枚折叠弹翼的霹雳如果,歼-35战斗机挂载四枚折叠弹翼的霹雳-15和两枚霹雳-11AE红外制导中距弹: 1、那空空弹药携带量与歼-20此前公开展示的隐身构型挂载弹药量一样,2红外+2主动雷达。霹雳-11AE应该是采用了红外成像制导,如果有https://weibo.com/2694995107/P4lUDeBRG
13..NETCore3.0正式公布:新特性详细解读对于依赖框架的应用程序而言,这是一项前所未有的新功能。在此之前,只有独立应用程序具有可执行文件。这些新的可执行文件,将在效果上与此前的原生可执行文件编写能够轻松实现容器化的 .NET Core 应用程序/库构建逻辑。 以下为容器化 build(存储卷挂载)的 PowerShell 启动语法示例:https://www.infoq.cn/article/1eM2A9mfINflb58qa9gs
14.计算资源管理华为云Stack8.2.1运维指南04创建弹性云服务器前,需要在Service OM上创建弹性云服务器的规格。规格对应弹性云服务器创建界面上“vCPU”、“内存”、“云服务器类型”和“规格名称”等。结合主机组,可以满足不同性能要求,也可以规范系统中计算实例的资源使用。 操作步骤 不同类型的云服务器的规格名称及推荐的vCPU、内存配比,Region Type I请参见https://support.huawei.com/enterprise/zh/doc/EDOC1100296027/4b6b88e3