k8s架构设计之存储设计

当我们使用k8s创建服务的时候,需要使用磁盘进行存储。k8s作为分布式系统,是怎样进行进行存储管理的呢?实际上k8s的存储方案分为两种:一.静态存储 二.动态存储

为了方便,本文主要以nfs来讲解

一.静态存储
当我们一个服务使用固定的存储空间的时候,可以通过创建存储卷pv,并创建存储卷申请pvc即可实现。具体是在yaml中手动定义pv,pvc。那么该怎么理解pv和pvc呢?

 首先来通俗的讲一下pv和pvc的概念。

我们先想一个场景。当我们使用k8s创建一个服务的时候,服务的数据最终还是会存储到物理磁盘上的。但是作为pod,我们不太想自己关心存储的细节。例如数据是否存储在每一个pod对应的node的硬盘上,还是存储在某一个网络节点的网络磁盘上;我们不想关心异构系统的使用了什么样的文件系统;文件系统的管理是块管理还是文件管理。再比如:每次创建service的时候我们也不想关心数据的存放路径和对硬盘使用的大小限制等。为了满足上述需求,方案上使用了卷的概念来实现。

k8s支持的卷类型可以分为持久卷和非持久卷(pv).其中持久卷就是可以一直存在的。k8s支持的卷类型如下:

k8s支持的volume类型
  • emptyDir
  • hostPath
  • gcePersistentDisk
  • awsElasticBlockStore
  • nfs
  • iscsi
  • fc (fibre channel)
  • flocker
  • glusterfs
  • rbd
  • cephfs
  • git

猜你喜欢

转载自blog.csdn.net/jiao_zg/article/details/130945463