最近的服务都放到腾讯云上了,但是最近遇到了一个问题是 Docker 云磁盘满了,部署的适合提示 no space left 等等。
然后我就登录云主机看了下磁盘情况,好家伙:
1 |
ubuntu@VM-0-2-ubuntu:/var/lib/docker/containers$ df |
vdb 这个磁盘就是我的数据盘,里面放了容器数据,现在已经到了 99% 了,一共就 10G。
然后我就去腾讯云控制台搞了下数据盘的扩容,然后直接扩容到了 200G。
但是回过头来看了下磁盘还是 10G,一变不变。
但 fdisk 已经看到变了:
1 |
ubuntu@VM-0-2-ubuntu:/var/lib/docker/containers$ sudo fdisk -l |
这是因为之前的数据被格式化为了 ext4,但是新扩容的部分并没有。
问了腾讯云的工程师,这时候必须要重新格式化才能用上新的容量,没有好的解决方法。
最后的解决方案:
- 将当前节点所有 Pod 驱逐到其他的节点。
- 当前节点退出集群然后配置磁盘,重新操作 mount 和格式化。(但是这里劝别折腾了,终究还是要格式化的。
- 把节点再加回来,这时候可以选重新格式化数据盘,mount 到 /var/lib/docker。
- 再把之前的 Pod 收回到本节点就好了。
完毕。
感觉还是不完善啊,像 Azure Kubernetes 的扩容就方便多了,不用整这么多麻烦事。