콘텐츠로 이동
Leader 문서0.4

선출 모델 선택

최신 안정판 Leader 0.4.0 릴리스 기준

업무가 허용하는 동시 실행 수와 배치 규칙에 따라 단일, 그룹, 전략 선출을 고릅니다.

선출 모델과 실행 API 선택 지도

이름이 같은 작업을 한 인스턴스만 실행해야 한다면 LeaderElector 또는 SuspendLeaderElector를 사용합니다. 정산 스케줄, 마이그레이션 gate, control-plane reconcile이 대표적인 사례입니다. lock name 하나가 동시 실행 경계를 이룹니다.

최대 maxLeaders개 작업자가 동시에 실행해도 된다면 LeaderGroupElector를 사용합니다. 각 당선자는 slot 하나를 소유합니다. 이는 분산 semaphore이지 작업 분배기가 아닙니다. 선출된 두 작업자가 같은 항목을 처리하지 않도록 queue나 partition 규칙은 애플리케이션이 따로 마련해야 합니다.

먼저 lock을 잡은 노드가 아니라 후보 정보에 따라 적합한 노드를 골라야 할 때 전략 선출을 사용합니다. FIFO, seed가 있는 random, score, weighted score 전략을 제공합니다. 후보 등록 정보가 낡으면 부적합한 노드를 고를 수 있으므로 freshness 관리가 필요합니다.

처음에는 단일 리더로 시작합니다. 측정 결과 처리량 때문에 제한된 병렬 실행이 필요할 때만 그룹으로 확장합니다. 어느 노드가 실행하느냐가 요구사항이고 후보 상태를 꾸준히 관리할 수 있을 때만 전략 선출을 선택합니다.