gpt4 book ai didi

kubernetes - K8S PersistenVolume 和 PersistentVolumeClaim

转载 作者:行者123 更新时间:2023-12-04 09:24:21 24 4
gpt4 key购买 nike

我在练习k8s关于存储主题。我不明白为什么 step2: PersistentVolume教程配置PersistenVolumeClaim时有不同的存储大小在第 3 步

例如 nfs-0001.yaml, nfs-0002.yaml . storage2Gi 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 是否安全?在 PersistenVolumeClaim yaml?
  • 最佳答案

    您需要了解 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.spec.capacity is user's request for storage, "I want 10 GiB volume". PV.spec.capacity is actual size of the PV. PVC can bind to a bigger PV when there is no smaller available PV, so the user can get actually more than he wants.



    同样,动态供应通常以更大的 block 工作。因此,如果用户在 PVC 中请求 0.5GiB,他将获得 1GiB PV,因为这是 AWS 可以预置的最小 PV。

    这没有什么错。另外,您不应该在 PVC 大小中放置任何随机数,它应该根据您的应用需要和缩放比例进行计算。

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

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com