본문 바로가기

리눅스

쿠버네티스 패키지와 설정을 완전히 삭제하는 방법

반응형

쿠버네티스 패키지와 설정을 완전히 삭제하는 방법

쿠버네티스와 관련된 모든 패키지, 설정 파일, 데이터 파일을 제거합니다.

패키지 제거

쿠버네티스 관련 패키지를 제거하기 전에 패키지 업그레이드를 막아놓은 경우 이를 해제해야 합니다.

sudo apt-mark unhold kubelet kubeadm kubectl
sudo apt-get purge -y kubelet kubeadm kubectl
sudo apt-mark unhold containerd
sudo apt-get purge -y containerd

자동으로 설치된 패키지와 의존성 제거

더 이상 필요하지 않은 패키지와 의존성을 제거합니다.

sudo apt-get autoremove -y

설정 및 데이터 파일 삭제

Kubernetes와 관련된 설정 및 데이터 파일을 삭제합니다. 이러한 파일과 디렉토리는 Kubernetes의 설정, 데이터, 로그 등을 포함하고 있습니다.

rm -rf ~/.kube
sudo rm -rf /etc/kubernetes
sudo rm -rf /var/lib/{etcd,kubelet,containerd}
sudo rm -rf /etc/systemd/system/kubelet.service.d
sudo rm -rf /opt/{cni,containerd}

서비스를 다시 로드

서비스 설정이 변경된 경우 systemd를 다시 로드하여 변경 사항을 적용합니다.

sudo systemctl daemon-reload

시스템 재부팅(선택 사항)

시스템의 모든 변경 사항을 적용하고자 할 경우 시스템을 재부팅합니다.

sudo reboot

쿠버네티스 패키지 삭제 스크립트

스크립트를 작성

vim k8s_uninstall.sh
#!/bin/bash

# Exit immediately if a command exits with a non-zero status
set -e

# 패키지를 안전하게 제거하고 "hold" 상태를 해제하는 함수
remove_package() {
    local pkg="$1"
    echo "Unholding and purging package: $pkg"
    sudo apt-mark unhold "$pkg"
    sudo apt-get purge -y "$pkg"
}

# Kubernetes 패키지 제거
remove_package kubelet
remove_package kubeadm
remove_package kubectl

# containerd 패키지 제거
remove_package containerd

# 불필요한 패키지 제거 및 정리
echo "Removing unnecessary packages..."
sudo apt-get autoremove -y

# Kubernetes 구성 및 데이터 디렉토리 제거
echo "Removing Kubernetes configuration and data directories..."
rm -rf ~/.kube
sudo rm -rf /etc/kubernetes/
sudo rm -rf /var/lib/{etcd,kubelet,containerd}
sudo rm -rf /etc/systemd/system/kubelet.service.d
sudo rm -rf /opt/{cni,containerd}

echo "Cleanup completed successfully."

스크립트에 실행 권한을 부여

chmod +x k8s_uninstall.sh

스크립트를 실행

bash k8s_uninstall.sh

 

순서대로 실행하면 Kubernetes 패키지와 설정을 시스템에서 완전히 제거할 수 있습니다.

 

728x90
반응형