https://app.example.com 한 번의 요청이 어떤 경로로 Pod까지 도달하는지, 그리고 각 지점이 깨지면 502 / 404 / TLS 경고 중 어느 에러가 나는지를 직접 추적합니다.
카드를 뒤집기 전에 "맞다 / 틀리다"를 먼저 마음속으로 정하세요.
https://app.example.com 요청 하나가 거치는 경로를 한 칸씩 따라가세요. ③~⑥은 모두 Traefik 한 프로세스 안에서 일어납니다.
각 단계가 무엇을 하는지, 깨지면 어떤 에러가 나는지 함께 확인합니다.
Traefik은 Ingress YAML을 읽어 내부적으로 이 5종 객체를 만듭니다. 하나라도 잘못되면 요청이 흐르지 않습니다.
https://로 접속한다고 브라우저부터 Pod까지 하나의 터널이 뚫리는 게 아닙니다. 아래 구간을 클릭해 차이를 비교하세요.
| 누구↔누구 | 브라우저 ↔ Traefik |
| 인증서 | K8s Secret (kubernetes.io/tls) |
| 설정 위치 | Ingress spec.tls + secretName, 어노테이션 router.tls: "true" |
| Traefik 역할 | 이 구간 암호화를 종단(TLS Termination) — 내부에서 복호화된 HTTP로 처리 |
| 깨지면 | 인증서 경고 / SSL 핸드셰이크 실패 |
| 누구↔누구 | Traefik ↔ Pod (백엔드) |
| 기본 동작 | HTTP로 붙음 — 구간1 종단 후 Traefik 내부는 HTTP |
| Pod가 HTTPS면 | Traefik에게 알려줘야 함 (기본값은 http) |
| 필요한 설정 | ① Service 어노테이션: serversscheme: https② 자기서명 cert면: ServersTransport (insecureSkipVerify: true)③ Service 어노테이션: serverstransport: <ns>-<name>@kubernetescrd |
| 깨지면 | 502 Bad Gateway |
증상을 고르기 전에 "이건 몇 번 구간 문제일까?"를 먼저 예측하세요.
먼저 답을 입 밖으로 말해본 뒤 카드를 여세요. 보기 전에 떠올린 그 순간이 기억을 만듭니다.
에러가 나면 아래(기초)부터 위로 한 칸씩 올라가세요. 클릭하면 명령어가 나옵니다.
Client → DNS → LB/NodePort → EntryPoint → TLS종단 → Router매칭 → Middleware → K8s Service → Endpoints → Pod