본문 바로가기
Come on IT/DevOps

Kubernetes(K8s) 완전 삭제하는 방법

by JONGSKY 2024. 9. 27.
728x90
SMALL

1. 글을 쓰게 된 계기

 

K8s 구축을 온프레미스로 할 예정이다.

그러나 테스트를 위해 설치와 삭제 그리고 재설치 과정을 계속 반복하고 있다.

그래서 완전 서버에서 삭제하는 방법을 정리하고자 한다.

 

2. 완전 삭제 방법

 

1. Pod, Deployment, Service 삭제


먼저 클러스터 내에서 실행 중인 모든 리소스를 삭제합니다.

kubectl delete all --all --namespace=default

 

모든 네임스페이스의 리소스를 삭제하려면 다음과 같이 모든 네임스페이스에 대해 삭제를 진행합니다.

kubectl delete namespace <namespace_name>

 

그리고, 설치한 Helm 차트나 기타 서비스가 있으면 각각 삭제해야 합니다.

 

2. Kubeadm 클러스터 정리


kubeadm으로 설치한 Kubernetes 클러스터라면, 다음 명령어로 클러스터를 재설정합니다. 이 작업은 클러스터 구성 파일을 포함하여 설정을 초기화합니다.

sudo kubeadm reset

 

이 명령은 클러스터의 모든 설정과 상태를 초기화합니다. 완료되면 아래 명령으로 iptables 규칙을 삭제합니다.

sudo iptables -F && sudo iptables -t nat -F && sudo iptables -t mangle -F && sudo iptables -X

 

 

3. Kubelet, Kubectl 및 관련 패키지 삭제


Kubernetes 관련 패키지들을 완전히 제거하려면 다음 명령어를 사용합니다.

sudo apt-get purge kubeadm kubectl kubelet kubernetes-cni kube*
sudo apt-get autoremove

 

이 명령어는 kubeadm, kubectl, kubelet 및 그와 관련된 패키지를 시스템에서 제거합니다.

 

4. Kubernetes 관련 디렉터리 삭제


Kubernetes를 설치할 때 생성된 디렉터리를 삭제합니다.

sudo rm -rf /etc/kubernetes /var/lib/etcd /var/lib/kubelet /etc/cni /opt/cni

 

이러한 디렉터리는 Kubernetes의 설정 파일 및 데이터가 저장된 위치입니다.

 

5. Docker 컨테이너 삭제 (옵션)


Kubernetes와 함께 Docker를 사용하고 있다면, 남아 있는 Docker 컨테이너나 이미지도 삭제할 수 있습니다.

sudo docker ps -a
sudo docker stop $(sudo docker ps -a -q)
sudo docker rm $(sudo docker ps -a -q)

 

그리고 Docker 이미지도 삭제할 수 있습니다.

sudo docker rmi $(sudo docker images -q)

 

 

6. Kubelet 서비스 비활성화 및 삭제


kubelet 서비스가 아직 실행 중일 수 있으므로, 이를 비활성화하고 제거합니다.

sudo systemctl stop kubelet
sudo systemctl disable kubelet

 

그리고 관련 시스템 서비스 파일도 삭제합니다.

sudo rm /etc/systemd/system/kubelet.service.d
sudo rm /etc/systemd/system/kubelet.service
sudo systemctl daemon-reload

 

 

7. CNI 플러그인 삭제


네트워크 플러그인(CNI)이 설치되어 있는 경우도 삭제해야 합니다.

sudo rm -rf /opt/cni/bin

 

 

8. Reboot


모든 삭제 작업이 완료되면 시스템을 재부팅하여 모든 설정이 초기화된 상태에서 클러스터를 다시 시작할 수 있습니다.

sudo reboot

 

이 단계를 통해 Kubernetes와 관련된 모든 구성 요소와 데이터가 완전히 제거됩니다.

728x90
LIST