kubeasz
kubeasz copied to clipboard
删除集群报"Device or resource busy"错误
操作系统:ubuntu20.04 磁盘:/var/lib/etcd单独分区 操作命令:
~# docker exec -it kubeasz bash
bash-4.4# ezctl destroy k8s-01
报错内容:
TASK [clean : remove files and dirs] ************************************************************************************************************************
failed: [172.19.41.10] (item=/var/lib/etcd) => {"ansible_loop_var": "item", "changed": false, "item": "/var/lib/etcd", "msg": "rmtree failed: [Errno 16] Device or resource busy: '/var/lib/etcd'"}
failed: [172.19.41.11] (item=/var/lib/etcd) => {"ansible_loop_var": "item", "changed": false, "item": "/var/lib/etcd", "msg": "rmtree failed: [Errno 16] Device or resource busy: '/var/lib/etcd'"}
failed: [172.19.41.12] (item=/var/lib/etcd) => {"ansible_loop_var": "item", "changed": false, "item": "/var/lib/etcd", "msg": "rmtree failed: [Errno 16] Device or resource busy: '/var/lib/etcd'"}
这个错误应该是可以忽略的,我修改了下playbook文件,加了一行ignore_errors: true
bash-4.4# cat roles/clean/tasks/clean_etcd.yml
# to clean 'etcd' nodes
- block:
- name: stop and disable etcd service
service:
name: etcd
state: stopped
enabled: no
ignore_errors: true
- name: remove files and dirs
file: name={{ item }} state=absent
with_items:
- "/var/lib/etcd"
- "/backup/k8s"
- "/etc/systemd/system/etcd.service"
ignore_errors: true
when: "inventory_hostname in groups['etcd']"
同样,如果/var/lib/kubelet
单独分区也会有这个错误,应该忽略掉
另外,移除docker后是不是应该加一个systemctl daemon-reload
命令?不然systemctl status docker
还有内容输出
另外,移除docker后是不是应该加一个
systemctl daemon-reload
命令?不然systemctl status docker
还有内容输出
删除集群后是建议重启机器的