본문 바로가기

Docker & Kubenetes

Kubernetes - Cluster Node 제거

이번 포스팅에서는 기존에 연결 되어있는 k8s 인프라에서 worker node 서버를 제거하는 과정을 포스팅하겠습니다.

절차는 아래와 같습니다.

Master Server

# Node 연결상태 확인
k get nodes
# Node 스케줄링 비활성화
k drain {Node Name}

# daemonset으로 생성된 pod들은 제거할 수 없어 --ignore-daemonsets 옵션을 사용해야함
# empty-volume 이 연결된 pod들은 제거할 수 없어 --delete-local-data 옵션을 사용해함
# pdb(PodDisruptionBuget) pod들은 제거할 수 없어 해당 pod들은 직접 delete 명령으로 제거해 줘야 함

Ex)
k drain Server2

Server1           Ready                      <none>   287d     v1.17.2
Server2           Ready,SchedulingDisabled   <none>   2y38d    v1.17.2
Server3           Ready                      <none>   2y38d    v1.17.2
Server4           Ready                      <none>   2y38d    v1.17.2
# Node 삭제
k delete node {Node Name}

Worker Node Server

# 제거한 Worker Node 서버에서 작업
# kubeamd init, join 명령에 의해 발생한 변경 사항을 초기화

kubeamd reset


Ex)
root@Server2:~# kubeadm reset
[reset] WARNING: Changes made to this host by 'kubeadm init' or 'kubeadm join' will be reverted.
[reset] Are you sure you want to proceed? [y/N]: y
[preflight] Running pre-flight checks
# ip table 정리
sudo iptables -F && sudo iptables -t nat -F && sudo iptables -t mangle -F && sudo iptables -X

# 정리 후 확인
iptables -L


Ex)
root@Server2:/etc# iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination

Chain FORWARD (policy DROP)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
# IPVS를 설정한 경우
ipvsamd --clear