Cloudflare Tunnel을 기본 경로로, NPM을 예비 경로로 둔 이유
Cloudflare Tunnel을 기본 외부 경로로, NGINX Proxy Manager를 공인 NAT용 예비 경로로 분리하고 DNS-01 Wildcard 인증서를 준비한 이유를 정리했다.
▶
~/devops-blog
on
⎇ main
|
ghost
Kubernetes, Linux, Network, Observability — 직접 구축하고 운영하며 마주친 문제와 검증한 해법을 기록합니다. Evidence over assumptions.
LATEST FIELD NOTES
updated 2026.08.31
Cloudflare Tunnel을 기본 외부 경로로, NGINX Proxy Manager를 공인 NAT용 예비 경로로 분리하고 DNS-01 Wildcard 인증서를 준비한 이유를 정리했다.
Docker host의 cAdvisor 지표를 Grafana Dashboard로 구성하고 MySQL·NFS Alert를 Alertmanager와 Telegram으로 연결한 과정과 관련 문제를 정리했다.
Swarm VIP만으로 공유되지 않는 JVM 로컬 SimpleBroker 이벤트를 Redis Pub/Sub으로 fan-out하는 local-first 공통 모듈과 현재 한계를 정리했다.
Exporter는 정상인데 Prometheus Target이 없었던 원인을 Bind Mount inode와 설정 hash로 찾아 container를 재생성한 과정을 정리했다.
Replication과 backup의 역할을 나누고 mysqldump·gzip·SHA-256 결과를 NFS에 보관한 뒤 별도 시험 DB에 실제 복원한 과정을 정리했다.
Hardware RAID5 위에 LVM과 ext4를 구성하고 애플리케이션 파일과 백업·로그용 NFS를 분리한 이유, UID/GID와 Automount 문제를 정리했다.
VyOS로 DB 전용망을 분리하며 Live ISO 영속성, 버전별 NAT 문법, Route는 정상인데 외부 통신이 실패한 원인을 해결한 과정을 정리했다.
MySQL 8 GTID·TLS 복제, Read Only Replica와 수동 Failover를 선택한 이유, 복제 비밀번호 제한과 일시적 Connecting 상태를 해결한 과정을 정리했다.
Manager quorum, overlay network, Service DNS/VIP, Global Service를 적용한 이유와 Swarm VIP가 애플리케이션 상태를 공유하지 않는 한계를 정리했다.