我正在练习关于存储主题的 k8s。不明白为什么step2: PersistentVolume 教程在step3中配置PersistenVolumeClaim时存储大小不一样

例如 nfs-0001.yaml, nfs-0002.yamlstorage2Gi and 5Gi

apiVersion: v1
kind: PersistentVolumemetadata:
  name: nfs-0001
spec:
  capacity:
    storage: 2Gi
  accessModes:
    - ReadWriteOnce
    - ReadWriteMany
  persistentVolumeReclaimPolicy: Recycle
  nfs:
    server: 172.17.0.7
    path: /exports/data-0001
apiVersion: v1
kind: PersistentVolume
metadata:  name: nfs-0002
spec:
  capacity:
    storage: 5Gi
  accessModes:
    - ReadWriteOnce
    - ReadWriteMany
  persistentVolumeReclaimPolicy: Recycle
  nfs:
    server: 172.17.0.7
    path: /exports/data-0002

步骤 3 中的示例:pvc-mysql.yaml, pvc-http.yaml
kind: PersistentVolumeClaim
apiVersion: v1metadata:
  name: claim-mysql
spec:
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 3Gi
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: claim-http
spec:
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 1Gi

当我检查 pv and pvc
master $ kubectl get pvc
NAME          STATUS    VOLUME     CAPACITY   ACCESS MODES   STORAGECLASS   AGE
claim-http    Bound     nfs-0001   2Gi        RWO,RWX                       17m
claim-mysql   Bound     nfs-0002   5Gi        RWO,RWX                       17m
master $ kubectl get pv
NAME       CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS    CLAIM                 STORAGECLASS   REASON    AGE
nfs-0001   2Gi        RWO,RWX        Recycle          Bound     default/claim-http        19m
nfs-0002   5Gi        RWO,RWX        Recycle          Bound     default/claim-mysql        19m
1Gi and 3Gi 都没有显示在终端中。

问题:
  • 1Gi and 3Gi 在哪里?
  • 如果不使用它们。将任意数字放入 storage yaml 中的 PersistenVolumeClaim 是否安全?
  • 最佳答案

    您需要了解 PV 和 PVC 之间的区别。 PVC 是一种存储声明,它在某些时候可供应用程序使用,而不是实际分配的卷大小。

    PV 是当时在磁盘上分配并准备使用的实际卷。为了使用这些 PV,用户需要创建 PersistentVolumeClaims 这只不过是对 PV 的请求。声明必须指定访问模式和存储容量,一旦创建声明,PV 将自动绑定(bind)到此声明。

    在您的情况下,您的 PV 大小分别为 5 GB 和 3 GB,并且您已经使用 accessmode: ReadWriteOnce 分别启动了两个 3 GB 和 1 GB 的 PVC,这意味着只能将一个 PV 附加到一个 PVC。

    现在可用 PV 的容量大于请求的容量,因此它为 PVC 分配了更大的 PV。



    类似地,动态配置通常以更大的块工作。因此,如果用户在 PVC 中要求 0.5GiB,他将获得 1 GiB PV,因为这是 AWS 可以提供的最小 PV。

    没有什么不对的。此外,您不应在 PVC 尺寸中添加任何随机数,应根据您的应用需求和比例进行计算。

    关于kubernetes - K8S PersistenVolume 和 PersistentVolumeClaim,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54799380/

    10-12 17:32