在k8s中经常会遇到挂载存储容量满了的情况,之前的方案是需要用户解挂存储,线下扩容后再重新挂载回来,那么这将导致服务的中断。在k8s 1.16以后,存储扩容(resize)进入了beta阶段,已经可以在生产环境使用了。
整个扩容的过程如下所示:
CSI-Resizer会一直watch pvc的变化,如果发现pvc的size发送了变化,会比较和pv的大小,如果发现大于当前绑定pv的size,会执行resizeVolume方法。在resizeVolume方法中首先会标记pvc状态为resizing,然后调用CSI-plugin的ControllerExpandVolume方法,它依赖各种存储的实现,如果是咋阿里云场景中,会调用存储扩容接口。扩容成功后会更新pv的size,并且pvc的状态被标记为FileSystemResizePending,意思就是等待文件系统扩容。kubelet也会一直watch pvc的状态,发现pvc的size小于pv的size,便会调用CSI-plugin的扩容接口NodeExpandVolume,resizefs扩容文件系统,最后向k8s apiserver发送FileSystemResizeSuccessful事件并且更新pvc status里面的size大小,完成扩容。
页面更新:2024-05-21
本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828
© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号