【Kubernetes(K8S)】學習記錄三:rancher清理

什麼時候會用到清理節點?

將節點添加到集羣時後,會創建容器、虛擬網絡接口等資源和證書、配置文件。
從集羣中正常刪除節點時(如果處於Active狀態),將自動清除這些資源,並且只需重新啓動節點即可。
當節點無法訪問且無法使用自動清理,或者異常導致節點脫離集羣后,如果需要再次將節點加入集羣,那麼需要手動進行節點初始化操作。

重新部署集羣前操作:清理節點

 # 停止服務
systemctl  disable kubelet.service
 systemctl  disable kube-scheduler.service
 systemctl  disable kube-proxy.service
 systemctl  disable kube-controller-manager.service
 systemctl  disable kube-apiserver.service

 systemctl  stop kubelet.service
 systemctl  stop kube-scheduler.service
 systemctl  stop kube-proxy.service
 systemctl  stop kube-controller-manager.service
 systemctl  stop kube-apiserver.service

 # 刪除所有容器
 docker rm -f $(docker ps -qa)

 # 刪除所有容器卷
 docker volume rm $(docker volume ls -q)

 # 卸載mount目錄
 for mount in $(mount | grep tmpfs | grep '/var/lib/kubelet' | awk '{ print $3 }') /var/lib/kubelet /var/lib/rancher; do umount $mount; done
 
 # 備份目錄
 mv /etc/kubernetes /etc/kubernetes-bak-$(date +"%Y%m%d%H%M")
 mv /var/lib/etcd /var/lib/etcd-bak-$(date +"%Y%m%d%H%M")
 mv /var/lib/rancher /var/lib/rancher-bak-$(date +"%Y%m%d%H%M")
 mv /opt/rke /opt/rke-bak-$(date +"%Y%m%d%H%M")

 # 刪除殘留路徑
 rm -rf /etc/ceph \
      /etc/cni \
      /opt/cni \
      /run/secrets/kubernetes.io \
      /run/calico \
      /run/flannel \
      /var/lib/calico \
      /var/lib/cni \
      /var/lib/kubelet \
      /var/log/containers \
      /var/log/pods \
      /var/run/calico

 # 清理網絡接口
 network_interface=`ls /sys/class/net`
 for net_inter in $network_interface;
 do
   if ! echo $net_inter | grep -qiE 'lo|docker0|eth*|ens*';then
     ip link delete $net_inter
   fi
 done

 # 清理殘留進程
 port_list='80 443 6443 2376 2379 2380 8472 9099 10250 10254'

 for port in $port_list
 do
   pid=`netstat -atlnup|grep $port |awk '{print $7}'|awk -F '/' '{print $1}'|grep -v -|sort -rnk2|uniq`
   if [[ -n $pid ]];then
     kill -9 $pid
   fi
 done

 pro_pid=`ps -ef |grep -v grep |grep kube|awk '{print $2}'`

 if [[ -n $pro_pid ]];then
   kill -9 $pro_pid
 fi

 # 清理Iptables表
 ## 注意:如果節點Iptables有特殊配置,以下命令請謹慎操作
 sudo iptables --flush
 sudo iptables --flush --table nat
 sudo iptables --flush --table filter
 sudo iptables --table nat --delete-chain
 sudo iptables --table filter --delete-chain

 systemctl restart docker
 mount --make-shared /

清理完成後,重新在主節點上執行安裝rancher即可

docker run -d --restart=unless-stopped -p 80:80 -p 443:443 rancher/rancher:stable
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章