在卷未附加到节点或 Pod 时即被视为脱机。两种类型的集群(主管集群 和 Tanzu Kubernetes 集群)支持脱机卷扩展。
过程
- 使用存储类创建持久卷声明 (PVC)。
- 使用以下 YAML 清单作为示例来定义 PVC。
在该示例中,所请求存储的大小为 1 Gi。
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: example-block-pvc
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
storageClassName: example-block-sc
- 将该 PVC 应用到 Kubernetes 集群。
kubectl apply -f example-block-pvc.yaml
- 修补 PVC 以增加其大小。
如果 PVC 尚未连接到节点或被 Pod 使用,则使用以下命令修补 PVC。在此示例中,请求的存储增加量为 2 Gi。
kubectl patch pvc example-block-pvc -p '{"spec": {"resources": {"requests": {"storage": "2Gi"}}}}'
此操作触发与该 PVC 关联的卷中的扩展。
- 确认卷大小已增加。
kubectl get pv
NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE
pvc-9e9a325d-ee1c-11e9-a223-005056ad1fc1 2Gi RWO Delete Bound default/example-block-pvc example-block-sc 6m44s
注: 在 pod 使用 PVC 之前,PVC 的大小保持不变。
以下示例显示 PVC 大小未更改。如果您描述该 PVC,可以在该 PVC 上看到应用了
FilesystemResizePending
条件。
kubectl get pvc
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
example-block-pvc Bound pvc-9e9a325d-ee1c-11e9-a223-005056ad1fc1 1Gi RWO example-block-sc 6m57s
- 创建 pod 以使用 PVC。
当 pod 使用 PVC 时,文件系统将得到扩展。
- 确认 PVC 的大小已修改。
kubectl get pvc
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
example-block-pvc Bound pvc-24114458-9753-428e-9c90-9f568cb25788 2Gi RWO example-block-sc 2m12s
FilesystemResizePending
条件已从该 PVC 中移除。卷扩展完成。
下一步做什么
vSphere 管理员能够在
vSphere Client 中看到新的卷大小。请参见
在 vSphere Client 中监控持久卷。