LabHub
배우기 러닝패스 코스

Istio 심화 — 왜 그렇게 흐르는가 · VirtualService 가 라우트 표가 되기까지 · 퀴즈

VirtualService 번역 확인

LabHub 에서 이어서 보기

6문항. 정답과 해설은 풀어 본 뒤에 보여 드립니다.

  1. 서비스 reviews(네임스페이스 default, 포트 9080)의 VirtualService 가 사이드카에서 들어가는 라우트 표의 이름은?

    1. reviews
    2. reviews.default.svc.cluster.local
    3. outbound|9080||reviews.default.svc.cluster.local
    4. 9080
  2. VirtualService 에 `default`(조건 없음) 규칙을 맨 앞에, `jason` 헤더 규칙을 그 뒤에 두었다. 무슨 일이 생기는가?

    1. Envoy 가 더 구체적인 헤더 규칙을 먼저 평가하므로 의도대로 동작한다
    2. 모든 요청이 default 에 맞아 jason 규칙은 쓰이지 않고, istioctl analyze 도 이를 경고하지 않는다
    3. istioctl analyze 가 도달할 수 없는 규칙이라며 오류로 막는다
    4. istiod 가 규칙을 구체성 순으로 다시 정렬해 내려보낸다
  3. Host 헤더 `ratings` 로 온 요청이 reviews 의 가상 호스트만 있는 라우트 표에 들어왔다. 결과는?

    1. reviews 가상 호스트로 보내진다 — 표에 하나뿐이므로
    2. 503 — 클러스터를 찾지 못했으므로
    3. 404 — 어느 가상 호스트의 domains 에도 맞지 않아 라우트가 없으므로
    4. 연결이 거절된다 — 리스너가 Host 로 거르므로
  4. `retries: {attempts: 3, retryOn: 5xx}` 인 라우트로 늘 503 을 내는 업스트림에 요청 하나를 보냈다. 업스트림이 받는 요청 수는?

    1. 4번 — 원래 요청 1번과 재시도 3번
    2. 3번 — attempts 는 원래 요청을 포함한 총 횟수다
    3. 1번 — 5xx 는 업스트림 응답이라 재시도 대상이 아니다
    4. 6번 — 재시도마다 연결을 다시 맺어 두 번씩 센다
  5. `weight: 75 / 25` 로 걸고 요청 40개를 보냈더니 v1 27, v2 13 이 나왔다. 해석으로 맞는 것은?

    1. 가중치 설정이 반영되지 않았다 — 정확히 30/10 이어야 한다
    2. 정상이다 — weighted_clusters 는 요청마다 무작위로 고르므로 적은 횟수에서는 비율이 흔들린다
    3. 워커 스레드가 둘이라 가중치가 절반씩 적용됐다
    4. v2 로 간 요청 일부가 재시도로 두 번 세어졌다
  6. VirtualService 가 한 사이드카의 Envoy 설정에 반영될 때 `hosts: [reviews]` 가 만드는 것은?

    1. `FQDN:포트` 이름의 가상 호스트 하나와, 짧은 이름들을 담은 domains 목록
    2. reviews 로 끝나는 모든 호스트에 맞는 와일드카드 가상 호스트 하나
    3. reviews 전용 리스너 하나와 그 리스너의 기본 라우트
    4. reviews 클러스터 하나와 서브셋별 엔드포인트 목록