存储卷(数据卷)—主要是nfs方式挂载

这篇具有很好参考价值的文章主要介绍了存储卷(数据卷)—主要是nfs方式挂载。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1、定义

容器内的目录和宿主机的目录进行挂载

容器在系统上的生命周期是短暂的,一旦容器被删除,数据会丢失。k8s基于控制器创建的pod,delete相当于重启,容器的状态会恢复到原始状态。一旦回到原始状态,后天编辑的文件都会消失,所以容器和节点之间要创建一个持久化保存容器内文件的存储卷,即使容器被销毁、删除、重启,节点上的存储卷依然存在,后续可以继续将容器内的目录和宿主机挂载,保存的数据可以继续使用

2、存储方式

(1)emptyDir:容器内部共享存储卷,在k8s系统中是一个pod中的多个容器共享一个存储卷目录。emptyDir可以使pod中的容器在这个存储卷上读取和写入,但不能挂载到节点上,随着pod的生命周期结束,emptyDir也会被销毁,导致数据丢失

存储卷(数据卷)—主要是nfs方式挂载,kubernetes,docker,容器存储卷(数据卷)—主要是nfs方式挂载,kubernetes,docker,容器存储卷(数据卷)—主要是nfs方式挂载,kubernetes,docker,容器存储卷(数据卷)—主要是nfs方式挂载,kubernetes,docker,容器一个pod里两个容器。加上-c 容器名进入一个pod里的不同容器存储卷(数据卷)—主要是nfs方式挂载,kubernetes,docker,容器存储卷(数据卷)—主要是nfs方式挂载,kubernetes,docker,容器

(2)hostPath:将容器内的目录和节点上的目录进行挂载,hostPath可以实现数据持久化。若node节点被销毁,数据也会丢失(常用)

注意:这种挂载方式非常直接,但有一个重要的限制:hostPath 是特定于节点的,而不是集群范围的

污点设置为NoExecute会把节点上的pod驱逐,文件数据在不在?【面试题】

emptyDir的共享数据会丢失

hostPath的共享数据不会丢失。pod被驱逐,不是node节点被销毁,之前的数据还保留在原来的节点上;基于控制器创建的pod被驱逐会在其他节点重新部署,所以会在其他节点生成一个新的存储卷,数据依然可以持久化

nfs的共享数据不会丢失

存储卷(数据卷)—主要是nfs方式挂载,kubernetes,docker,容器存储卷(数据卷)—主要是nfs方式挂载,kubernetes,docker,容器

存储卷(数据卷)—主要是nfs方式挂载,kubernetes,docker,容器

容器

容器内的目录

挂载点

容器1

/usr/share/nginx/html

节点上的/opt/test

容器2

/data

节点上的/opt/test

因为两个容器内的目录均和节点上的/opt/test进行挂载,所以这个两个容器之间的目录也能数据同步,形成容器1的/usr/share/nginx/html、容器2的/data、节点上的/opt/test三者数据同步

存储卷(数据卷)—主要是nfs方式挂载,kubernetes,docker,容器

存储卷(数据卷)—主要是nfs方式挂载,kubernetes,docker,容器

注意:这种挂载方式非常直接,但有一个重要的限制:hostPath 是特定于节点的,而不是集群范围的

存储卷(数据卷)—主要是nfs方式挂载,kubernetes,docker,容器

存储卷(数据卷)—主要是nfs方式挂载,kubernetes,docker,容器

存储卷(数据卷)—主要是nfs方式挂载,kubernetes,docker,容器

存储卷(数据卷)—主要是nfs方式挂载,kubernetes,docker,容器

存储卷(数据卷)—主要是nfs方式挂载,kubernetes,docker,容器

hostPath 是特定于节点的,而不是集群范围的

存储卷(数据卷)—主要是nfs方式挂载,kubernetes,docker,容器

存储卷(数据卷)—主要是nfs方式挂载,kubernetes,docker,容器

