kubectl top nodes / kubectl describe node로 실측한 결과 기준. (2026-07-24)
<table header-row="true"><tr><td>노드</td><td>CPU</td><td>메모리 capacity</td><td>메모리 실사용</td><td>requests/limits</td><td>taint</td></tr><tr><td>k3s-master</td><td>2 core</td><td>3027Mi</td><td>1622Mi(54%)</td><td>140Mi/170Mi</td><td>control-plane:NoSchedule</td></tr><tr><td>k3s-worker1</td><td>1 core</td><td>1487Mi</td><td>712Mi(49%)</td><td>544Mi/1408Mi(96%)</td><td>없음</td></tr><tr><td>k3s-worker2</td><td>1 core</td><td>1745Mi</td><td>1027Mi(60%)</td><td>256Mi/512Mi(30%)</td><td>없음</td></tr></table>
CPU는 세 노드 모두 실사용률이 10% 안팔이라 사실상 병목이 아니다. 메모리가 유일한 제약이다.
로컬에서 docker compose up으로 직접 띄워서 확인한 실측치(임베딩/생성은 전부 Gemini API 호출이라 로컬에 LLM/임베딩 모델을 로드하지 않는다 — 이게 메모리 예산을 작게 잡을 수 있는 핵심 이유):
<table header-row="true"><tr><td>컴포넌트</td><td>예상 request</td><td>예상 limit</td><td>근거</td></tr><tr><td>Qdrant</td><td>128Mi</td><td>384Mi</td><td>공식 이미지 idle 시 100~150Mi대, 벡터 수천 개 규모면 400Mi 안쪽</td></tr><tr><td>FastAPI 앱</td><td>128Mi</td><td>384Mi</td><td>uvicorn+langgraph+langchain-text-splitters+qdrant-client+aiokafka, 로컬 모델 없음</td></tr><tr><td>합계</td><td>256Mi</td><td>768Mi</td><td></td></tr></table>
worker2 기준: request 256Mi 추가해도 (256+256)/1745 ≈ 29%, limit 768Mi 추가해도 (512+768)/1745 ≈ 73%. request 기준으로 스케쥴링 가능하고, limit 기준으로도 과포화되지 않는다.