k8s部署-45-k8s共享存储(上)
什么最重要了,当然是存储了,不管你存储的是文件还是数据,图片还是音频,都是非常重要的,那么我们通过什么方式来避免数据的单点故障呢?如何保证存储的可靠性呢?下面我们来看看。 PS:本篇为理论,下一篇为实操。1、共享存储共享存储是指两个或多个处理机共用一个主存储器的并行体系结构。每一个处理机都可以把信息存入主存储器,或从中取出信息。处理机之间的通信通过访问共享存储器来实现。之前的
什么最重要了,当然是存储了,不管你存储的是文件还是数据,图片还是音频,都是非常重要的,那么我们通过什么方式来避免数据的单点故障呢?如何保证存储的可靠性呢?下面我们来看看。
PS:本篇为理论,下一篇为实操。
1、共享存储
共享存储是指两个或多个处理机共用一个主存储器的并行体系结构。每一个处理机都可以把信息存入主存储器,或从中取出信息。处理机之间的通信通过访问共享存储器来实现。
之前的存储方式,都是在启动的时候,通过volume的方式来挂载到物理机上的某个磁盘上。但是这样子是不是数据只存放在单个物理机上,别的节点无法获取到数据呢?当然了,我们也可以通过NFS的方式,共享指定目录,亦或者通过NAS的方式。都可以,毕竟条条大路通罗马嘛,虽然我们有很多种方式可以实现,那么既然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只能绑定一种后端存储服务。
更多推荐
所有评论(0)