image.png
给pod配置存储的流程

  • PV 控制器(PersistentVolume Controller):“以容器构建系统”一节中介绍过,Kubernetes 里所有的控制器都遵循着相同的工作模式——让实际状态尽可能接近期望状态。PV 控制器的期望状态有两个,分别是“所有未绑定的 PersistentVolume 都能处于可用状态”以及“所有处于等待状态的 PersistentVolumeClaim 都能配对到与之绑定的 PersistentVolume”,它内部也有两个相对独立的核心逻辑(ClaimWorker 和 VolumeWorker)来分别跟踪这两种期望状态,可以简单地理解为 PV 控制器实现了 PersistentVolume 和 PersistentVolumeClaim 的生命周期管理职能,在这个过程中,会根据需要调用存储驱动插件的 Provision/Delete 操作。
  • AD 控制器(Attach/Detach Controller):AD 控制器的期望状态是“所有被调度到准备新创建 Pod 的节点,都附加好了要使用的存储;当 Pod 被销毁后,原本运行 Pod 的节点都分离了不再被使用的存储”,如果实际状态不符合该期望,会根据需要调用存储驱动插件的 Attach/Detach 操作。
  • Volume 管理器(Volume Manager):Volume 管理器实际上是 kubelet 的一部分,是 kubelet 中众多管理器的其中一个,它主要是用来支持本节点中 Volume 执行 Attach/Detach/Mount/Unmount 操作。你可能注意到这里不仅有 Mount/Unmount 操作,也出现了 Attach/Detach 操作,这是历史原因导致的,由于最初版本的 Kubernetes 中并没有 AD 控制器,Attach/Detach 的职责也在 kubelet 中完成。现在 kubelet 默认情况下已经不再会执行 Attach/Detach 了,但有少量旧程序已经依赖了由 kubelet 来实现 Attach/Detach 的内部逻辑,所以 kubelet 不得不设计一个—enable-controller-attach-detach参数,如果将其设置为false的话就会重新回到旧的兼容模式上,由 kubelet 代替 AD 控制器来完成 Attach/Detach。

存储类型

块存储

  • 必须挂载,比如阿里云的磁盘,亚马逊的EBS
  • 独享
  • 适用于数据库场景
  • 可以自行选择文件系统
  • 可以自行组Raid0-10
  • 极低时延

    对象存储

    直接存文件,非常便宜,其实应该直接用代码访问,一定要挂载也可以。配置存储网关也可以改造成文件系统。

    文件存储

    就是Aws的efs,阿里云的nas,网络存储,高吞吐

  • 时延相比ebs略高 | 存储产品 | 时延 | 吞吐 | 访问模式 | | —- | —- | —- | —- | | 文件存储NAS | 低时延(毫秒级) | 数百Gbps | 上千个ECS通过POSIX接口并发访问,随机读写。 | | 对象存储OSS | 较低时延(几十毫秒级) | 数百Gbps | 数百万客户端通过Web并发,追加写。 | | 块存储EBS | 极低时延(微秒级) | 数十Gbps | 单ECS通过POSIX接口访问,随机读写。 |

关于阿里云 nas ,ebs,oss的介绍


本文介绍阿里云文件存储NAS与阿里云对象存储OSS、阿里云块存储EBS的区别,帮助您更好地选用阿里云文件存储NAS。
文件存储NAS提供简单、可伸缩弹性的共享文件存储,配合云服务器ECS弹性计算服务构建业务系统。 当您选择使用文件存储NAS、对象存储OSS或块存储EBS部署应用程序时,需要考虑诸多因素。本文介绍文件存储NAS与对象存储OSS、块存储EBS的区别,帮助您更好地进行选择。
K8s存储 - 图2

存储产品 时延 吞吐 访问模式
文件存储NAS 低时延(毫秒级) 数百Gbps 上千个ECS通过POSIX接口并发访问,随机读写。
对象存储OSS 较低时延(几十毫秒级) 数百Gbps 数百万客户端通过Web并发,追加写。
块存储EBS 极低时延(微秒级) 数十Gbps 单ECS通过POSIX接口访问,随机读写。

文件存储NAS和对象存储OSS有什么不同?

文件存储NAS和对象存储OSS的主要区别:您无需修改应用,即可直接像访问本地文件系统一样访问文件存储NAS。文件存储NAS提供高吞吐和高IOPS的同时支持文件的随机读写和在线修改。
对象存储OSS是比较新的存储类型,相对于文件存储目录树的组织形式,对象存储OSS采用扁平的文件组织形式,采用RESTFul API接口访问,不支持文件随机读写,主要适用于互联网架构的海量数据的上传下载和分发。

文件存储NAS和块存储EBS有什么不同?

文件存储NAS相对于块存储EBS的主要区别:文件存储NAS可以同时支持上千个ECS客户端同时共享访问,提供高吞吐量。
块存储EBS是裸磁盘,挂载到ECS后不能被操作系统应用直接访问,需要格式化成文件系统(ext3、ext4、NTFS等)后才能被访问。块存储EBS的优势是性能高、时延低,适合于OLTP数据库、NoSQL数据库等IO密集型的高性能、低时延应用工作负载。但是块存储EBS无法实现容量弹性扩展,单盘最大容量为32TB,并且对共享访问的支持有限,需要配合类Oracle RAC、WSFC Windows故障转移集群等集群管理软件才能进行共享访问。因此,块存储EBS主要还是针对单ECS的高性能,低时延的存储产品