在 Kubernetes (K8s) 中,PV (PersistentVolume)、SC (StorageClass) 和 PVC (PersistentVolumeClaim) 是用于管理持久存储的重要概念,它们之间的关系如下:
1.PersistentVolume (PV):
- PV 是集群中的一块持久存储资源,可以是实际的存储设备,如磁盘或云存储卷,也可以是集群中的网络存储服务,如 NFS、iSCSI 等。
- PV 独立于 Pod 存在,而且可以在不同的 Pod 之间共享和重用。
- PV 的属性包括容量、访问模式(例如,ReadWriteOnce、ReadOnlyMany、ReadWriteMany)、存储类、状态(可用、已绑定、已释放等)等。
2. StorageClass (SC):
- StorageClass 是定义 PV 动态供应的方式,它是管理员定义的存储配置模板。
- SC 允许管理员定义存储的类型(例如,快速 SSD、普通磁盘等)、提供商(例如,AWS、Azure、GCP)、复制策略、备份策略等。
- PVC 可以引用 SC 来请求动态供应的 PV,这意味着管理员无需手动创建 PV,而是根据 PVC 的请求动态创建 PV。
3. PersistentVolumeClaim (PVC):
- PVC 是 Pod 对 PV 的请求,用于声明 Pod 所需的持久存储资源。
- Pod 可以通过 PVC 来声明所需的存储资源,而无需关心存储的实际配置细节。
- PVC 可以指定所需的存储容量和访问模式,并且可以引用特定的 StorageClass。
关系:
- Pod 通过 PVC 来请求持久存储资源。
- PVC 通过引用特定的 SC 来请求 PV 的动态供应,或者通过引用现有的 PV 来静态绑定 PV。
- PV 可以由管理员手动创建,也可以由 SC 动态创建以满足 PVC 的请求。
综上所述:
这些对象之间的关系和流程可以帮助 Kubernetes 用户方便地管理和使用持久存储资源,同时提供了灵活性和可扩展性。