暂无图片
暂无图片
暂无图片
暂无图片
暂无图片
29丨PV、PVC体系是不是多此一举?从本地持久化卷谈起.pdf
164
17页
0次
2023-07-11
10墨值下载
29 | PVPVC体系是不是多此一举?从本地持久化卷谈起
2018-10-29 张磊
深入剖析Kubernetes
进入课程
讲述:张磊
时长 15:44 大小 7.21M
你好,我是张磊。今天我和你分享的主题是:PV、PVC 体系是不是多此一举?从本地持久
化卷谈起。
在上一篇文章中,我为你详细讲解了 PV、PVC 持久化存储体系在 Kubernetes 项目中的设
计和实现原理。而在文章最后的思考题中,我为你留下了这样一个讨论话题:像 PV、PVC
这样的用法,是不是有“过度设计”的嫌疑?
比如,我们公司的运维人员可以像往常一样维护一套 NFS 或者 Ceph 服务器,根本不必学
习 Kubernetes。而开发人员,则完全可以靠“复制粘贴”的方式,在 Pod 的 YAML 文件
里填上 Volumes 字段,而不需要去使用 PV 和 PVC。
下载APP
实际上,如果只是为了职责划分,PV、PVC 体系确实不见得比直接在 Pod 里声明
Volumes 字段有什么优势。
不过,你有没有想过这样一个问题,如果Kubernetes 内置的 20 种持久化数据卷实现,都
没办法满足你的容器存储需求时,该怎么办?
这个情况乍一听起来有点不可思议。但实际上,凡是鼓捣过开源项目的读者应该都有所体
会,“不能用”“不好用”“需要定制开发”,这才是落地开源基础设施项目的三大常态。
而在持久化存储领域,用户呼声最高的定制化需求,莫过于支持“本地”持久化存储了。
也就是说,用户希望 Kubernetes 能够直接使用宿主机上的本地磁盘目录,而不依赖于远
程存储服务,来提供“持久化”的容器 Volume。
这样做的好处很明显,由于这个 Volume 直接使用的是本地磁盘,尤其是 SSD 盘,它的读
写性能相比于大多数远程存储来说,要好得多。这个需求对本地物理服务器部署的私有
Kubernetes 集群来说,非常常见。
所以,Kubernetes 在 v1.10 之后,就逐渐依靠 PV、PVC 体系实现了这个特性。这个特性
的名字叫作:Local Persistent Volume。
不过,首先需要明确的是,Local Persistent Volume 并不适用于所有应用。事实上,它
的适用范围非常固定,比如:高优先级的系统应用,需要在多个不同节点上存储数据,并且
对 I/O 较为敏感。典型的应用包括:分布式数据存储比如 MongoDB、Cassandra 等,分
布式文件系统比如 GlusterFS、Ceph 等,以及需要在本地磁盘上进行大量数据缓存的分布
式应用。
其次,相比于正常的 PV,一旦这些节点宕机且不能恢复时,Local Persistent Volume 的
数据就可能丢失。这就要求使用 Local Persistent Volume 的应用必须具备数据备份和恢
复的能力,允许你把这些数据定时备份在其他位置。
接下来,我就为你深入讲解一下这个特性。
不难想象,Local Persistent Volume 的设计,主要面临两个难点。
of 17
10墨值下载
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文档的来源(墨天轮),文档链接,文档作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

文档被以下合辑收录

深入剖析Kubernetes(共51篇)
课程介绍 过去几年,以 Docker、Kubernetes 为代表的容器技术已发展为一项通用技术,BAT、滴滴、京东、头条等大厂,都争相把容器和 K8S 项目作为技术重心,试图“放长线钓大鱼”。 但容器技术本身偏向运维,namespace 资源隔离、cgroups 资源限制等概念,对开发者来说,理解起来比较困难。尤其在实施 K8S 落地时,总有一些问题被反复提及,比如: 为什么容器里只能跑“一个进程”? 之前一直用的某个 JVM 参数,在容器里怎么不好使了? 为什么 Kubernetes 不能固定 IP 地址?容器网络连不通,该如何 Debug? K8S 中 StatefulSet 和 Operator 到底什么区别?PV 和 PVC 又该怎么用? 这些问题的答案和原理并不复杂,但很难一两句话解释清楚。因为容器技术涉及操作系统、网络、存储、调度、分布式原理等方方面面的知识,是个名副其实的全栈技术。 而其技术体系里那些“牵一发而动全身”的主线,比如 Linux 进程模型对容器本身的重要意义,“控制器”模式对整个 K8S 项目提纲挈领的作用等等,不会详细展现在 Docker 或 Kubernetes 官方文档中,但它们才是掌握容器技术体系的精髓所在,这也是张磊的《深入剖析 Kubernetes》专栏的核心内容。 张磊花费数月时间,经过多次改版,构建出如今的知识框架,适合所有初学者和进阶容器技术的伙伴,帮你逐层理清容器背后的技术本质与设计思想,并结合对其核心特性的剖析与实践,加深你对容器技术的理解。 本专栏共包括如下四大模块: 1. “白话”容器技术基础:用饶有趣味的解说,梳理容器技术生态的发展脉络,讲述容器技术的来龙去脉与实现原理,让你知其然,并且知其所以然。 2. Kubernetes 集群的搭建与实践:以浅显易懂的语言,讲述 Kubernetes 集群背后的原理,并从 0 开始搭建一套 Kubernetes 集群,带你领略 Kubernetes 集群的“一键安装”。 3. 容器编排与 Kubernetes 核心特性剖析:这个模块从分布式系统设计的视角出发,归纳出这些特性中体现出来的普遍方法,然后再逐一阐述 Kubernetes 项目关于编排、调度和作业管理的各项核心特性。 4. Kubernetes 开源社区与生态:磊哥会带你思考如何同团队一起平衡内外部需求,逐渐成为社区中不可或缺的一员。

评论

关注
最新上传
暂无内容,敬请期待...
下载排行榜
Top250 周榜 月榜