cmod.ify

[ARCHITECTURE] Wattup #3 OCI/VirtualBox-K8s | ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ๋„คํŠธ์›Œํฌ ์„ค๊ณ„ ๋ณธ๋ฌธ

Project

[ARCHITECTURE] Wattup #3 OCI/VirtualBox-K8s | ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ๋„คํŠธ์›Œํฌ ์„ค๊ณ„

modifyC 2026. 3. 11. 00:23
728x90
๋ฐ˜์‘ํ˜•
WattUp โ€” Network Architecture
NETWORK ARCHITECTURE

WattUp Infrastructure

OCI ยท Tailscale VPN ยท Kubernetes (VirtualBox) ยท Calico CNI

Architecture Diagram
๐Ÿ‘ค ์‚ฌ์šฉ์ž HTTPS โ˜ Oracle Cloud (OCI) 140.238.143.254 โš› Frontend React + Nginx Docker ์ปจํ…Œ์ด๋„ˆ VPN ๐Ÿ”’ Tailscale VPN Tunnel โ˜ธ Kubernetes Cluster โ€” VirtualBox / kubeadm + Calico CNI master:192.168.56.10 worker1:.11 worker2:.12 worker3:.13 ๐Ÿ–ฅ Master Node (192.168.56.10) API Server etcd Scheduler Ctrl Manager ๐Ÿ“ฆ Namespace: ev-prod ๐ŸŒ Nginx NodePort :30007 ํ˜ธ์ŠคํŠธ :50007 ClusterIP โš™ Backend (FastAPI) ClusterIP / ๋‚ด๋ถ€ ์ „์šฉ /api/wattup/* ๐Ÿ—„ Databases & Messaging โ€” ๋ชจ๋‘ ClusterIP (๋‚ด๋ถ€ ์ „์šฉ) ๐Ÿ˜ PostgreSQL StatefulSet + PVC PostGIS ํ™•์žฅ ClusterIP ๐Ÿƒ MongoDB StatefulSet + PVC ์ฝ๊ธฐ ์ „์šฉ ๋ทฐ ClusterIP โšก Kafka 3-node KRaft StatefulSet ClusterIP ๐Ÿ”„ Debezium CDC Connector ClusterIP ๐Ÿ“ฅ Importer ๊ณต๊ณตAPI ์ˆ˜์ง‘ ClusterIP CDC ๋ฒ”๋ก€ HTTPS ์š”์ฒญ VPN ํ„ฐ๋„ ClusterIP SQL (PG) Mongo ์ฝ๊ธฐ CDC ํŒŒ์ดํ”„๋ผ์ธ Kafka ๋ฉ”์‹œ์ง€ ๋ฐ์ดํ„ฐ ์ ์žฌ
ํŠธ๋ž˜ํ”ฝ ํ๋ฆ„
์‚ฌ์šฉ์ž ์š”์ฒญ ๊ฒฝ๋กœ
๐Ÿ‘ค
์‚ฌ์šฉ์ž
HTTPS
โ˜
OCI Frontend
:80 Docker
๐Ÿ”’
Tailscale VPN
์•”ํ˜ธํ™” ํ„ฐ๋„
๐ŸŒ
Nginx
NodePort :30007
โš™
Backend
FastAPI / ClusterIP
๐Ÿ“Œ ์„ค๊ณ„ ํฌ์ธํŠธ ์™ธ๋ถ€๋กœ ๋…ธ์ถœ๋˜๋Š” ์ง„์ž…์ ์€ Nginx NodePort ํ•˜๋‚˜(30007)๋งŒ ์‚ฌ์šฉํ•œ๋‹ค. PostgreSQL, MongoDB, Kafka, Debezium, Importer๋Š” ์ „๋ถ€ ClusterIP๋กœ ๋‚ด๋ถ€ ํ†ต์‹ ๋งŒ ํ—ˆ์šฉ. OCI โ†” K8s ํด๋Ÿฌ์Šคํ„ฐ ๊ฐ„ ํ†ต์‹ ์€ Tailscale VPN์œผ๋กœ ์•”ํ˜ธํ™”.
๊ตฌ์„ฑ ์š”์†Œ ์ƒ์„ธ
โ˜
Oracle Cloud (OCI)
๋ฌด๋ฃŒ ํ‹ฐ์–ด ยท ํ”„๋ก ํŠธ์—”๋“œ ์ „์šฉ
React + Nginx๋ฅผ Docker ์ปจํ…Œ์ด๋„ˆ๋กœ ์‹คํ–‰. VirtualBox K8s ํด๋Ÿฌ์Šคํ„ฐ์™€ ๋ถ„๋ฆฌ ์šด์˜. Tailscale์„ ํ†ตํ•ด ๋ฐฑ์—”๋“œ์™€ ํ†ต์‹ .
ReactNginxPodman
๐Ÿ”’
Tailscale VPN
WireGuard ๊ธฐ๋ฐ˜ ์•”ํ˜ธํ™” ํ„ฐ๋„
OCI ํ”„๋ก ํŠธ์—”๋“œ โ†” VirtualBox K8s ํด๋Ÿฌ์Šคํ„ฐ ๊ฐ„ ์‚ฌ์„ค ๋„คํŠธ์›Œํฌ ๊ตฌ์„ฑ. ๊ณต์ธ IP ์—†์ด๋„ ์•ˆ์ „ํ•˜๊ฒŒ ๋‚ด๋ถ€ ์„œ๋น„์Šค์— ์ ‘๊ทผ ๊ฐ€๋Šฅ.
WireGuardZero-config
โ˜ธ
Kubernetes Cluster
VirtualBox ยท kubeadm ยท Calico CNI
๋งˆ์Šคํ„ฐ 1๋Œ€ + ์›Œ์ปค 3๋Œ€ ๊ตฌ์„ฑ. Calico CNI๋กœ ํŒŒ๋“œ ๊ฐ„ ๋„คํŠธ์›Œํฌ ๊ด€๋ฆฌ. local-path-provisioner๋กœ PVC ์ฒ˜๋ฆฌ.
master:56.10worker1~3Calico
๐ŸŒ
Nginx (์œ ์ผํ•œ ์ง„์ž…์ )
NodePort 30007 ยท ํ˜ธ์ŠคํŠธํฌ์›Œ๋”ฉ 50007
ํด๋Ÿฌ์Šคํ„ฐ ์™ธ๋ถ€์™€ ์—ฐ๊ฒฐ๋˜๋Š” ์œ ์ผํ•œ ์ง„์ž…์ . /api/* ์š”์ฒญ์„ backend-svc๋กœ ํ”„๋ก์‹œ. ๋‚˜๋จธ์ง€ ๋ชจ๋“  ์„œ๋น„์Šค๋Š” ClusterIP๋กœ ๊ฒฉ๋ฆฌ.
NodePort:30007Reverse Proxy
๐Ÿ—„
PostgreSQL + MongoDB
StatefulSet + PVC ยท ClusterIP
PostgreSQL(PostGIS)์€ ๊ณต๊ณตAPI ์›๋ณธ ๋ฐ์ดํ„ฐ ์ €์žฅ. MongoDB๋Š” CDC๋กœ ๋™๊ธฐํ™”๋œ ์ฝ๊ธฐ ์ „์šฉ ๋ทฐ. PG โ†’ Kafka โ†’ Mongo ํ๋ฆ„.
PostGISStatefulSetlocal-path
๐Ÿ”„
Kafka + Debezium
3-node KRaft ยท CDC Pipeline
Debezium์ด PostgreSQL ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ Kafka๋กœ ๋ฐœํ–‰. Kafka ์ปจ์Šˆ๋จธ๊ฐ€ MongoDB์— ์‹ฑํฌ. 3-node KRaft๋กœ ๊ณ ๊ฐ€์šฉ์„ฑ ๊ตฌ์„ฑ.
KRaftCDC3-node HA
728x90
๋ฐ˜์‘ํ˜•