使用Kind删除Kubernetes集群时遭遇只读文件系统错误求助
问题:只读文件系统导致Kind集群删除失败
我用Kind测试Kubernetes,创建了名为nodes-test的集群:
vagrant@vagrant:~$ sudo kind get clusters nodes-test
执行sudo kind delete cluster删除集群时报错:
Deleting cluster "kind" ... failed to update kubeconfig: failed to lock config file: open /root/.kube/config.lock: read-only file system ERROR: failed to delete cluster "kind": failed to lock config file: open /root/.kube/config.lock: read-only file system
但检查对应路径并未找到该文件:
vagrant@vagrant:~$ sudo su root@vagrant:/home/vagrant# cd /root root@vagrant:~# cd .kube/ root@vagrant:~/.kube# ls -la total 20 drwxr-xr-x 3 root root 4096 Sep 8 12:07 . drwx------ 6 root root 4096 Sep 8 12:26 .. drwxr-x--- 4 root root 4096 Sep 8 12:00 cache -rw------- 1 root root 5622 Sep 8 11:59 config
kubeconfig文件内容:
apiVersion: v1 clusters: - cluster: certificate-authority-data: ss== server: https://127.0.0.1:44155 name: kind-nodes-test contexts: - context: cluster: kind-nodes-test user: kind-nodes-test name: kind-nodes-test current-context: kind-nodes-test kind: Config preferences: {} users: - name: kind-nodes-test user: client-certificate-data: sss client-key-data: sdasd=
当前网络监听状态:
Netid State Recv-Q Send-Q Local Address:Port Peer Address:PortProcess udp UNCONN 0 0 127.0.0.53%lo:domain 0.0.0.0:* users:(("systemd-resolve",pid=10281,fd=13)) udp UNCONN 0 0 10.0.2.15%eth0:bootpc 0.0.0.0:* users:(("systemd-network",pid=10265,fd=18)) tcp LISTEN 0 4096 127.0.0.53%lo:domain 0.0.0.0:* users:(("systemd-resolve",pid=10281,fd=14)) tcp LISTEN 0 128 0.0.0.0:ssh 0.0.0.0:* users:(("sshd",pid=711,fd=3)) tcp LISTEN 0 4096 127.0.0.1:44155 0.0.0.0:* users:(("docker-proxy",pid=1109,fd=4)) tcp LISTEN 0 128 [::]:ssh [::]:* users:(("sshd",pid=711,fd=4))
更新情况
指定集群名称执行sudo kind delete cluster --name nodes-test仍报错:
vagrant@vagrant:~$ sudo kind delete cluster --name nodes-test Deleting cluster "nodes-test" ... failed to update kubeconfig: failed to lock config file: open /root/.kube/config.lock: read-only file system ERROR: failed to delete cluster "nodes-test": failed to delete nodes: command "docker rm -f -v nodes-test-worker nodes-test-control-plane" failed with error: exit status 1 Command Output: Error response from daemon: container 4cf8b399150fffb9899ff963adacd255fe3b0b7aebdf6feda11ea1646b541340: driver "overlay2" failed to remove root filesystem: unlinkat /var/lib/docker/overlay2/1ba0d047b313dabc396f61cf1f2b3086d5cad05372de37410326d81e02f6130b: read-only file system Error response from daemon: container 8b2fa50dc006191add9b64e89b834a0c952344433e61d1b9795b5c2470bf3e05: driver "overlay2" failed to remove root filesystem: unlinkat /var/lib/docker/overlay2/3a35de9a7ad18fbf3358c0be3d01a51ba7c7558ed49242d659a0e365c58798ae: read-only file system
解决方案
1. 修复只读文件系统挂载
只读挂载是核心问题,先解除只读状态:
- 找出系统中的只读挂载分区:
mount | grep ro - 将对应分区重新挂载为读写模式(示例为根分区,根据实际输出调整):
sudo mount -o remount,rw / - 如果
/var/lib/docker是单独挂载的分区,同样执行:sudo mount -o remount,rw /var/lib/docker
2. 手动清理Kind集群资源
自动删除失败时,手动清理所有关联资源:
(1)删除集群容器
直接用Docker删除集群的节点容器:
sudo docker rm -f nodes-test-worker nodes-test-control-plane
如果集群有更多节点,将所有节点容器名称加入命令。
(2)清理Docker镜像与卷
删除Kind使用的节点镜像(可选,释放存储空间):
sudo docker rmi -f kindest/node:latest
清理无关联的Docker卷:
sudo docker volume prune -f
(3)手动更新kubeconfig
编辑/root/.kube/config,删除以下内容:
clusters段中name: kind-nodes-test的条目contexts段中name: kind-nodes-test的条目users段中name: kind-nodes-test的条目- 若
current-context为kind-nodes-test,可将其改为其他存在的上下文或删除该行
保存文件后,kubeconfig即完成清理。
3. 验证清理结果
检查集群是否已移除:
sudo kind get clusters
确认Docker容器已删除:
sudo docker ps -a
内容的提问来源于stack exchange,提问作者user63898
相关产品推荐
相关产品推荐

