Drain은 서버나 워커를 멈추거나 분리할 때 새 처리는 받지 않고, 이미 진행 중인 처리만 끝내는 운영 절차다.
HTTP 서버라면 새 요청 유입을 막고 기존 연결이나 in-flight request를 기다리는 동작이 drain에 해당한다. Kubernetes에서는 readiness를 내려 endpoint에서 제외한 뒤 graceful shutdown으로 넘어가는 흐름에서 자주 등장한다.
실무에서 쓰이는 곳
- 서버 재시작이나 rolling update 직전
- queue worker를 멈추기 전
- load balancer 뒤에 있는 노드를 분리할 때
참고
Drain은 즉시 중지가 아니다. 처리 중인 일을 흐트러뜨리지 않고 물러나기 위한 단계다. 강제 종료와는 목적이 다르다.
실무 메모
Drain는 ops, http, kubernetes, deployment 문맥에서 자주 나온다. 사전식 정의만 외우기보다, 이 말로 무엇을 짧게 가리키려는지까지 맞춰 두면 문서와 대화가 덜 흔들린다.
가까운 용어와 섞이면 설명이 흐려지기 쉬우므로, 대상과 역할, 쓰이는 장면을 한 단계만 더 구체적으로 잡아 두는 편이 낫다. 용어집에서는 그 출발점을 정리해 두면 충분하다.
hsb.horse