삽더하기실수
Cordon, Drain 본문
728x90
Cordon 이란?
특정 노드를 스케줄러에서 제외시켜 파드가 할당되지 않도록 하며 기존에 노드에 배포된 파드는 그대로 남아있음
드레인 이란?
특정 노드를 스케줄러에서 제외시켜 파드가 할당되지 않도록 하고, 기존에 배포된 파드를 다른 노드로 이동시킴 노드를 업데이트하는 경우 활용 가능
Cordon 실습
#노드 상태 확인
kubectl get node -o wide
# 코던 실행
kubectl cordon w3-k8s
노드를 확인해 보면 SehedulingDisabled 스케쥴링에서 제외된걸 볼 수 있다.
간단한 nginx 3개가 replica 되어있는 yaml 파일을 실행 시켜보았다.
위 사진과 같이 해당 노드에는 pod를 할당하지 않는다.
replicas를 6개로 늘려본다
역시나 w3-k8s에는 pod를 할당하지 않는다.
코던 해제 방법
#노드 코던 제거
kubectl uncordon w3-k8s
Drain 실습
cordon 에서 했던 디폴리이먼트를 생성하면 3개의 노드에 할당 된 걸 알 수 있다.
kubectl drain w3-k8s
#데몬셋이 설정되어 있어 삭제될 경유 올라오지 않아 Waring이 발생한다.
kubectl drain --ignore-daemonsets w3-k8s
#해당 데몬셋을 무시하고 진행한다.
최종적으로 실행을 하면 아래와 같이 node3에 있던걸 node2로 옮기는 것을 볼 수 있다.
해당 명령어 같은경우는 노드의 상태가 불안정 할때 사용 하면 좋을거 같다.
728x90