查看一个pod里多个容器的日志。-c 容器名

存储卷(数据卷)—主要是nfs方式挂载,kubernetes,docker,容器

(3)NFS共享存储:数据集中在同一个节点上管理(常用。推荐)

所有pod内的目录都和节点上的NFS共享目录形成数据卷,所有数据文件都保存在共享目录中,集中、方便管理

存储卷(数据卷)—主要是nfs方式挂载,kubernetes,docker,容器

存储卷(数据卷)—主要是nfs方式挂载,kubernetes,docker,容器

指定共享目录/data/volumes

存储卷(数据卷)—主要是nfs方式挂载,kubernetes,docker,容器

发布共享目录

存储卷(数据卷)—主要是nfs方式挂载,kubernetes,docker,容器

在其他节点查看共享目录

存储卷(数据卷)—主要是nfs方式挂载,kubernetes,docker,容器

存储卷(数据卷)—主要是nfs方式挂载,kubernetes,docker,容器

存储卷(数据卷)—主要是nfs方式挂载,kubernetes,docker,容器

方式1:指定IP地址

存储卷(数据卷)—主要是nfs方式挂载,kubernetes,docker,容器

存储卷(数据卷)—主要是nfs方式挂载,kubernetes,docker,容器

存储卷(数据卷)—主要是nfs方式挂载,kubernetes,docker,容器

存储卷(数据卷)—主要是nfs方式挂载,kubernetes,docker,容器

存储卷(数据卷)—主要是nfs方式挂载,kubernetes,docker,容器

测试存储卷(数据卷)—主要是nfs方式挂载,kubernetes,docker,容器存储卷(数据卷)—主要是nfs方式挂载,kubernetes,docker,容器

查看容器中是否同步数据

存储卷(数据卷)—主要是nfs方式挂载,kubernetes,docker,容器

结论:每个pod中数据同步

存储卷(数据卷)—主要是nfs方式挂载,kubernetes,docker,容器

结论:每个pod中的所有容器数据同步

方式2:指定主机名

存储卷(数据卷)—主要是nfs方式挂载,kubernetes,docker,容器

存储卷(数据卷)—主要是nfs方式挂载,kubernetes,docker,容器

存储卷(数据卷)—主要是nfs方式挂载,kubernetes,docker,容器

存储卷(数据卷)—主要是nfs方式挂载,kubernetes,docker,容器

所有主机做主机名映射

存储卷(数据卷)—主要是nfs方式挂载,kubernetes,docker,容器

存储卷(数据卷)—主要是nfs方式挂载,kubernetes,docker,容器

存储卷(数据卷)—主要是nfs方式挂载,kubernetes,docker,容器

存储卷(数据卷)—主要是nfs方式挂载,kubernetes,docker,容器

存储卷(数据卷)—主要是nfs方式挂载,kubernetes,docker,容器

测试

在共享目录中创建文件

存储卷(数据卷)—主要是nfs方式挂载,kubernetes,docker,容器

查看pod是否同步数据

存储卷(数据卷)—主要是nfs方式挂载,kubernetes,docker,容器

结论:容器和节点上的挂载目录数据同步

k8s持久化存储数据方式的特点

方式

挂载点

特点

emptyDir

容器与容器进行挂载

一旦pod被销毁,数据丢失

hostPath

容器与节点进行挂载

持久化存储数据,pod销毁数据仍存在,但数据分散存储在各个节点上,不方便管理

nfs

容器与节点进行挂载

pod销毁数据仍然存在,并且数据集中在一个节点上,方便管理

3、PV和PVC【面试必问】

(1)pvc定义

全称Persistent Volume Claim持久化存储的请求,描述或声明希望使用什么样的pv来进行存储。pvc是虚拟化的请求存储资源或检索存储资源,选择一个最合适的pv来存储资源

(2)pv定义

全称Persistent Volume持久化存储卷,描述和定义一个存储卷,pv由运维人员来定的。pv是集群中虚拟化的存储资源

