# 番外篇：如何擴充 PV PVC storage size

今日來紀錄下，在GKE上面使用PV、PVE要如何擴展空間

在這篇[論壇文件](https://kubernetes.io/blog/2018/07/12/resizing-persistent-volumes-using-kubernetes/)中，提到了擴展空間的細節，簡要的說：

#### 說明

* Kubernetes v1.11 PV 空間擴充已經支援了，也無需涉及儲存管理、無需刪除重建PV、PVC
* 目前支持擴展功能的磁碟對象有：AWS-EBS，GCE-PD，Azure Disk，Azure File，Glusterfs，Cinder，Portworx、Ceph RBD
* 如需使用此功能，需在`StorageClass`新增此設定`allowVolumeExpansion: true`

#### 擴展程序

* 編輯PVC，擴展所需的新空間大小 spec.resources.requests.storage: 100Gi
* PV將依新設定值擴充空間，但是Pod尚未取得最新擴充後空間
* 進行Pod重啟( delete pod )，經過FileSystem層面擴充程序後，即可獲得真正能使用的空間。

### GKE 案例概念

先準備一個`resizing.yaml`檔案

```yaml
spec:
  accessModes:
  - ReadWriteOnce
  dataSource: null
  resources:
    requests:
      storage: 100Gi  # 原本 50Gi
```

透過`kubectl patch`更新`PVC`

```bash
kubectl patch --patch "$(cat ./resizing.yaml)" pvc-1
# 這麼做是為了方便您，要更新數個以上的 PVC
```

刪除`pod`，擴展實際空間。

```bash
kubectl delete pod -l app=demo-pod
```

以上，大致如此，每個環境不一定完全相同，仍是著重於您的實作面。
