我已经在Kubernetes上工作了一段时间了,但是仍然经常对Volume,PersistentVolume和PersistemtVolumeClaim感到困惑。如果有人可以简要总结它们之间的区别,那将是很好的。
答案 0 :(得分:2)
卷-要使Pod引用外部存储,它需要卷规格。该卷可以来自configmap,秘密,持久性卷声明,主机路径等
PeristentVolume-它表示可用的存储。云提供商的插件可以创建此资源。
PeristentVolumeClaim-这声明了特定的资源,并且如果持久卷在命名空间中可用,则符合声明要求,那么声明将与该Peristentvolume绑定
目前未使用此PVC / PV。然后在Pod规范中,pod将Claim用作卷,然后将存储连接到Pod
答案 1 :(得分:0)
这些全都在Kubernetes应用程序上下文中。为了保持应用程序在不同Kubernetes平台之间的可移植性,最好从应用程序中删除基础架构。在这里,我将解释属于 Application config 和 Platform config 的Kubernetes对象。如果您的应用程序同时在例如GCP和AWS,您将需要两套平台配置,一套用于GCP,一套用于AWS。
吊舱可以装载卷。卷的来源可以是不同的事物,例如ConfigMap,Secret或 PersistentVolumeClaim
PersistentVolumeClaim代表特定PersistentVolume实例的声明。对于可移植性,此声明可以针对特定的 StorageClass ,例如SSD。
StorageClass表示具有特定属性的PersistentVolume 类型。可以是SSD。但是StorageClass在每个平台上都不同,例如一个在AWS,Azure上的定义,另一个在GCP或Minikube上的定义。
这是平台上的特定卷。并且在平台上可能有所不同,例如awsElasticBlockStore或gcePersistentDisk。这是保存实际数据的实例。
有关使用Minikube和Pod的Pod如何使用 PersistentVolume , StorageClass 和 Volume 的完整示例,请参见Configure a Pod to Use a PersistentVolume for Storage。 hostPath 。