在前两篇文章中,创建了Disk + PV + PVC + POD 方案后,并且进入POD中增加文件。
但是,当预定的文件夹已经被占用满之后,如何在不丢失旧文件,及不影响Pod的正常运行情况下,如何处理增加文件夹容量呢?
例如:在创建一个简单的 txt文件时,就出现了 sh: write error: No space left on device 错误消息。
在AKS的官方文档中,介绍了使用 kubectl patch pvc指令来修改Storage Size,此处根据文档指引进行修改。 引用文档地址:https://docs.azure.cn/zh-cn/aks/azure-disk-csi#resize-a-persistent-volume-without-downtime
##示例指令: ## Windows 窗口 kubectl patch pvc test-pvc-001 --type merge --patch '{\"spec\": {\"resources\": {\"requests\": {\"storage\": \"300Gi\"}}}}' ## 或其他: kubectl patch pvc test-pvc-001 --type merge --patch '{"spec": {"resources": {"requests": {"storage": "300Gi"}}}}'
kubectl get pvc kubectl get pv
PS: 需要查看挂载在POD后,文件夹的使用情况,请使用:kubectl exec -it <mypod-pv-pvc-test> -- df -h </mnt/testazure>
执行:kubectl patch <pvc test-pvc-001> --type merge --patch '{\"spec\": {\"resources\": {\"requests\": {\"storage\": \"300Gi\"}}}}'
PS: 在没有对JSON内容中引号(")进行转换时,报错:Error from server (BadRequest): error decoding patch: invalid character 's' looking for beginning of object key string
查看PV, PVC中的Capacity(容量)是否修改为300Gi。并且查看AKS 门户上的Disk资源,是否已经修改到300Gi。
查看POD中,Mount目录的使用情况:kubectl exec -it <mypod-pv-pvc-test> -- df -h </mnt/testazure>
修改成功。容量增大!
目前不支持收缩PVC。 尝试修补大小小于当前大小的现有 PVC 会导致以下错误消息:The persistentVolumeClaim "pvc-xxxxxxxx" is invalid: spec.resources.requests.storage: Forbidden: field can not be less than previous value.
在不停机的情况下,调整永久性卷的大小 : https://docs.azure.cn/zh-cn/aks/azure-disk-csi#resize-a-persistent-volume-without-downtime