pv和pvc是一一映射的关系(描述、存储大小)

pvc向pv请求,存储在NFS服务器上

pv和pvc都是虚拟化的概念,是k8s的抽象的虚拟的存储资源

存储卷(数据卷)—主要是nfs方式挂载,kubernetes,docker,容器

pv3和pv4都满足要求,但优先选择pv3,若pv3被占用,则选择pv4

(3)pv和pvc之间有生命周期管理

配置provisioning→pvc请求request→检索(找一个合适的pv)→pvc和pv绑定bending→使用use→pod被删除,pv的资源被释放releasing→回收recycling

配置分为静态请求和动态请求

绑定:把pv分配给pvc

使用:pod通过pvc使用存储资源

释放:pod解除和挂载卷之间的关系,删除pvc

回收:保留pv以供下一个pvc使用

(4)pv和pvc的映射方式

①静态请求

②动态请求

(5)pv的状态

Available

可用,且没有被任何pvc绑定

Bound

绑定,pv已经绑定pvc,绑定即使用

released

释放,pvc已被删除,但集群尚未回收pv的存储资源

Failed

pv资源回收失败,且pv处于不可用状态

(6)pv支持的读写方式

ReadWriteOnce

RWO,存储pv可读可写,但只能被单个pod挂载

pv可读可写,只能挂载单个pod

ReadOnlyMany

ROX,存储pv可以以只读的方式被多个pod挂载

pv只读,能挂载多个pod

ReadWriteMany

RWX,存储pv可以以读写的方式被多个pod挂载

pv可读可写,能挂载多个pod

NFS支持以上三种读写和挂载方式,hostPath只支持ReadWriteOnce方式(在配置文件中都是全称)

ISCSI设备不支持ReadWriteMany方式(注意环境检查)

存储卷(数据卷)—主要是nfs方式挂载,kubernetes,docker,容器iscsiadm -m session -P 3 #查看服务器是否有iscsi设备

-m session指定操作的会话模块,管理iscsi的会话

-P 3显示详细信息的级别(3表示显示详细信息)

(7)集群回收pv资源的方式

Retain

保留。pod和挂载点的数据不会被删除(默认策略。常用)

回收资源后,pv处于released状态,需人工调整成Available状态

Recycle

回收。pv上的数据会被删除,挂载点的数据也被删除

回收资源后,pv自动调整成Available状态

Delete

删除。解绑时自动删除pv上的数据(本地硬盘不能使用,只有云平台支持动态卷的可以使用),pv不再可用,云平台自己处理

当pod运行之后通过pvc请求到了pv,除非pod被销毁,否则无法删除pvc(先删除pod才能删除pvc)

运维负责pv,创建好持久化存储卷,声明好读写和挂载类型,以及可以提供的存储空间。开发负责pvc,与开发对接好条件:期望的读写和挂载类型以及存储空间

创建静态pv实验(默认策略是Retain)

1、发布共享目录

存储卷(数据卷)—主要是nfs方式挂载,kubernetes,docker,容器

存储卷(数据卷)—主要是nfs方式挂载,kubernetes,docker,容器存储卷(数据卷)—主要是nfs方式挂载,kubernetes,docker,容器

在其他节点上查看共享目录

存储卷(数据卷)—主要是nfs方式挂载,kubernetes,docker,容器

存储卷(数据卷)—主要是nfs方式挂载,kubernetes,docker,容器

存储卷(数据卷)—主要是nfs方式挂载,kubernetes,docker,容器

(一)保留策略Retain(pod销毁,存储卷上的数据不会被删除)

2、创建多个pv

定义pv能支持的读写方式和能接收pvc请求的存储大小存储卷(数据卷)—主要是nfs方式挂载,kubernetes,docker,容器存储卷(数据卷)—主要是nfs方式挂载,kubernetes,docker,容器存储卷(数据卷)—主要是nfs方式挂载,kubernetes,docker,容器存储卷(数据卷)—主要是nfs方式挂载,kubernetes,docker,容器存储卷(数据卷)—主要是nfs方式挂载,kubernetes,docker,容器

