OPERATING DOCUMENT / NARWHAL

클러스터 아키텍처

Narwhal 3M+3W 노드 토폴로지, HA 컨트롤 플레인 및 결합 구조.

01 / Context02 / Procedure03 / Operations04 / Verification

클러스터 아키텍처

Narwhal은 단일 장애점(SPOF)을 줄이기 위해 3개의 Control Plane과 3개의 Worker로 구성된 6노드 고가용성(HA) 토폴로지를 사용합니다.

노드 토폴로지 및 IP 할당표

노드 이름역할vCPU / RAMIP 주소주요 구동 서비스
master-1Control Plane, NFS Host2 CPU / 4 GiB192.168.56.10etcd, kube-apiserver, kube-vip, NFS Server, dnsmasq
master-2Control Plane2 CPU / 4 GiB192.168.56.11etcd, kube-apiserver, kube-vip, dnsmasq
master-3Control Plane2 CPU / 4 GiB192.168.56.12etcd, kube-apiserver, kube-vip
worker-1Platform Infrastructure4 CPU / 8 GiB192.168.56.21Cilium, APISIX, MetalLB, Keycloak, ArgoCD
worker-2Telemetry & Observability4 CPU / 8 GiB192.168.56.22Prometheus, Grafana, Loki, Tempo, OpenBao
worker-3Storage & User Workloads4 CPU / 8 GiB192.168.56.23SeaweedFS S3, CloudNativePG, Narwhal Portal

HA Control Plane (kube-vip + etcd)

클라이언트는 개별 master IP가 아니라 192.168.56.100의 kube-vip Virtual IP를 Kubernetes API endpoint로 사용합니다. VIP는 한 시점에 하나의 Control Plane 노드가 소유하며, 해당 노드에 장애가 발생하면 다른 Control Plane 노드가 VIP를 인계합니다. 세 master의 etcd는 각각 독립 member로 quorum을 구성합니다.

아래 그림은 master-1이 현재 VIP를 소유하고 있는 예시 상태입니다. master-2, master-3은 API endpoint의 failover 후보이며, 세 노드 모두 kube-apiserver와 etcd member를 실행합니다.

이 구조에서 API endpoint와 etcd quorum은 서로 다른 역할을 담당합니다. kube-vip은 API endpoint의 연속성을 제공하고, 3-member etcd는 Control Plane 상태 저장소의 quorum과 내결함성을 제공합니다.

XFS Project Quota 기반 노드 스토리지

모든 노드는 Kube-Ready-Box (dasomel/ubuntu-26.04-xfs) 베이스 이미지를 기반으로 부팅되며, /srv/nfs 및 컨테이너 데이터 파티션에 XFS Project Quota가 활성화되어 있습니다. 이를 통해 컨테이너 I/O 및 PV 사용량이 노드의 호스트 디스크를 고갈시키는 사고를 물리적으로 차단합니다.

DOCUMENT TRACE

프로젝트 상세로 돌아가면 아키텍처, 개발 흐름, 검증 근거와 관련 Field Note를 하나의 맥락에서 볼 수 있습니다.