LabHub
배우기 러닝패스 코스

ICA — 이스티오 인증 어소시에이트 · 진짜 메시에서 확인하기 · 실습

503 은 보이는데 설정은 전부 적용됐다고 한다

LabHub 에서 이어서 보기

목표

실제 Istio 1.31 메시(VM 안의 k3s)에서, 인계받은 설정이 만든 네 가지 증상 — 헤더 규칙 무시, /api 의 503,
카나리 헤더의 503, 사이드카 없는 클라이언트의 연결 끊김 — 을 증거에서 원인으로 좁혀 고칩니다.
마지막으로 istiod 를 잠시 내려 컨트롤 플레인이 없을 때 무엇이 계속되고 무엇이 막히는지 직접 봅니다.

왜 중요한가

메시에서 503 은 원인이 하나가 아닙니다. 설정이 가리키는 클러스터가 아예 없을 수도(NC), 클러스터는 있는데 고를 파드가
없을 수도(UH), 요청이 HTTP 로 해석되지도 못했을 수도(NR) 있습니다. kubectl apply 가 성공했다는 것은 API 서버가
받았다는 뜻일 뿐, Envoy 가 그 규칙을 어떻게 쓰는지는 따로 확인해야 합니다. 그래서 문제 해결은 세 층으로 나눕니다.

단계

1. 인계받은 설정을 적용하고 네 파드의 uid·사이드카 여부를 기록합니다.
2. 헤더 규칙이 무시되는 이유를 리스너에서 찾고(tcp_proxy), 서비스 포트 이름으로 프로토콜을 바로잡습니다.
3. Telemetry API 로 네임스페이스 접근 로그를 켭니다.
4. /api 의 503 을 접근 로그(NC)와 analyze 로 확인하고 없는 subset 참조를 고칩니다.
5. 카나리 헤더의 503 을 접근 로그(UH)와 빈 엔드포인트로 확인하고 subset 라벨을 고칩니다.
6. 사이드카 없는 legacy 의 끊김을 서버 로그(NR)로 확인하고 STRICT 를 유지한 채 메시에 넣습니다.
7. istiod 를 내렸다 올리며 기존 트래픽·설정 쓰기·새 파드가 각각 어떻게 되는지 기록합니다.
8. 증거 파일에서 옮긴 보고서를 씁니다.

참고

단계 8개

  1. 인계받은 메시의 파드와 프록시 목록 적기
  2. 헤더 규칙을 썼는데 트래픽이 그냥 반반으로 간다
  3. 프록시가 무슨 일이 있었는지 말하게 하기
  4. /api 만 503, 그런데 서버 파드는 멀쩡하다
  5. 카나리 헤더를 붙이면 no healthy upstream
  6. 사이드카 없는 옛 클라이언트만 연결이 끊긴다
  7. istiod 가 내려간 동안 무엇이 멈추는가
  8. 네 가지 503·끊김을 증거로 분류한 보고서