天天看點

K8S有狀态服務-雲盤擴容解決方案

介紹

使用雲盤建立有狀态服務時往往有一個痛點:開始申請雲盤的時候不能準确估計服務能用多大存儲空間,申請的雲盤在服務運作一段時間後空間不夠使用!!

本文介紹容器服務使用雲盤時,如果進行磁盤擴容;

建議在擴容資料盤之前手動建立快照,以備份資料。

雲盤擴容參考文檔:

https://help.aliyun.com/document_detail/25452.html

建立服務

參考動态雲盤服務建立步驟:

# kubectl create -f dynamic.yaml

# kubectl get pod
NAME                             READY     STATUS    RESTARTS   AGE
nginx-dynamic-69f9bd7b8c-hlkxj   1/1       Running   0          29s

# kubectl get pv
NAME                     CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS    CLAIM              STORAGECLASS                  REASON    AGE
d-2ze8enovtwtk8frhdzn0   20Gi       RWO            Retain           Bound     default/disk-ssd   alicloud-disk-ssd-beijing-b             1m
           

目前使用一個20G的SSD雲盤,在雲盤中建立一個臨時檔案:

# kubectl exec nginx-dynamic-69f9bd7b8c-hlkxj df | grep data
/dev/vdc        20511312   45080  19401272   1% /data

# kubectl exec nginx-dynamic-69f9bd7b8c-hlkxj ls /data
lost+found

# kubectl exec nginx-dynamic-69f9bd7b8c-hlkxj touch /data/disk
# kubectl exec nginx-dynamic-69f9bd7b8c-hlkxj ls /data
disk   lost+found    
           

擴容雲盤

1. 停止服務、解除安裝雲盤

删除deploy應用,雲盤會自動解除安裝:

# kubectl delete deploy nginx-dynamic
           

到雲盤控制台檢視雲盤:d-2ze8enovtwtk8frhdzn0 處于待挂載狀态。如果沒有解除安裝成功,可以在控制台執行解除安裝。

2. 在控制台進行擴容

在ECS控制台對應的雲盤資訊行中,點選:更多 -- 磁盤擴容 選項,進行雲盤擴容,參考:

将雲盤的大小從20G擴充到30G,擴容完成即可在控制台看到效果。

3. 擴容檔案系統

選擇一個節點,在控制台上把雲盤到這個節點,并記錄其挂載的裝置名(例如:/dev/vdd);

執行檔案系統擴容:

# e2fsck -f /dev/vdd
# resize2fs /dev/vdd
           

重新建立服務

重新建立服務:

# kubectl create -f dynamic.yaml

# kubectl get pod
NAME                             READY     STATUS    RESTARTS   AGE
nginx-dynamic-69f9bd7b8c-68kqp   1/1       Running   0          7s
           

檢視雲盤大小:

# kubectl exec nginx-dynamic-69f9bd7b8c-68kqp df | grep data
/dev/vdd        30832548   45036  29198264   1% /data
           

驗證資料一緻性:

# kubectl exec nginx-dynamic-69f9bd7b8c-68kqp ls /data
disk    lost+found
           

繼續閱讀