Last active
March 24, 2025 07:53
-
-
Save superseb/06539c6dcd377e118d72bfefdd444f81 to your computer and use it in GitHub Desktop.
Extended Rancher 2 cleanup (backup your data, use at your own risk)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/sh | |
# Backup your data | |
# Use at your own risk | |
# Usage ./extended-cleanup-rancher2.sh | |
# Include clearing all iptables: ./extended-cleanup-rancher2.sh flush | |
docker rm -f $(docker ps -qa) | |
docker rmi -f $(docker images -q) | |
docker volume rm $(docker volume ls -q) | |
for mount in $(mount | grep tmpfs | grep '/var/lib/kubelet' | awk '{ print $3 }') /var/lib/kubelet /var/lib/rancher; do umount $mount; done | |
cleanupdirs="/etc/ceph /etc/cni /etc/kubernetes /opt/cni /opt/rke /run/secrets/kubernetes.io /run/calico /run/flannel /var/lib/calico /var/lib/etcd /var/lib/cni /var/lib/kubelet /var/lib/rancher/rke/log /var/log/containers /var/log/pods /var/run/calico" | |
for dir in $cleanupdirs; do | |
echo "Removing $dir" | |
rm -rf $dir | |
done | |
cleanupinterfaces="flannel.1 cni0 tunl0" | |
for interface in $cleanupinterfaces; do | |
echo "Deleting $interface" | |
ip link delete $interface | |
done | |
if [ "$1" = "flush" ]; then | |
echo "Parameter flush found, flushing all iptables" | |
iptables -F -t nat | |
iptables -X -t nat | |
iptables -F -t mangle | |
iptables -X -t mangle | |
iptables -F | |
iptables -X | |
/etc/init.d/docker restart | |
else | |
echo "Parameter flush not found, iptables not cleaned" | |
fi |
Your shared shell script is effective. I was stuck on this issue for a long time and even asking GPT couldn't solve it. Thank you for sharing.
非常謝謝你~好用!
Thank you @superseb. Your script worked well
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
I highly appreciate you script, but there is one severe problem making it (almost) unusable for me: It removes unrelated docker containers and images.
Somewhere I read the recommendation, to use the "legacy" iptables command instead of the version based on nftables, so I tried. Apparently these tables were never cleaned up. After running the script with "flush" iptables-save showed me a message "Warning: iptables-legacy tables present, use iptables-legacy-save to see them". Very hard to detect. Maybe it would be helpful to flush these tables as well?
(https://v1-15.docs.kubernetes.io/docs/setup/production-environment/tools/kubeadm/install-kubeadm/)