此时各个pv支持的读写方式、存储大小以及与节点的挂载目录:

PV

支持的读写方式

存储大小

节点上的挂载目录

PV001

ReadWriteMany

ReadWriteOnce

1G

/data/v1

PV002

ReadWriteOnce

2G

/data/v2

PV003

ReadWriteMany

ReadWriteOnce

2G

/data/v3

PV004

ReadWriteMany

ReadWriteOnce

4G

/data/v4

PV005

ReadWriteMany

ReadWriteOnce

ReadOnlyMany

5G

/data/v5

客户端发送PVC请求到PV上请求存储资源,PV通过nfs方式挂载到节点上的目录,实际上数据还是存储在节点上

存储卷(数据卷)—主要是nfs方式挂载,kubernetes,docker,容器

存储卷(数据卷)—主要是nfs方式挂载,kubernetes,docker,容器

3、定义pvc

向pv发起请求

存储卷(数据卷)—主要是nfs方式挂载,kubernetes,docker,容器

存储卷(数据卷)—主要是nfs方式挂载,kubernetes,docker,容器

存储卷(数据卷)—主要是nfs方式挂载,kubernetes,docker,容器

存储卷(数据卷)—主要是nfs方式挂载,kubernetes,docker,容器

存储卷(数据卷)—主要是nfs方式挂载,kubernetes,docker,容器

4、测试

存储卷(数据卷)—主要是nfs方式挂载,kubernetes,docker,容器存储卷(数据卷)—主要是nfs方式挂载,kubernetes,docker,容器存储卷(数据卷)—主要是nfs方式挂载,kubernetes,docker,容器存储卷(数据卷)—主要是nfs方式挂载,kubernetes,docker,容器

pvc请求具体用哪个pv的存储,pv和物理存储做挂载,最终由物理设备提供持久化存储

5、删除pvc(运行中的pod无法删除pvc)

• 先删除pod

存储卷(数据卷)—主要是nfs方式挂载,kubernetes,docker,容器

• 再删除pvc

存储卷(数据卷)—主要是nfs方式挂载,kubernetes,docker,容器

存储卷(数据卷)—主要是nfs方式挂载,kubernetes,docker,容器

存储卷(数据卷)—主要是nfs方式挂载,kubernetes,docker,容器

6、pv恢复可用状态

存储卷(数据卷)—主要是nfs方式挂载,kubernetes,docker,容器

存储卷(数据卷)—主要是nfs方式挂载,kubernetes,docker,容器

存储卷(数据卷)—主要是nfs方式挂载,kubernetes,docker,容器

存储卷(数据卷)—主要是nfs方式挂载,kubernetes,docker,容器

存储卷(数据卷)—主要是nfs方式挂载,kubernetes,docker,容器

回收策略Recycle

2、定义pv

存储卷(数据卷)—主要是nfs方式挂载,kubernetes,docker,容器

存储卷(数据卷)—主要是nfs方式挂载,kubernetes,docker,容器

存储卷(数据卷)—主要是nfs方式挂载,kubernetes,docker,容器

存储卷(数据卷)—主要是nfs方式挂载,kubernetes,docker,容器

存储卷(数据卷)—主要是nfs方式挂载,kubernetes,docker,容器

存储卷(数据卷)—主要是nfs方式挂载,kubernetes,docker,容器

存储卷(数据卷)—主要是nfs方式挂载,kubernetes,docker,容器

存储卷(数据卷)—主要是nfs方式挂载,kubernetes,docker,容器

3、定义pvc

向pv发起请求

存储卷(数据卷)—主要是nfs方式挂载,kubernetes,docker,容器

存储卷(数据卷)—主要是nfs方式挂载,kubernetes,docker,容器

