我有一个来自本文介绍postgresql通过kubernetes状态集的持久卷的例子
kind: PersistentVolume
apiVersion: v1
metadata:
name: pgdata
labels:
app: postgres
type: local
spec:
storageClassName: sc001
capacity:
storage: 1Gi
accessModes:
- ReadWriteOnce
hostPath:
path: "/var/data"这似乎行得通,但在逻辑上却有问题。
persistentVolume 或一个storageClass来满足PersistentVolumeClaim的需求。其中PV是静态的,而SC是动态的。我将理解为排他的或一个或另一个,not都是(我认为这在OR的位置上称为NOR )。所以我不明白storageClaseName在这里做什么。有人能帮我理解逻辑吗?type: local & path: "/var/data"意味着卷存在于节点的本地文件系统中,并且它的内容可以在该节点的/var/data目录中找到,如果我想使用其他的东西,那么对于type,需要使用什么值呢?就像供应程序提供的存储一样(在我的例子中是csi.vsphere.vmware.com)?发布于 2022-01-31 20:34:30
希望我问得对。
persistentVolumeClaim总是绑定到persistentVolume,其思想是让一个声明连接到磁盘上,这样pod就可以连接到同一个磁盘上,而不管它部署在哪个节点上。
storageClass是一种自动persistentVolume配置机制,这意味着如果您指定了一个persistentVolumeClaim,并且配置了一个默认的storageClass,它将创建一个persistentVolume并将其附加到persistentVolumeClaim。
您还可以手动创建一个persistentVolume,它将附加到persistentVolumeClaim上(不管是storageClass),但是用数百个storageClass来显示一个大环境,并在每个pvc上维护一个pv。
您还可以指定要将pvc附加到的pv。
type:local配置是节点上的本地卷,它充当pv。在您的示例中,vmware创建一个vmdk文件并将其复制到部署pod的节点。
希望这能帮上忙。
发布于 2022-01-31 21:04:03
Question: So I do not understand what a storageClaseName is doing in here. Can anybody help me out with the logical understanding?storageClaseName将指定持久性卷的类。我将利用一个用例来解释。想象一下,您想要管理您的生产关键应用程序的3种不同类别的存储。黄金,银和青铜。黄金用于生产级关键应用程序,rest用于不太关键的应用程序。现在,您可以根据应用程序的风险级别轻松地为其指定存储类型。例如,我想为我的视频流服务使用黄金类存储,然后我将不得不指定一个storageClassName设置为黄金类的PVC。现在,kubernetes将发现(如果可用)一个PV,它属于黄金类类别,以满足这一要求。如果有一个PV的大小足以满足这个PVC,但不属于黄金类,那么该PV将不会被用来满足这一要求。
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: gold-class-claim
spec:
accessModes:
- ReadWriteOnce
storageClassName: gold-class-storage
....Question: What value would I have to use for type whether I wanted to use something else?请参考以下链接:https://kubernetes.io/docs/concepts/storage/persistent-volumes/#types-of-persistent-volumes
https://serverfault.com/questions/1091771
复制相似问题