OCI ์์์ k3s + ArgoCD๋ก ์ด์๋๋ ์ธํ๋ผ ๊ด๋ฆฌ ๋ฆฌํฌ์งํ ๋ฆฌ์ ๋๋ค.
์ด ๋ฆฌํฌ์งํ ๋ฆฌ๋ ์์ ํ ๋ณต๊ตฌ์ฑ (Resilience)๊ณผ ๊ด์ฌ์ฌ์ ๋ถ๋ฆฌ (Separation of Concerns)๋ฅผ ํต์ฌ ์์น์ผ๋ก ํฉ๋๋ค.
- L1: ์ธํ๋ผ (Terraform) - VM, ๋คํธ์ํฌ ๋ฑ ๊ธฐ์ด ๊ณต์ฌ๋ง ๋ด๋นํฉ๋๋ค. ์ํํธ์จ์ด ์ค์น ๋ก์ง์ ์ต์ํํ์ฌ ์ธํ๋ผ ๋ณ๊ฒฝ ์ ์๋ฒ๊ฐ ์ฌ์์๋๊ฑฐ๋ ์ญ์ ๋๋ ์ํ์ ๋ฐฉ์งํฉ๋๋ค.
- L2: ๋ถํธ์คํธ๋ฉ (Bootstrap Script) - OS ๋ฐฉํ๋ฒฝ, k3s ํด๋ฌ์คํฐ ์์ง, ArgoCD๋ฅผ ์ค์นํฉ๋๋ค. ํ ๋ผํผ์ผ๋ก๋ถํฐ ๋ ๋ฆฝ๋์ด ์์ด ํด๋ฌ์คํฐ๋ง ๋ฐ๋ก ์ด๊ธฐํํ๊ฑฐ๋ ๋ณต๊ตฌํ ๋ ์ ์ฉํฉ๋๋ค.
- L3: ํ๋ซํผ & ์ฑ (GitOps) - ArgoCD๊ฐ ๋ชจ๋ ๊ฒ์ ๊ด๋ฆฌํฉ๋๋ค. Git์ ๋งค๋ํ์คํธ๊ฐ ํด๋ฌ์คํฐ์ ์ํ ๊ทธ ์์ฒด๊ฐ ๋ฉ๋๋ค.
- L4: ์๋ํ (CI/CD Pipeline) - ์๋น์ค ๋ฆฌํฌ์งํ ๋ฆฌ์ Ops ๋ฆฌํฌ์งํ ๋ฆฌ๊ฐ ํ๋ ฅํ์ฌ ๋ฐฐํฌ๋ฅผ ์๋ํํฉ๋๋ค.
๋ธ๋ผ์ฐ์
โ :80 / :443
OCI Load Balancer (devfactory-prod-lb)
โโโ :80 โ NodePort 30080
โโโ :443 โ NodePort 30443 โ TCP Passthrough (TLS ๋ฏธ์ข
๋ฃ)
โ
K8s nginx ingress
- cert-manager๊ฐ Let's Encrypt ์ธ์ฆ์ ๋ฐ๊ธยท๊ฐฑ์
- HTTP โ HTTPS ๋ฆฌ๋ค์ด๋ ํธ
- ๋๋ฉ์ธ + ๊ฒฝ๋ก ๊ธฐ๋ฐ ๋ผ์ฐํ
์ฃผ์: OCI LB๋ 443์ TCP Passthrough๋ก ๋๊ธฐ๋ฏ๋ก TLS๋ K8s nginx ingress + cert-manager๊ฐ ๋ด๋นํฉ๋๋ค. K8s ingress ์์ฑ ์
cert-manager.io/cluster-issuer: letsencrypt-prodannotation๊ณผtls๋ธ๋ก์ด ๋ฐ๋์ ํ์ํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ docs/networking.md๋ฅผ ์ฐธ์กฐํ์ธ์.
ArgoCD๋ App of Apps ํจํด์ผ๋ก ๊ตฌ์ฑ๋์ด ์์ต๋๋ค.
clusters/prod.yaml (root-app)
โโโ apps/prod/
โโโ infrastructure.yaml โ argocd, cert-manager, ingress-nginx,
โ sealed-secrets, victoria-metrics, monitoring
โโโ services.yaml โ homepage, event-bingo, experiment-platform
clusters/prod.yaml์ ํด๋ฌ์คํฐ์ ์ ์ฉํ๋ฉด ๋๋จธ์ง๋ ArgoCD๊ฐ ์๋์ผ๋ก ๋ชจ๋ ๋ฐฐํฌ- ๋ชจ๋ App์
automated sync + selfHeal + pruneํ์ฑํ (Git์ด ๊ณง ํด๋ฌ์คํฐ ์ํ) - ์ ์๋น์ค ์ถ๊ฐ ์
apps/prod/services/์ ArgoCD Application ํ์ผ๋ง ์ถ๊ฐํ๋ฉด ๋จ
- ํ์ ๊ด๋ฆฌ: ๋ชจ๋ ์ธํ๋ผ ๋ณ๊ฒฝ์
terraform/์ฝ๋๋ก, K8s ๋ณ๊ฒฝ์kubernetes/๋งค๋ํ์คํธ๋ฅผ ํตํด PR ๋ฐ ๋จธ์ง ํ ๋ฐ์ํฉ๋๋ค. - ๋ณด์: ๋น๋ฐ๋ฒํธ๋ ํค ๋ฑ์ ์ ๋ Git์ ์ปค๋ฐํ์ง ์์ผ๋ฉฐ, ๋ฐ๋์
Sealed Secrets๋ฅผ ์ฌ์ฉํ์ฌ ์ํธํ๋ ์ํ๋ก ์ปค๋ฐํฉ๋๋ค. - ๋ฐฉํ๋ฒฝ: ์๋ฒ์ OS ๋ฐฉํ๋ฒฝ(
iptables) ๊ท์น ๋ณ๊ฒฝ ์iptables-persistent๋ฅผ ํตํด ์๊ตฌ ์ ์ฅํด์ผ ํฉ๋๋ค.
- ์ธํ๋ผ ์ ์ ๊ฐ์ด๋ โ OCI ๊ณ์ ์ค๋น, Terraform, k3s ๋ถํธ์คํธ๋ฉ, ArgoCD ํ์ฑํ