반응형
쿠버네티스(Kubernetes) 클러스터에서 노드를 재기동하는 방법
Control Plane 재기동
Control Plane은 클러스터의 핵심 구성 요소로 kube-apiserver, etcd, kube-scheduler, kube-controller-manager 등의 컴포넌트가 실행됩니다. Control Plane을 재기동할 때는 주의가 필요하며 클러스터의 가용성을 보장하기 위해 HA(High Availability) 구성이 권장됩니다.
1. Control Plane의 상태 확인
- Ready 상태를 확인합니다.
- Control Plane에서 중요한 워크로드가 실행되고 있는지 확인합니다.
kubectl get nodes
$ kubectl get nodes
NAME STATUS ROLES AGE VERSION
node111 Ready control-plane 43h v1.30.3
node112 Ready control-plane 43h v1.30.3
node113 Ready control-plane 43h v1.30.3
worker1 Ready <none> 18m v1.27.16
2. Control Plane 노드 재기동
- Control Plane(node112)을 재기동합니다.
sudo reboot
노드 상태 확인
$ kubectl get nodes
NAME STATUS ROLES AGE VERSION
node111 Ready control-plane 43h v1.30.3
node112 NotReady control-plane 43h v1.30.3
node113 Ready control-plane 43h v1.30.3
worker1 Ready <none> 23m v1.27.16
3. Control Plane의 상태 확인
- 노드가 재기동된 후 클러스터 상태가 정상인지 확인합니다.
- 모든 Control Plane 컴포넌트가 정상적으로 실행되고 있는지 확인합니다.
kubectl get nodes
NAME STATUS ROLES AGE VERSION
node111 Ready control-plane 43h v1.30.3
node112 Ready control-plane 43h v1.30.3
node113 Ready control-plane 43h v1.30.3
worker1 Ready <none> 25m v1.27.16
kubectl get pods -n kube-system
4. HA 구성 시
- HA 구성된 Control Plane에서는 노드를 하나씩 재기동하는 것이 중요합니다.
- 모든 Control Plane을 동시에 재기동하면 안 됩니다.
728x90
Worker Node 재기동
Worker 노드는 애플리케이션의 실제 파드를 실행하는 노드입니다. Worker 노드를 재기동할 때는 해당 노드에서 실행 중인 파드를 다른 노드로 안전하게 옮기는 절차가 필요합니다.
1. 노드 상태 확인
- 노드의 상태와 파드의 상태를 확인합니다.
kubectl get nodes
$ kubectl get nodes
NAME STATUS ROLES AGE VERSION
node111 Ready control-plane 43h v1.30.3
node112 Ready control-plane 43h v1.30.3
node113 Ready control-plane 43h v1.30.3
worker1 Ready <none> 9s v1.27.16
2. 노드 Draining (노드 비우기)
- 노드를 재기동하기 전에 해당 노드에서 실행 중인 파드를 안전하게 다른 노드로 이동시키기 위해 노드를 drain합니다.
- DaemonSet으로 관리되지 않는 모든 파드를 다른 노드로 이동시킵니다.
kubectl drain <노드 이름> --ignore-daemonsets --delete-emptydir-data
kubectl drain worker1 --ignore-daemonsets --delete-emptydir-data
$ kubectl drain worker1 --ignore-daemonsets --delete-emptydir-data
node/worker1 cordoned
Warning: ignoring DaemonSet-managed Pods: kube-system/cilium-7jffh, kube-system/cilium-envoy-dlx4n, kube-system/kube-proxy-lhmmq
node/worker1 drained
노드 상태 확인
$ kubectl get nodes
NAME STATUS ROLES AGE VERSION
node111 Ready control-plane 43h v1.30.3
node112 Ready control-plane 43h v1.30.3
node113 Ready control-plane 43h v1.30.3
worker1 Ready,SchedulingDisabled <none> 7m40s v1.27.16
3. 노드 재기동
- 노드를 drain한 후 SSH를 통해 노드에 접속하여 재기동할 수 있습니다.
sudo reboot
노드 상태 확인
$ kubectl get nodes
NAME STATUS ROLES AGE VERSION
node111 Ready control-plane 43h v1.30.3
node112 NotReady control-plane 43h v1.30.3
node113 Ready control-plane 43h v1.30.3
worker1 NotReady,SchedulingDisabled <none> 10m v1.27.16
4. 노드 Uncordon
- 노드가 다시 올라오면 해당 노드를 클러스터에 다시 참여시킵니다.
kubectl uncordon <노드 이름>
kubectl uncordon worker1
$ kubectl uncordon worker1
node/worker1 uncordoned
노드 상태 확인
- 재기동된 후 노드의 상태와 파드의 상태를 확인합니다.
kubectl get nodes
NAME STATUS ROLES AGE VERSION
node111 Ready control-plane 43h v1.30.3
node112 Ready control-plane 43h v1.30.3
node113 Ready control-plane 43h v1.30.3
worker1 Ready <none> 15m v1.27.16
kubectl get pods --all-namespaces -o wide
쿠버네티스 클러스터에서 Control Plane과 Worker 노드를 안전하게 재기동할 수 있습니다.
728x90
반응형
'리눅스' 카테고리의 다른 글
쿠버네티스 클러스터에서 노드를 새로운 노드로 교체하는 방법 (0) | 2024.08.16 |
---|---|
쿠버네티스 워커 노드를 설치하고 클러스터에 참여시키기 (0) | 2024.08.16 |
쿠버네티스 서비스 유형 (0) | 2024.08.16 |
쿠버네티스 클러스터를 구현하는 방법 (0) | 2024.08.15 |
HAProxy에서 TLS/SSL 인증서를 생성하고 적용하는 방법 (0) | 2024.08.12 |