0

在 Kubernetes 的上下文中,我遇到了这些术语Block StorageFile StorageObject Storage我不明白它们是如何在容器中真正使用(安装)的。我有几个问题,

  1. 这些都是由原始块设备支持的存储类型吗?
  2. 一个术语是Block Storage用来表示块设备的逻辑抽象吗?
  3. 是否Block Storage像我们在 linux 上挂载文件系统一样挂载到容器内的路径?这也暗示了是否Block Storage是格式化文件系统的问题?
  4. 如何Object Storage呈现给容器?容器如何使用它?它是否安装在路径上?
  5. 如何File Storage呈现给容器?容器如何使用它?它是否安装在路径上?
  6. 使用这 3 种存储类型的 3 个示例场景是什么?
4

1 回答 1

1

块存储由块设备支持。它可以是物理磁盘,也可以是网络连接设备(iSCSI、FC 或 AWS EBS 卷),甚至是 Ceph RBD。在大多数情况下,Pod 不需要使用原始块设备(Ceph、Portworx 等 Kube 原生存储除外),Kubernetes 而是在其之上创建文件系统并将其挂载到 Pod 中。块存储的主要特点是在大多数情况下它是只读的(RWO),这意味着它可以只读方式安装到单个 pod。

文件存储由文件系统支持。它可以是本地文件系统,如 hostPath,也可以是网络共享,如 NFS。在这种情况下,Kubernetes 可以直接将其挂载到 pod 中,而无需任何额外准备。NFS 的主要特点是它可以以读写方式挂载(RWX),这意味着它可以以读写方式挂载到许多 pod。此外,一个节点上的文件系统可以附加到该特定节点上的许多 pod。

可以将对象存储想象为 HTTP(S) 上的文件(AWS S3、GCP GCS、Azure Blob 存储、Ceph RGW、Minio)。没有官方 Kubernetes 支持的方式来在 pod 中挂载对象存储,但是有一些肮脏的解决方法,比如 s3fs、Ganesha NFS 和其他可能的方法。在大多数情况下,您将使用提供商特定的库直接从您的应用程序中使用对象存储,这就是它的工作方式。

于 2021-01-24T09:54:20.420 回答