traefik https ip TLS in memory hot reload

agnusdei·2026년 9월 21일

k8s Secret과 Traefik의 무중단 TLS 핫 리로드 원리

1. Secret의 본질 : 파드가 아니라 "데이터 레코드"

  [ Pod (파드) ]                 [ Secret (시크릿) ]
  ┌──────────────────────┐       ┌─────────────────────────────────┐
  │  실행 중인 컨테이너   │       │  쿠버네티스 DB 안의 텍스트 데이터 │
  │  (CPU/메모리 먹는    │  VS   │  (tls.crt, tls.key 본문 문자열) │
  │   실제 프로세스)     │       │  * 프로세스 아님! 단순 데이터!  │
  └──────────────────────┘       └─────────────────────────────────┘

2. 무중단 실시간 갱신 메커니즘 (ASCII 시각화)

========================================================================================
             Certbot 갱신 시 Traefik이 무중단으로 새 인증서를 교체하는 흐름
========================================================================================

 1. [호스트 Certbot] (6일 주기 갱신 완료)
        │
        │ deploy-hook 실행: kubectl apply (Secret 덮어쓰기)
        ▼
 2. [k8s Secret (web-builder-tls)]
        ┌────────────────────────────────────────────────────────┐
        │  쿠버네티스 내부 DB                                    │
        │  기존 만료 인증서 ──────(내용물 UPDATE)─────▶ 새 인증서 │
        └────────────────────────┬───────────────────────────────┘
                                 │
                                 │ 🔔 k8s Watch API 이벤트 실시간 발송!
                                 │    "web-builder-tls Secret이 변경되었습니다!"
                                 ▼
 3. [Traefik Ingress Pod] (상시 러닝 중)
        ┌────────────────────────────────────────────────────────┐
        │  Traefik Pod                                           │
        │  - 파드 재부팅(Restart) 없음! (다운타임 0초)           │
        │  - 메모리 상에서 구버전 인증서 버리고 새 인증서 로드   │
        │    (In-Memory Hot Reload)                              │
        └────────────────────────┬───────────────────────────────┘
                                 │
                                 ▼
 4. [외부 사용자 접속]
        다음 접속자부터 즉시 새 인증서로 암호화(HTTPS) 핸드셰이크 처리 완료!
========================================================================================

3. 핵심 3줄 요약

  1. Secret은 파드가 아니다: 백그라운드 프로세스가 아니며, 쿠버네티스 DB에 저장된 순수 설정 텍스트(문자열)입니다.
  2. 이름 그대로 덮어쓴다: 새 리소스를 만드는 게 아니라, 기존 web-builder-tls의 내용물만 UPDATE합니다.
  3. 무중단 핫 리로드: Traefik은 k8s Watch 이벤트로 Secret 변경을 실시간 감지하여, 파드 재부팅 없이 메모리에서 즉시 새 인증서로 갈아끼웁니다.

0개의 댓글