2026 · 인프라 배포
document-center를 무중단 블루그린으로 띄웠어요
기술인프라kubernetes블루그린
목차
이 세 가지를 보여드려요
1왜 옮겼고 무엇이 달라졌는지 짚어봐요
2블루그린·인증서·자동배포가 어떻게 도는지 봐요
3실제 배포 결과 숫자를 확인해요
01
로컬에서만 보던 장표를 공개 URL로 상시 띄워요
지금까진 docker-compose로 내 PC에서만 열 수 있었어요. 이제 어디서든 주소로 들어와요.
결과
한 번에, 끊김 없이, 빠르게 떴어요
HTTPS 인증서 발급
29초
▲ 자동 · 30일 전 갱신
기존 서비스 영향
0초
▲ 신규 추가 · 다운타임 0
트래픽 경로
주소를 치면 이렇게 장표까지 닿아요
인터넷
→
공유기 80·443
→
Traefik
→
active Service
→
nginx 장표
Traefik: 도메인·경로별로 트래픽을 나눠 보내는 리버스 프록시 · active Service: 지금 실제 트래픽을 받는 파드 묶음
Before / After
내 PC 전용에서 공개 서비스로 바뀌었어요
Before
- docker-compose로 내 PC에서만 열려요
- 남에게 보여주려면 화면 공유가 필요해요
- 재배포·갱신을 손으로 해야 해요
After
- 공개 HTTPS 주소로 어디서든 들어와요
- 블루그린으로 끊김 없이 새 버전이 떠요
- 장표를 push하면 알아서 배포돼요
블루그린 전환
새 버전을 먼저 검증하고 트래픽을 넘겨요
1새 버전 파드를 트래픽 없이 preview로 먼저 띄워요.
2preview에 GET / 200을 직접 때려 잘 뜨는지 확인해요.
3통과하면 트래픽을 새 파드로 한 번에 넘겨요.
4이전 파드는 5분간 남겨둬, 문제가 생기면 바로 되돌려요.
preview: 트래픽을 안 받고 미리 검증만 하는 새 버전 · 스모크(smoke): 최소 동작을 확인하는 가벼운 테스트
HTTPS 자물쇠
인증서는 cert-manager가 알아서 챙겨요
1도메인 A레코드가 우리 집 공인 IP를 가리켜요.
2cert-manager가 HTTP-01 방식으로 도메인 소유를 증명해요.
3Let's Encrypt 인증서를 29초에 발급받고, 만료 30일 전 자동 갱신해요.
HTTP-01: 도메인 80포트에 임시 응답을 놓아 소유를 증명하는 방식 · A레코드: 도메인을 IP로 잇는 DNS 설정
자동 배포
장표를 push하면 여기까지 저절로 흘러가요
main push
→
격리 clone
→
이미지 빌드
→
helm 배포
→
Rollout 확인
→
Telegram 알림
격리 clone: 배포마다 새로 받는 깨끗한 복제본 — 남은 찌꺼기로 옛 버전이 나가는 사고를 막아요 · helm: 쿠버네티스 배포 묶음 도구
공개해도 안전하게
공개 서비스라서 새는 곳을 막아뒀어요
🔒
일반 권한으로 실행해요
컨테이너를 root가 아닌 uid 101로 띄워 권한 위험을 줄여요.
🙈
소스는 안 보여요
주소로 /.git을 요청해도 404 — 코드 이력이 새지 않아요.
📂
서비스는 공개, 레포는 비공개
장표는 누구나 보되, 소스 저장소는 private으로 남겨요.
무엇으로 떴나
여섯 조각이 배포를 함께 지켜요
| 자산 | 역할 |
| Rollout | 블루그린으로 새 버전을 무중단 전환해요 |
| active·preview Service | 실트래픽용과 검증용 파드를 나눠줘요 |
| IngressRoute + retry | 도메인 라우팅 + 전환 순간 순단을 재시도로 흡수해요 |
| Certificate | Let's Encrypt 인증서를 자동 발급·갱신해요 |
| smoke 테스트 | 전환 전 preview가 200을 주는지 확인해요 |
| build script | 이미지 빌드·태깅·배포를 한 번에 처리해요 |
이제 장표를 push하면
알아서 떠요
document-center.rp-space.co.kr