存储卷(数据卷)—主要是nfs方式挂载,kubernetes,docker,容器

存储卷(数据卷)—主要是nfs方式挂载,kubernetes,docker,容器

存储卷(数据卷)—主要是nfs方式挂载,kubernetes,docker,容器

4、测试

在共享目录中创建文件

存储卷(数据卷)—主要是nfs方式挂载,kubernetes,docker,容器

查看容器是否同步数据

存储卷(数据卷)—主要是nfs方式挂载,kubernetes,docker,容器

存储卷(数据卷)—主要是nfs方式挂载,kubernetes,docker,容器

结论:数据同步

5、删除pvc

存储卷(数据卷)—主要是nfs方式挂载,kubernetes,docker,容器

存储卷(数据卷)—主要是nfs方式挂载,kubernetes,docker,容器

稍等一会自动变成可用状态

存储卷(数据卷)—主要是nfs方式挂载,kubernetes,docker,容器

存储卷(数据卷)—主要是nfs方式挂载,kubernetes,docker,容器

删除策略delete

2、定义pv

存储卷(数据卷)—主要是nfs方式挂载,kubernetes,docker,容器

存储卷(数据卷)—主要是nfs方式挂载,kubernetes,docker,容器

存储卷(数据卷)—主要是nfs方式挂载,kubernetes,docker,容器

存储卷(数据卷)—主要是nfs方式挂载,kubernetes,docker,容器

存储卷(数据卷)—主要是nfs方式挂载,kubernetes,docker,容器

存储卷(数据卷)—主要是nfs方式挂载,kubernetes,docker,容器

3、定义pvc

向pv发起请求

存储卷(数据卷)—主要是nfs方式挂载,kubernetes,docker,容器

存储卷(数据卷)—主要是nfs方式挂载,kubernetes,docker,容器

存储卷(数据卷)—主要是nfs方式挂载,kubernetes,docker,容器

存储卷(数据卷)—主要是nfs方式挂载,kubernetes,docker,容器

存储卷(数据卷)—主要是nfs方式挂载,kubernetes,docker,容器

4、测试

在共享目录中创建文件

存储卷(数据卷)—主要是nfs方式挂载,kubernetes,docker,容器

查看容器中是否数据同步

存储卷(数据卷)—主要是nfs方式挂载,kubernetes,docker,容器

存储卷(数据卷)—主要是nfs方式挂载,kubernetes,docker,容器

结论:数据同步成功

5、删除pvc

存储卷(数据卷)—主要是nfs方式挂载,kubernetes,docker,容器

存储卷(数据卷)—主要是nfs方式挂载,kubernetes,docker,容器

Failed表示资源回收失败,并且pv处于不可用状态

注:delete只支持动态卷删除

6、恢复pv

存储卷(数据卷)—主要是nfs方式挂载,kubernetes,docker,容器

存储卷(数据卷)—主要是nfs方式挂载,kubernetes,docker,容器

存储卷(数据卷)—主要是nfs方式挂载,kubernetes,docker,容器

存储卷(数据卷)—主要是nfs方式挂载,kubernetes,docker,容器

存储卷(数据卷)—主要是nfs方式挂载,kubernetes,docker,容器文章来源地址https://www.toymoban.com/news/detail-788573.html

