맥북 한 대로 만든 사무실 Kubernetes
클라우드 하모니 홈페이지는 사무실 맥북 한 대에서 돌아갑니다. 작은 규모지만 구조는 클라우드와 똑같이 잡았습니다. 나중에 EKS나 GKE로 옮길 때 거의 그대로 가져갈 수 있게 하기 위해서입니다.
요청 흐름
사용자 → Cloudflare Tunnel → Envoy Gateway → HTTPRoute → web → api. Host 헤더로 dev / prd 를 나눕니다
구성 요소
| 역할 | 사용 기술 | AWS로 치면 |
|---|---|---|
| 클러스터 | kind (K8s v1.37), 노드 2대 | EKS |
| 로드밸런서 | Envoy Gateway (Gateway API) | ALB |
| 라우팅 규칙 | HTTPRoute | 리스너 규칙 |
| 환경 분리 | Namespace dev, prd |
계정 / VPC |
| 앱 | Deployment + Service | ECS Service + Target Group |
| 외부 공개 | Cloudflare Tunnel | Internet Gateway |
| 코드 관리 | Terraform | Terraform |
포인트
- 호스트에 열린 포트는 80 하나뿐입니다. 어느 환경으로 보낼지는 Host 헤더가 정합니다.
- prd 라우트는 hostnames를 비워서 기본값(catch-all)이 되게 하고, dev 라우트는
dev.localhost일 때만 매칭합니다. /actuator/**는 Gateway에서/로 리다이렉트해 외부에 노출하지 않습니다. Probe는 kubelet이 Pod를 직접 호출하므로 영향이 없습니다.- 기존
~/.kube/config를 건드리지 않으려고 kubeconfig를 따로 씁니다.
← 기술블로그 목록kind는 Docker 컨테이너 하나가 노드 하나입니다. 이미 Docker Desktop이 있는 환경이라 가장 가볍게 시작할 수 있었습니다.