K8S PersistenVolume 和 PersistentVolumeClaim
K8S PersistenVolume and PersistentVolumeClaim
我正在练习 k8s 存储主题。不明白为什么教程在step3
中配置PersistenVolumeClaim
时step2:PersistentVolume
的存储大小不一样
例如nfs-0001.yaml, nfs-0002.yaml
。 storage
是 2Gi 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
在哪里?
- 如果不使用。在
PersistenVolumeClaim
yaml 中将任意数字放入 storage
是否安全?
您需要了解 PV 和 PVC 之间的区别。 PVC 是一种存储声明,它在某些时候可供应用程序使用,而不是实际分配的卷大小。
PV 是当时在磁盘上分配并可供使用的实际卷。为了使用这些 PV,用户需要创建 PersistentVolumeClaims,这不过是对 PV 的请求。声明必须指定访问模式和存储容量,一旦创建声明,PV 将自动绑定到此声明。
在您的情况下,您的 PV 大小分别为 5 GB 和 3 GB,并且您已经启动了两个分别具有 3 GB 和 1 GB 的 PVC accessmode: ReadWriteOnce
,这意味着只能有一个 PV 附加到一个PVC。
现在可用的 PV 容量大于请求的容量,因此它将更大的 PV 分配给 PVC。
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.
同样,动态配置通常以更大的块工作。因此,如果用户在 PVC 中请求 0.5GiB,他将获得 1 GiB PV,因为这是 AWS 可以提供的最小值。
没有错。另外,你不应该在 PVC 大小中输入任何随机数,它应该根据你的应用需要和缩放比例很好地计算。
我正在练习 k8s 存储主题。不明白为什么教程在step3
中配置PersistenVolumeClaim
时step2:PersistentVolume
的存储大小不一样
例如nfs-0001.yaml, nfs-0002.yaml
。 storage
是 2Gi 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
在哪里?- 如果不使用。在
PersistenVolumeClaim
yaml 中将任意数字放入storage
是否安全?
您需要了解 PV 和 PVC 之间的区别。 PVC 是一种存储声明,它在某些时候可供应用程序使用,而不是实际分配的卷大小。
PV 是当时在磁盘上分配并可供使用的实际卷。为了使用这些 PV,用户需要创建 PersistentVolumeClaims,这不过是对 PV 的请求。声明必须指定访问模式和存储容量,一旦创建声明,PV 将自动绑定到此声明。
在您的情况下,您的 PV 大小分别为 5 GB 和 3 GB,并且您已经启动了两个分别具有 3 GB 和 1 GB 的 PVC accessmode: ReadWriteOnce
,这意味着只能有一个 PV 附加到一个PVC。
现在可用的 PV 容量大于请求的容量,因此它将更大的 PV 分配给 PVC。
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.
同样,动态配置通常以更大的块工作。因此,如果用户在 PVC 中请求 0.5GiB,他将获得 1 GiB PV,因为这是 AWS 可以提供的最小值。
没有错。另外,你不应该在 PVC 大小中输入任何随机数,它应该根据你的应用需要和缩放比例很好地计算。