到了这里,关于存储卷(数据卷)—主要是nfs方式挂载的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Docker存储】Docker的容器迁移方式详解

    在Docker中,有多种方式可以进行容器的迁移,以便在不同的环境中部署和运行。 Docker镜像迁移: 通过将Docker镜像导出为文件,然后在目标环境中导入该文件,可以实现镜像的迁移。 导出镜像:在源环境中运行以下命令,将镜像导出为文件。 导入镜像:将导出的镜像文件传输

    2024年02月08日
    浏览(43)
  • 【Docker】在容器中管理数据&&数据卷挂载以及宿主机目录挂载

                                      🎉🎉欢迎来到我的CSDN主页!🎉🎉                         🏅我是平顶山大师,一个在CSDN分享笔记的博主。📚📚         🌟推荐给大家我的博客专栏《【Docker】在容器中管理数据》。🎯🎯                         🎁

    2024年01月16日
    浏览(50)
  • docker配置文件挂载(容器数据管理)

    在之前的nginx案例中,修改nginx的html页面时,需要进入nginx内部。并且因为没有编辑器,修改文件也很麻烦。 这就是因为容器与数据(容器内文件)耦合带来的后果。 要解决这个问题,必须将数据与容器解耦,这就要用到数据卷了。 数据卷(volume) 是一个虚拟目录,指向宿

    2024年02月15日
    浏览(63)
  • Docker -v 挂载主机目录到容器中(及数据卷容器)

    使用 Docker 的过程中,经常需要挂载主机上的目录或文件到 Docker 容器中,以实现数据的共享或持久化。而 docker run -v 命令便是用于挂载主机目录到 Docker 容器中的常用命令。 在创建启动容器时,使用 -v 参数设置数据卷 注意事项: 目录必须是绝对路径 如果目录不存在,会自

    2024年02月10日
    浏览(46)
  • Docker使用数据卷挂载进行数据存储与共享

    在 Docker 中,挂载(Mounting)和数据卷(Data Volumes)是用于在容器和宿主机之间共享数据的机制。 挂载 :将宿主机文件系统中的目录或文件与容器中的目录或文件进行关联的过程。 数据卷 :一种特殊的目录,可以绕过容器文件系统,直接与宿主机文件系统进行交互。 如果数

    2024年02月09日
    浏览(42)
  • Docker-使用数据卷、文件挂载进行数据存储与共享

    默认情况下,在Docker容器内创建的所有文件都只能在容器内部使用。容器删除后,数据也跟着删除,虽然通常我们不会删除容器,但是一旦宿主机发生故障,我们重新创建容器恢复服务,那么之前容器创建的文件就会丢失,这会为我们带来不必要的麻烦。另外,由于在容器中

    2024年02月13日
    浏览(38)
  • 二十. Kubernetes 存储挂载

    先提出问题,或者存储挂载出现的原因: 通过k8s部署应用时,可能会生成或者读写一些配置文件,在应用部署完成后运行过程中也可能需要生成或者读写一些文件或数据,进而引出问题 这些文件或数据如何存储的 这些文件或数据如何读取的 如何做到持久化,即使k8s把当前pod杀掉重新

    2024年02月07日
    浏览(36)
  • docker 数据挂载的三种方式

    目录 前言 更详细的Diff 适合Volumes的场景 适合bind mounts的场景 适合tmpfs mounts的场景 使用 前言 回到目录 我们可以将数据写到容器的可写入层,但是这种写入是有缺点的: 当容器停止运行时,写入的数据会丢失。你也很难将这些数据从容器中取出来给另外的应用程序使用。 容

    2024年02月06日
    浏览(59)
  • docker 数据挂载方式bind和volume的区别

    在 Docker 中, bind 和 volume 都是用来将主机文件系统中的目录或文件映射到容器内部的对应目录或文件上的方式,但它们之间有几个重要区别。 生命周期: bind 挂载的卷只存在于容器运行时,一旦容器停止并删除,该挂载就会被删除。而 volume 的生命周期可以独立于容器,即使

    2024年02月06日
    浏览(59)
  • Docker - 基本概念、与虚拟机的区别、架构、镜像操作、容器操作、数据卷挂载

    目录 一、对 Docker  的理解 1、Docker 基本概念 2、Docker 与 虚拟机的区别 3、何为镜像和容器? 4、Docker 主要架构 二、Docker 基本操作 1、Docker 镜像操作 2、案例(镜像):去 DockerHub 搜索并拉取一个 Nginx 镜像,打包后删除镜像,重新加载 .tar 文件 3、Docker 容器操作 1.docker run(启

    2024年04月13日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包