하드웨어 구성
컴퓨팅 유닛
- MSI Cubi 3 Silent NUC (k3s 서버)
- CPU: 듀얼 코어 i5-7200U
- RAM: 32GB (2x 16GB)
- SSD: 240GB KINGSTON SA400S37240G
- 특징: 약 6년간 무결점 운영, k3s 클러스터의 서버 역할.
- 2x Lenovo ThinkCentre M910 Tiny (k3s 에이전트)
- CPU: 쿼드 코어 i5-6500T
- RAM: 16GB (2x 8GB)
- SSD: Apacer AS350 256GB
- 특징: 중고로 구매, 작고 강력하며 조용하여 아파트 환경에 적합, k3s 클러스터의 에이전트 역할.
- 커스텀 NAS (TrueNAS SCALE)
- CPU: 쿼드 코어 i5-4590T
- RAM: 16GB (2x 8GB)
- 스토리지: 4x 2TB SSD (혼합: Samsung EVO 870 & Crucial MX500) - 3.4TB 가용 용량
- 특징: 2023년 말 조립, TrueNAS SCALE 운영, k3s 클러스터에 영구 스토리지 제공.
네트워킹
-
메인 연결: 4/5G CPE (H352-381) 사용 (유선 인터넷 불가 지역).
-
라우터: TP-Link ER605 (듀얼 WAN 지원, Starlink 연결 계획).
-
무선 액세스 포인트: 2x TP-Link Deco XE75 (집 전체에 탁월한 커버리지 제공).
-
기타: 여러 개의 비관리형 스위치.
보조 장치
-
Shelly 스마트 플러그: 홈랩 및 기타 장치의 전력 소비 측정.
-
Shelly H&T Gen 3: 집안 습도 및 온도 모니터링.
전력 소비
-
총 약 49W 소비 (NAS ~22W, ThinkCentres 각 ~8W, Cubi ~10W).
-
월 약 7.5유로의 전기 요금 발생.
소프트웨어 구성
NAS
-
운영체제: TrueNAS SCALE.
-
스토리지: 단일 4-wide RAIDZ2 (4x 2TB SSD, 3.4TB 가용 용량).
-
공유: SMB 공유로 데이터셋 노출.
-
추가 애플리케이션: Netdata (메트릭 수집 및 k3s 클러스터의 부모 인스턴스로 전달).
-
백업: k3s 클러스터의 작업이 Kopia를 사용하여 중요 데이터를 오프사이트 S3 버킷에 백업.
k3s 클러스터
-
구성: 단일 k3s 서버 (MSI Cubi 3)와 두 개의 에이전트 (Lenovo ThinkCentre M910 Tiny).
-
운영체제: Debian (NAS 제외).
-
배포: Helm과 Helm Secrets 플러그인을 사용하여 애플리케이션 배포. Helm 차트는 비공개 GitHub 저장소에 저장.
-
핵심 구성 요소:
- Kubernetes CSI 드라이버: NAS의 SMB 공유 접근.
- MetalLB: 로컬 네트워크에 서비스 노출.
- PostgreSQL 인스턴스: 메인 데이터베이스.
- Cloudflared: Cloudflare 터널을 통해 트래픽을 Nginx로 전달.
- Nginx: 요청을 특정 Kubernetes 서비스 또는 Authelia (인증)로 전달.
- Netdata: 모니터링 (단일 부모, 각 노드에 자식 인스턴스), Prometheus 메트릭 자동 수집.
실제 애플리케이션
-
미디어/엔터테인먼트: Audiobookshelf, Jellyfin.
-
생산성/유틸리티: Cyberchef, Excalidraw, Harbor (Docker 레지스트리), Miniflux (RSS 리더), Mouthful (블로그 댓글), Paperless-ngx (문서 관리), Silverbullet (노트), Vaultwarden (비밀번호 관리), Yopass (비밀 공유).
-
네트워크/인프라: EMQX (MQTT 브로커), Pi-hole (광고 차단), Unbound (DNS 리졸버), Umami (개인 정보 보호 분석), Github action runner controller.
-
홈 자동화/모니터링: Owntracks (작업 진행 중), Tandoor (레시피 라이브러리), Ripe atlas probe, 커스텀 Prometheus Exporter (Shelly 상태, 전력 소비 등).
-
사용자 정의: 자체 개발 Discord 봇, 웹 앱 및 내부 API, 백업 Cronjob.
-
클러스터 자원 사용량: 일반 부하 시 약 1.1 코어, 19GB RAM.
향후 계획
-
데이터베이스 분리: PostgreSQL을 별도의 호스트(이상적으로는 두 개의 호스트)로 분리하고 자동 페일오버 구현. 이를 위해 현재 M910 Tiny를 k3s 클러스터에서 제거하고, Intel N 시리즈 프로세서 기반의 소형 머신 2대로 k3s 서버를 3개로 구성하여 단일 노드 장애에도 무중단 운영 가능하도록 변경.
-
NAS 업그레이드: HDD 어레이로 전환하여 저장 공간 확장, SMB에서 NFS 공유로 전환 (Linux 및 Mac과의 호환성 개선).
-
터널 대체: Cloudflare 터널에서 VPS 기반의 자가 호스팅 터널 솔루션으로 전환.
-
새로운 애플리케이션: Changedetection (할인 정보), Frigate (NVR 대체), 통합 홈 대시보드.
-
가전제품 통합: 회수기, 히트 펌프 등 가정 내 유틸리티 기기를 대시보드와 통합하여 단일 패널에서 제어.
-
UPS 추가: 홈랩에 무정전 전원 공급 장치 (UPS) 도입.
-
환경 모니터링: 실외 온도계 또는 기상 관측소 추가 및 Prometheus Exporter를 통해 Netdata에서 시각화.
-
랙 개선: 랙 상단에 모니터와 키보드 장착하여 서버 직접 접근성 향상.