非淡泊无以明志,非宁静无以致远。这篇文章主要讲述k8s部署-45-k8s共享存储(上)相关的知识,希望能为你提供帮助。
文章图片
什么最重要了,当然是存储了,不管你存储的是文件还是数据,图片还是音频,都是非常重要的,那么我们通过什么方式来避免数据的单点故障呢?如何保证存储的可靠性呢?下面我们来看看。
文章图片
PS:本篇为理论,下一篇为实操。
1、共享存储
共享存储是指两个或多个处理机共用一个主存储器的并行体系结构。每一个处理机都可以把信息存入主存储器,或从中取出信息。处理机之间的通信通过访问共享存储器来实现。
之前的存储方式,都是在启动的时候,通过volume的方式来挂载到物理机上的某个磁盘上。但是这样子是不是数据只存放在单个物理机上,别的节点无法获取到数据呢?当然了,我们也可以通过NFS的方式,共享指定目录,亦或者通过NAS的方式。都可以,毕竟条条大路通罗马嘛,虽然我们有很多种方式可以实现,那么既然k8s也提供了,不妨我们也来看一看。
【k8s部署-45-k8s共享存储(上)】
2、流程
PV首先我们会有一个PV,也就是PersistentVolume,在这里我们可以指定目录、IP、权限等内容。
文章图片
ReadWriteOnce表示只能有一个pod使用,如果我们要给多个POD的话,可以改成ReadWriteMany
PVC然后我们还需要一个PVC,即PersistentVolumeClaim,这里我们可以指定的是容量大小以及相关权限;
文章图片
其实怎么理解呢?我们可以将PV理解成父亲,PVC是儿子,父亲分家产给儿子,儿子要多少家产要申明,那么问题来了,如果知道这个儿子是不是亲生的,那当然要做亲子鉴定了,在k8s中呢,就引入了一个绑定的概念,将PV和PVC进行绑定。
POD配置
最后我们该如何使用呢,是不是需要在pod上进行配置啊,配置如下:
文章图片
StorageClass有没有可以自动管理PV的方式呢?k8s就考虑到了这一点,所以引入了一个StorageClass机制,会帮助我们自动创建PV,如下:
文章图片
当引入了StorageClass之后,我们的PVC是不是也会随之改变呢?会变成什么样子呢,如下:
文章图片
每个PV和PVC都有StorageClass,且StorageClass并不需要实际存在。
流程总图
最后我们做个梳理,如下图,最下面的存储服务就是k8s中支持的存储方式,可以灵活选用;
文章图片
一个POD可以使用多个PVC,一个PVC也可以给多个POD使用;一个PVC只能绑定一个PV,一个PV只能绑定一种后端存储服务。
推荐阅读
- DSTC10开放领域对话评估比赛冠军方法总结
- 美团技术年货(1200+页电子书,覆盖前后端算法数据安全测试顶会论文...)
- linux之秘钥登录
- 数据治理一体化实践之体系化建模
- 如何在GitHub正确地使用 Curl 下载文件()
- 如何在 Linux 中使用 ripgrep (rg) 命令()
- 通过 SSH 在远程和本地系统之间传输文件的 4 种方法
- linux用户及密码的存储和校验
- C# TCP通讯客户端源码