043. Health Check & Connection Draining — 로드밸런서의 무중단 배포 기반
로드밸런서는 헬스체크로 서버가 정상인지 확인하고, 비정상 서버로는 트래픽을 보내지 않는다. Connection Draining은 서버를 내릴 때 기존 연결을 끊지 않고 자연스럽게 처리가 끝나길 기다린다. 이 두 메커니즘이 무중단 배포와 자동 장애 복구의 기반이 된다.
로드밸런서는 헬스체크로 서버가 정상인지 확인하고, 비정상 서버로는 트래픽을 보내지 않는다. Connection Draining은 서버를 내릴 때 기존 연결을 끊지 않고 자연스럽게 처리가 끝나길 기다린다. 이 두 메커니즘이 무중단 배포와 자동 장애 복구의 기반이 된다.
GitOps는 Git 저장소를 인프라와 애플리케이션의 desired state를 담는 단일 진실 원천으로 사용하는 운영 모델이다. 배포는 Git 커밋으로 시작하고, 클러스터 상태가 항상 Git과 일치하도록 유지한다. 전통적인 push 방식 CI/CD와의 차이, 핵심 원칙, 그리고 왜 k8s에 자연스럽게 맞는지 설명한다.
Argo CD는 GitOps 방식으로 k8s 배포를 관리하는 도구다. Git 저장소의 매니페스트를 감시하고, 클러스터 상태와 diff를 보여주며, 자동 또는 수동으로 동기화한다. Application 정의 방식, Sync 전략, App of Apps 패턴, 실무에서 자주 쓰는 설정을 설명한다.
Deployment는 파드를 직접 만드는 대신 ‘몇 개를 유지할지, 어떻게 업데이트할지’를 선언하는 오브젝트다. 내부적으로 ReplicaSet을 통해 파드를 관리하고, 롤링 업데이트로 무중단 배포를 하며, 문제가 생기면 이전 버전으로 롤백한다. 이 과정이 어떻게 동작하는지, 전략 파라미터를 어떻게 조절하는지를 설명한다.