Create a file named k8s-reset.sh in directory ~/Downloads/.tmp/
lwk@qwfys:~$ touch ~/Downloads/.tmp/k8s-reset.sh
lwk@qwfys:~$ chmod +x ~/Downloads/.tmp/k8s-reset.sh
lwk@qwfys:~$ ll ~/Downloads/.tmp/k8s-reset.sh
-rwxrwxr-x 1 lwk lwk 206 May 14 10:24 /home/lwk/Downloads/.tmp/k8s-reset.sh*
The content of the file b.sh is as follows
#!/bin/bash
kubeadm reset -f
systemctl stop kubelet
systemctl stop docker
rm -rf /var/lib/cni/
rm -rf /var/lib/kubelet/*
rm -rf /etc/cni/
ip link delete cni0
ip link delete flannel.1
systemctl start docker
We will use the host name in the following commands. We need to configure the mapping between the host name and the ip address in the host file. The contents of the host file are as follows.
lwk@qwfys:~$ cat /etc/hosts
127.0.0.1 localhost
127.0.1.1 qwfys
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
192.168.3.80 inner80.xtwj.com
192.168.3.81 inner81.xtwj.com
192.168.3.82 inner82.xtwj.com
192.168.3.83 inner83.xtwj.com
192.168.3.84 inner84.xtwj.com
192.168.3.85 inner85.xtwj.com
lwk@qwfys:~$
Next, we will perform the batch tasks shown in file ~/Downloads/.tmp/k8s-reset.sh on multiple hosts.
lwk@qwfys:~$ for index in {80..85};do ssh root@inner$index.xtwj.com "/bin/bash -s" < Downloads/.tmp/k8s-reset.sh;done
eg 1
lwk@qwfys:~$ for index in {80..82};do ssh root@inner$index.xtwj.com "echo xtwj$index; ip a";done
xtwj80
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 52:54:00:0a:68:a0 brd ff:ff:ff:ff:ff:ff
inet 192.168.3.80/24 brd 192.168.3.255 scope global noprefixroute dynamic eth0
valid_lft 76065sec preferred_lft 76065sec
inet6 fe80::45e0:ec97:658d:d603/64 scope link noprefixroute
valid_lft forever preferred_lft forever
3: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default
link/ether 02:42:34:6d:a4:b7 brd ff:ff:ff:ff:ff:ff
inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
valid_lft forever preferred_lft forever
xtwj81
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 52:54:00:96:1e:cc brd ff:ff:ff:ff:ff:ff
inet 192.168.3.81/24 brd 192.168.3.255 scope global noprefixroute dynamic eth0
valid_lft 57021sec preferred_lft 57021sec
inet6 fe80::45e0:ec97:658d:d603/64 scope link noprefixroute
valid_lft forever preferred_lft forever
3: docker0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default
link/ether 02:42:53:6a:80:c1 brd ff:ff:ff:ff:ff:ff
inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
valid_lft forever preferred_lft forever
inet6 fe80::42:53ff:fe6a:80c1/64 scope link
valid_lft forever preferred_lft forever
13: vetha5435cb@if12: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master docker0 state UP group default
link/ether da:94:e1:bf:e8:c7 brd ff:ff:ff:ff:ff:ff link-netnsid 0
inet6 fe80::d894:e1ff:febf:e8c7/64 scope link
valid_lft forever preferred_lft forever
xtwj82
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 52:54:00:2f:0d:b7 brd ff:ff:ff:ff:ff:ff
inet 192.168.3.82/24 brd 192.168.3.255 scope global noprefixroute dynamic eth0
valid_lft 73607sec preferred_lft 73607sec
inet6 fe80::45e0:ec97:658d:d603/64 scope link noprefixroute
valid_lft forever preferred_lft forever
3: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default
link/ether 02:42:4a:9f:2f:18 brd ff:ff:ff:ff:ff:ff
inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
valid_lft forever preferred_lft forever
inet6 fe80::42:4aff:fe9f:2f18/64 scope link
valid_lft forever preferred_lft forever
lwk@qwfys:~$
Tips: The part of "echo xtwj$index; ip a"
must be enclosed in brackets, otherwise, the command will only be executed locally, not on the remote host.