在卷未附加到节点或 Pod 时即被视为脱机。两种类型的集群(主管集群Tanzu Kubernetes 集群)支持脱机卷扩展。

前提条件

确保将 vSphere 环境升级到支持脱机卷扩展的适当版本。请参见vSphere with Tanzu 中的卷扩展功能

过程

  1. 使用存储类创建持久卷声明 (PVC)。
    1. 使用以下 YAML 清单作为示例来定义 PVC。
      在该示例中,所请求存储的大小为 1 Gi。
      apiVersion: v1
      kind: PersistentVolumeClaim
      metadata:
        name: example-block-pvc
      spec:
        accessModes:
        - ReadWriteOnce
        resources:
          requests:
            storage: 1Gi
        storageClassName: example-block-sc
    2. 将该 PVC 应用到 Kubernetes 集群。
      kubectl apply -f example-block-pvc.yaml 
  2. 修补 PVC 以增加其大小。
    如果 PVC 尚未连接到节点或被 Pod 使用,则使用以下命令修补 PVC。在此示例中,请求的存储增加量为 2 Gi。
    kubectl patch pvc example-block-pvc -p '{"spec": {"resources": {"requests": {"storage": "2Gi"}}}}'
    此操作触发与该 PVC 关联的卷中的扩展。
  3. 确认卷大小已增加。
    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
  4. 创建 pod 以使用 PVC。
    当 pod 使用 PVC 时,文件系统将得到扩展。
  5. 确认 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 中监控持久卷