오제원
2023년부터 리눅스 홈서버를 운영하며 가상화와 네트워크, 스토리지, 쿠버네티스를 구성해 왔습니다. 장애가 나면 실측으로 원인을 좁히고, 고친 내용은 코드와 문서로 남깁니다.
홈랩 운영 3년 6개월 · k3s 5노드 · CKA · 2026-10-06 갱신
기술
- 인프라
- Linux, Proxmox VE, TrueNAS, Proxmox Backup Server
- 네트워크
- OPNsense, VLAN, BGP(FRR) 기반 DNS 이중화
- 쿠버네티스
- k3s, Longhorn, Helm, ArgoCD
- 모니터링
- Prometheus, Grafana, Loki, Alertmanager
- 자동화
- Terraform, Ansible, GitHub Actions
- 개발
- TypeScript(React, Electron), C/C++
프로젝트
온프레미스 홈랩
- 서비스
- Immich, Jellyfin, OpenCloud, Vaultwarden, 기술 블로그
- 플랫폼
- Keycloak 통합 로그인, Gitea, GitHub Actions 러너(팀 프로젝트 빌드), ArgoCD, Envoy Gateway, cert-manager
- 클러스터
- k3s 5노드 (control-plane 1, worker 4)
- 호스트
- Proxmox VE 2대 (VM 3) · 베어메탈 2대 (N100, ROCK 5B)
- 네트워크
- OPNsense 방화벽 · VLAN으로 관리망과 서비스망 분리
- 2026.03 쿠버네티스 학습, 2026.05부터 k3s 클러스터로 서비스 운영
- Terraform 기반 VM 생성, Ansible 기반 노드 설정, ArgoCD 기반 GitOps 배포
- Prometheus와 Loki 기반 지표와 로그 수집, 텔레그램 알림 구성
장애 대응
MTU 불일치ping은 되는데 k3s API 통신만 시간 초과
원인 OPNsense VLAN 인터페이스의 MTU 기본값 1500. 분할 금지 비트를 켠 9000바이트 ping 전량 유실로 확정
조치 경로 MTU 9000으로 조정. 이후 노드 MTU를 1500으로 낮추며 문서를 고치지 않아 8월 재발, 1500으로 통일하고 문서에 경고 추가
이유 디스크 병목, 작은 패킷 위주 트래픽으로 점보 프레임 이득 없음
제어 노드 메모리 축출할당 가능 메모리 기준 요청량 28%, 실제 사용량 99%
원인 k3s 제어 컴포넌트가 단일 프로세스로 실행돼 요청량에 미반영. 해당 예약값이 워커와 같은 512Mi
조치 실측 2,531Mi 기준으로 예약값을 2,560Mi로 조정
이유 예약값은 사용량 한도가 아닌 스케줄러의 가용 메모리 계산 기준


NVMe 온도임계 온도 90% 초과 시간 하루 58%(8/24) → 7일 0%(9/14~)
원인 발열로 랙과 배기를 바꾼 뒤에도 온도 유지. 알림 규칙은 있었지만 온도 규칙이 없었음
조치 임계 온도 초과 알림 규칙 추가, NVMe 방열판 부착
이유 90% 초과는 상시라 알림을 걸면 계속 울림. 알림은 임계 초과에만 걸고, 온도는 냉각으로 해결


DNS 이중화가상 IP가 3~6분마다 흔들려 질의 유실
원인 keepalived 가상 IP에서 2호기가 광고를 놓치면 두 대가 모두 주소를 가져 ARP가 혼란
조치 두 서버가 같은 주소를 BGP(FRR)로 방화벽에 광고. 2초마다 로컬 DNS를 질의해 3회 실패하면 광고를 거둠
이유 라우터가 경로를 하나만 골라 두 대가 동시에 주인이 되는 일이 구조상 없음. 셀프호스팅 커뮤니티 구성을 참고
알려진 한계
- 제어 노드가 1대라 고가용성 구성이 아님. 8노드 시절 제어 노드 3대였으나 호스트 메모리가 모자라 줄였고, 8월 제어 노드가 멈췄을 때 API와 인그레스가 함께 멈춤
- 백업 서버(PBS)가 백업 대상과 같은 호스트에 있음. 11월 클라우드 저장소로 외부 백업을 추가할 계획
- 서비스망 안쪽 방화벽 규칙을 좁히는 작업이 남음. 43시간 연결 기록으로 허용 목록 17건과 적용 순서를 정리했고 적용 전
DoEatFit
- 식단과 운동 기록 웹 서비스
- Spring Boot 기반 운동 API 및 JPA 데이터 모델 구현 (2024)
- Spring Security와 JWT 기반 로그인 인증 구현 (2024)
- 2025년부터 AI 코딩 도구를 활용한 기능 개발과 인프라 매니페스트 작성
- 현재 인프라 매니페스트 담당, 홈랩 k3s 러너 기반 빌드
- 팀원 클러스터의 로그와 지표를 홈랩에서 수집하도록 구성, 역할 분담 문서화
중고워싱
- Spring Boot 기반 경매 API 구현, AWS(EC2, RDS, S3)에 Docker로 배포
- Jenkins 기반 빌드와 배포 자동화
- 동시 입찰 경쟁 상태에 Redis 분산 락 적용
경력
OS전자 · 소프트웨어 개발
- PCB 코팅 공정용 CAM 데스크톱 앱(coating-cam) 개발
- AI 코딩 도구를 활용한 개발, 요구사항 정리와 현장 검증 담당
- 좌표 수동 등록 작업을 도면 기반 G-code 생성 방식으로 전환, 보드 수만큼 복사해 일괄 변환
- GitHub Actions 기반 Windows 앱 빌드와 자동 업데이트 구성
OS전자 · 코팅 장비 제어 소프트웨어 개발
- C/C++와 ImGui 기반 툴패스 작성 및 장비 제어 프로그램 개발
자격 · 학력
- CKA · 2026.07
- 정보처리기사 · 2023.06
- SQLD · 2023.10
- 리눅스마스터 2급 · 2023.12
- TOEIC 900 · 2024.11
- TOEIC Speaking AL · 2025.03
- 인하대학교 컴퓨터공학과 학사 졸업 · 2025.02


