溫馨提示×

如何卸載CentOS上的K8S

小樊
54
2025-09-28 19:26:03
欄目: 智能運維

如何在CentOS上徹底卸載Kubernetes(K8s)

1. 停止Kubernetes相關服務

首先,停止所有正在運行的Kubernetes組件服務,避免卸載過程中出現文件占用或進程沖突:

sudo systemctl stop kubelet
sudo systemctl stop kube-apiserver
sudo systemctl stop kube-controller-manager
sudo systemctl stop kube-scheduler
sudo systemctl stop kube-proxy

說明kubelet是Kubernetes節點代理,負責與Master節點通信;其他服務為控制平面組件,需全部停止。

2. 重置Kubernetes集群狀態(可選但推薦)

使用kubeadm reset命令清理Kubernetes集群的配置和數據(如etcd數據庫、證書、Pod數據等),恢復節點到未加入集群的狀態:

sudo kubeadm reset --force

說明--force參數用于強制執行重置(若集群處于異常狀態),避免交互式確認。

3. 卸載Kubernetes軟件包

通過CentOS的包管理器yum(或dnf,CentOS 8+)卸載Kubernetes核心組件及依賴:

sudo yum remove -y kubeadm kubelet kubectl kubernetes-cni kube*

說明kubeadm用于集群部署,kubelet為節點代理,kubectl為命令行工具,kubernetes-cni為容器網絡接口驅動;kube*會匹配并卸載所有以"kube"開頭的軟件包。

4. 刪除Kubernetes配置文件與數據目錄

徹底清除Kubernetes的配置文件、證書及數據存儲目錄,防止殘留信息影響后續重新部署:

sudo rm -rf /etc/kubernetes/          # 控制平面配置(如kube-apiserver.yaml、kube-controller-manager.yaml)
sudo rm -rf /var/lib/etcd/            # etcd數據庫(存儲集群狀態,默認路徑)
sudo rm -rf /var/lib/kubelet/         # kubelet數據(如Pod卷、鏡像緩存)
sudo rm -rf $HOME/.kube/              # 用戶級kubeconfig文件(默認路徑)

說明/etc/kubernetes/包含集群配置,/var/lib/etcd/存儲集群狀態,/var/lib/kubelet/存儲節點數據,~/.kube/存儲用戶訪問集群的憑證。

5. 清理CNI網絡配置與插件

Kubernetes依賴CNI(容器網絡接口)實現Pod間網絡通信,需刪除CNI配置文件及插件目錄:

sudo rm -rf /etc/cni/net.d/           # CNI網絡配置文件(如flannel、calico的配置)
sudo rm -rf /opt/cni/bin/             # CNI插件二進制文件(如flannel、calico的可執行文件)

說明:若使用其他CNI插件(如Calico、Cilium),需確保刪除對應插件的數據目錄(如/var/lib/calico/)。

6. (可選)卸載容器運行時(如Docker/Containerd)

若不再需要容器運行時(Kubernetes依賴容器運行時啟動Pod),可進一步卸載:

  • 卸載Docker
    sudo systemctl stop docker
    sudo yum remove -y docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine
    sudo rm -rf /var/lib/docker         # Docker數據目錄(存儲鏡像、容器、卷)
    
  • 卸載Containerd
    sudo systemctl stop containerd
    sudo yum remove -y containerd
    sudo rm -rf /var/lib/containerd     # Containerd數據目錄
    

說明:Docker是CentOS上常用的容器運行時,若使用Containerd(Kubernetes原生運行時),需替換對應命令。

7. 清理iptables規則(可選但推薦)

Kubernetes會修改iptables規則以實現網絡轉發,卸載后需清理殘留規則,避免影響系統網絡:

sudo iptables -F && sudo iptables -X && sudo iptables -t nat -F && sudo iptables -t nat -X && sudo iptables -t mangle -F && sudo iptables -t mangle -X && sudo iptables -P FORWARD ACCEPT

說明-F清空規則,-X刪除自定義鏈,-P FORWARD ACCEPT設置FORWARD鏈默認策略為ACCEPT(避免網絡中斷)。

8. 重啟系統(可選但推薦)

重啟系統以應用所有更改,確保系統恢復到干凈狀態:

sudo reboot

注意事項

  • 卸載前請備份重要數據(如etcd中的集群狀態、容器鏡像);
  • 若集群由kubeadm部署,kubeadm reset會自動清理大部分集群數據;
  • 若使用其他CNI插件(如Calico),需參考插件文檔清理對應數據;
  • 卸載后建議檢查系統日志(journalctl -xe)確認無殘留進程。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女