【问题标题】:Kubernetes Volume, PersistentVolume, PersistentVolumeClaimKubernetes 卷、持久卷、持久卷声明
【发布时间】:2019-12-16 22:25:14
【问题描述】:

我使用 Kubernetes 已经有一段时间了,但仍然经常对 Volume、PersistentVolume 和 PersistemtVolumeClaim 感到困惑。如果有人能简要总结一下它们的区别,那就太好了。

【问题讨论】:

  • 正如标签所说,“KUBERNETES 问题必须与开发人员相关。”这意味着它们必须与编程问题有关,而不是与操作系统有关。
  • 这些是 Kubernetes 中的技术术语,但在 VolumesPersistent Volumes 上都有相当广泛的官方文档。

标签: kubernetes


【解决方案1】:

Volume - 要让 pod 引用外部存储,它需要卷规格。该卷可以来自 configmap、secrets、persistantvolumeclaim、hostpath 等

PeristentVolume - 它表示可用的存储。云提供商的插件可以创建此资源。

PeristentVolumeClaim - 声明特定资源,如果命名空间中的持久卷符合声明要求,则声明将绑定到该 Peristentvolume

此时未使用此 PVC/PV。然后在 Pod 规范中,Pod 使用声明作为卷,然后将存储附加到 Pod

【讨论】:

    【解决方案2】:

    这些都在 Kubernetes 应用程序上下文中。为了让应用程序在不同的 Kubernetes 平台之间保持可移植性,最好将基础设施从应用程序中抽象出来。在这里,我将解释属于 Application config 以及 Platform config 的 Kubernetes 对象。如果您的应用程序在两者上运行,例如GCP 和 AWS,您将需要两组平台配置,一组用于 GCP,一组用于 AWS。

    应用程序配置

    音量

    一个 pod 可以挂载卷。卷的来源可以是不同的东西,例如ConfigMap、Secret 或 PersistentVolumeClaim

    PersistentVolumeClaim

    PersistentVolumeClaim 表示特定 PersistentVolume 实例的声明。出于可移植性考虑,此声明可以针对特定的 StorageClass,例如固态硬盘。

    平台配置

    存储类

    StorageClass 表示具有特定属性的 PersistentVolume type。它可以是例如固态硬盘。但是每个平台上的 StorageClass 都不同,例如AWS、Azure 上的一个定义,GCP 或 Minikube 上的另一个定义。

    持久卷

    这是平台上的特定卷。在平台上可能会有所不同,例如awsElasticBlockStore 或 gcePersistentDisk。这是保存实际数据的实例。

    Minikube 示例

    请参阅Configure a Pod to Use a PersistentVolume for Storage,了解有关如何将 PersistentVolumeStorageClassVolume 用于使用 Minikube 和 hostPath.

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-08-11
      • 2021-03-28
      • 2021-11-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-08
      • 2019-02-01
      相关资源
      最近更新 更多