Advanced 퀴즈

지원 버전: Istio 1.28.0 EKS 버전: 1.34 (Kubernetes 1.28+) 마지막 업데이트: 2026년 2월 19일

이 퀴즈는 Istio의 고급 기능에 대한 이해도를 테스트합니다.

객관식 문제 (1-5번)

문제 1: Ambient Mode vs Sidecar Mode

Istio Ambient Mode의 가장 큰 장점은?

A. 더 많은 기능 제공 B. 리소스 사용량 대폭 감소 C. 더 빠른 설치 속도 D. 더 나은 보안

chevron-right정답 및 해설hashtag

정답: B

Ambient Mode의 가장 큰 장점은 리소스 사용량이 98% 이상 감소한다는 것입니다.

해설:

Sidecar Mode vs Ambient Mode 비교:

항목
Sidecar Mode
Ambient Mode
개선

메모리

50MB × Pod 수

ztunnel + waypoint만

98%+ 감소

CPU

0.1 vCPU × Pod 수

ztunnel + waypoint만

98%+ 감소

Pod 재시작

필요

불필요

운영 간소화

배포 속도

느림 (Sidecar 주입)

빠름

5-10배 향상

1000개 Pod 규모에서 리소스 비교:

Sidecar Mode:
- 메모리: 1000 × 50MB = 50GB
- CPU: 1000 × 0.1 vCPU = 100 vCPU

Ambient Mode (10개 노드):
- 메모리: (10 × 50MB) + 200MB = 700MB
- CPU: (10 × 0.1 vCPU) + 0.5 vCPU = 1.5 vCPU

절감률: 98.6% (메모리), 98.5% (CPU)

Ambient Mode 아키텍처:

Ambient Mode 활성화:

# Ambient Mode로 Istio 설치
istioctl install --set profile=ambient -y

# Namespace를 Ambient Mode에 추가
kubectl label namespace default istio.io/dataplane-mode=ambient

# 확인
kubectl get pods -n istio-system | grep ztunnel

각 옵션 분석:

  • A (X): 기능은 Sidecar와 동일 (일부 고급 기능은 waypoint 필요)

  • B (O): 리소스 사용량이 98% 이상 감소

  • C (X): 설치 속도는 부차적 이점

  • D (X): 보안 수준은 동일 (mTLS, AuthorizationPolicy 모두 지원)

참고 자료:


문제 2: Multi-cluster Mesh

Istio Multi-cluster Mesh에서 클러스터 간 서비스 검색을 담당하는 것은?

A. Istiod B. CoreDNS C. East-West Gateway D. Service Entry

chevron-right정답 및 해설hashtag

정답: A

Istiod는 멀티 클러스터 환경에서 모든 클러스터의 서비스 정보를 수집하고 배포합니다.

해설:

Multi-cluster Mesh 아키텍처:

Istiod의 역할:

  1. 서비스 검색 (Service Discovery):

    • 모든 클러스터의 Kubernetes Service 수집

    • 통합된 서비스 레지스트리 유지

    • Envoy에 엔드포인트 정보 배포

  2. 구성 배포:

    • VirtualService, DestinationRule을 모든 클러스터에 배포

    • Cross-cluster 라우팅 규칙 관리

  3. 인증서 관리:

    • 모든 클러스터의 mTLS 인증서 발급

    • Root CA를 공유하여 신뢰 체인 구축

Multi-cluster 설정 예시:

# Primary 클러스터 설정
apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
spec:
  values:
    global:
      meshID: mesh1
      multiCluster:
        clusterName: cluster1
      network: network1

---
# Remote 클러스터에서 Primary 접근
apiVersion: v1
kind: Secret
metadata:
  name: istio-remote-secret-cluster2
  namespace: istio-system
  annotations:
    networking.istio.io/cluster: cluster2
type: Opaque
data:
  kubeconfig: <base64-encoded-kubeconfig>

각 옵션 분석:

  • A (O): Istiod가 모든 클러스터의 서비스 정보를 수집하고 배포

  • B (X): CoreDNS는 클러스터 내부 DNS만 담당

  • C (X): East-West Gateway는 트래픽 라우팅만 담당 (서비스 검색 아님)

  • D (X): ServiceEntry는 외부 서비스를 수동으로 등록하는 리소스

참고 자료:


문제 3: EnvoyFilter 사용 목적

EnvoyFilter를 사용하는 주요 목적은?

A. Kubernetes Service 생성 B. VirtualService 자동 생성 C. Envoy 프록시 동작 커스터마이징 D. Istiod 구성 변경

chevron-right정답 및 해설hashtag

정답: C

EnvoyFilter는 Envoy 프록시의 동작을 세밀하게 커스터마이징하기 위한 고급 리소스입니다.

해설:

EnvoyFilter 사용 사례:

  1. 커스텀 헤더 추가:

  1. Wasm 확장 통합:

  1. Rate Limiting 통합:

EnvoyFilter 적용 범위:

주의사항:

⚠️ EnvoyFilter는 매우 강력하지만 위험합니다:

  • Envoy 내부 구조에 대한 깊은 이해 필요

  • Istio 버전 업그레이드 시 호환성 문제 가능

  • 잘못된 구성으로 전체 메시 장애 가능

모범 사례:

  1. 가능하면 VirtualService, DestinationRule 사용

  2. EnvoyFilter는 최후의 수단으로만 사용

  3. 테스트 환경에서 충분히 검증

  4. workloadSelector로 범위 제한

각 옵션 분석:

  • A (X): Kubernetes Service 생성은 kubectl로 수행

  • B (X): VirtualService는 수동으로 생성

  • C (O): Envoy 프록시의 동작을 세밀하게 커스터마이징

  • D (X): Istiod 구성은 IstioOperator로 변경

참고 자료:


문제 4: Sidecar Injection

Istio에서 자동 Sidecar 주입을 비활성화하는 방법은?

A. Namespace에서 istio-injection=enabled 레이블 제거 B. Pod에 sidecar.istio.io/inject="false" annotation 추가 C. Istiod 재시작 D. A와 B 모두 가능

chevron-right정답 및 해설hashtag

정답: D

Namespace 레벨과 Pod 레벨 모두에서 Sidecar 주입을 제어할 수 있습니다.

해설:

Sidecar 주입 제어 방법:

1. Namespace 레벨 (A - O):

2. Pod 레벨 (B - O):

Sidecar 주입 우선순위:

Sidecar 주입 검증:

혼합 환경 예시:

각 옵션 분석:

  • A (O): Namespace 레벨에서 Sidecar 주입 제어 가능

  • B (O): Pod 레벨에서 Sidecar 주입 제어 가능

  • C (X): Istiod 재시작은 불필요

  • D (O): A와 B 모두 유효한 방법

참고 자료:


문제 5: Argo Rollouts 통합

Argo Rollouts와 Istio를 함께 사용할 때 트래픽 분할을 담당하는 것은?

A. Argo Rollouts Controller B. Istio VirtualService C. Kubernetes Service D. Istio Gateway

chevron-right정답 및 해설hashtag

정답: B

Istio VirtualService가 실제 트래픽 분할을 수행하고, Argo Rollouts는 VirtualService의 weight 값을 자동으로 업데이트합니다.

해설:

Argo Rollouts + Istio 통합 아키텍처:

VirtualService 역할:

Argo Rollouts 설정:

배포 프로세스:

책임 분담:

컴포넌트
역할

Argo Rollouts

- Pod 생성/삭제 - VirtualService weight 업데이트 - 배포 전략 실행 - 자동 롤백

Istio VirtualService

- 실제 트래픽 분할 - 라우팅 규칙 적용 - Envoy 구성 생성

Envoy Proxy

- 트래픽 라우팅 실행 - 메트릭 수집

Prometheus

- 메트릭 저장 - AnalysisTemplate에 데이터 제공

실제 트래픽 흐름:

각 옵션 분석:

  • A (X): Argo Rollouts는 VirtualService를 업데이트만 함 (직접 트래픽 분할 안함)

  • B (O): VirtualService가 실제 트래픽 분할 수행

  • C (X): Kubernetes Service는 로드 밸런싱만 담당 (트래픽 분할 안함)

  • D (X): Gateway는 외부 트래픽 진입점 (트래픽 분할 안함)

참고 자료:


주관식 문제 (6-10번)

문제 6: Ambient Mode 비용 절감 분석

AWS EKS 클러스터에서 Sidecar Mode에서 Ambient Mode로 전환할 때의 비용 절감 효과를 계산하세요. (가정: 500개 Pod, 5개 노드, r5.xlarge 인스턴스, 월 730시간 운영)

chevron-right예시 답안hashtag

답변:

비용 절감 분석:


1. 가정 조건


2. Sidecar Mode 리소스 계산

필요 인스턴스 수 (r5.xlarge: 4 vCPU, 32GB RAM):

Sidecar Mode 월간 비용:


3. Ambient Mode 리소스 계산

필요 인스턴스 수:

Ambient Mode 월간 비용:


4. 비용 절감 효과


5. 리소스 절감 요약

항목
Sidecar Mode
Ambient Mode
절감

메모리

25GB

0.45GB

24.55GB (98.2%)

CPU

50 vCPU

1.0 vCPU

49 vCPU (98.0%)

인스턴스

13대

1대

12대 (92.3%)

월간 비용

$2,395.56

$183.96

$2,211.60 (92.3%)

연간 비용

$28,746.72

$2,207.52

$26,539.20 (92.3%)


6. 추가 비용 절감 요인

네트워크 비용:

  • Sidecar Mode: localhost 통신 없음 (모든 트래픽이 네트워크 통과)

  • Ambient Mode: ztunnel 간 직접 통신으로 효율 향상

운영 비용:

  • Pod 재시작 불필요 (배포 시간 단축)

  • Sidecar 주입 오류 없음

  • 관리 복잡도 감소

성능 향상:

  • 메모리 압박 감소로 Pod 성능 향상

  • OOMKilled 빈도 감소

  • 노드 자원 여유 확보


7. ROI (Return on Investment)


8. 실전 고려사항

장점:

  • ✅ 92% 이상 비용 절감

  • ✅ 운영 간소화

  • ✅ 배포 속도 향상

  • ✅ 리소스 효율 극대화

주의사항:

  • ⚠️ Istio 1.28+ 베타 기능

  • ⚠️ L7 기능 필요 시 waypoint 추가 배포

  • ⚠️ 일부 고급 기능은 Sidecar 모드 필요

  • ⚠️ 충분한 테스트 필요

참고 자료:


문제 7: Multi-cluster Service Mesh 구성

2개의 EKS 클러스터(us-east-1, us-west-2)를 하나의 Istio Mesh로 통합하는 방법을 설명하세요. Primary-Remote 모델을 사용하고, 클러스터 간 서비스 호출 예시를 포함해야 합니다.

chevron-right예시 답안hashtag

답변:

Multi-cluster Istio Mesh 구성:


1. 아키텍처 개요


2. 사전 준비


3. 클러스터 1 (Primary) 설정


4. 클러스터 2 (Remote) 설정


5. 서비스 배포 및 검증

클러스터 1에 Service A 배포:

클러스터 2에 Service B 배포:


6. Cross-cluster 서비스 호출 테스트


7. 서비스 검색 확인


8. 트래픽 정책 적용


9. 모니터링 및 검증


10. 주의사항 및 모범 사례

주의사항:

  • ⚠️ 공유 Root CA 필수

  • ⚠️ 네트워크 레이턴시 고려

  • ⚠️ East-West Gateway 보안 강화

  • ⚠️ DNS 해석 올바르게 설정

모범 사례:

  • ✅ Locality-aware 라우팅 활성화

  • ✅ Circuit Breaker 설정

  • ✅ 클러스터별 replica 유지

  • ✅ Cross-cluster 트래픽 모니터링

참고 자료:


문제 8: EnvoyFilter로 커스텀 Rate Limiting

EnvoyFilter를 사용하여 특정 경로(/api/premium/*)에만 사용자별 Rate Limiting(분당 100 요청)을 적용하는 방법을 구현하세요.

chevron-right예시 답안hashtag

답변:

EnvoyFilter 기반 Rate Limiting 구현:


1. 아키텍처 개요


2. Redis Rate Limit 서버 배포


3. EnvoyFilter 구성


4. VirtualService 구성


5. 테스트 애플리케이션


6. 테스트


7. Rate Limit 헤더 확인


8. Redis 모니터링


9. Prometheus 메트릭


10. 주의사항 및 모범 사례

주의사항:

  • ⚠️ Redis 고가용성 구성 필요 (프로덕션)

  • ⚠️ Rate Limit 서버 장애 시 동작 정의 (failure_mode_deny)

  • ⚠️ 사용자 식별 헤더 (x-user-id) 신뢰성 확보

  • ⚠️ EnvoyFilter는 Istio 버전 업그레이드 시 호환성 확인 필요

모범 사례:

  • ✅ Redis Sentinel 또는 Cluster 사용

  • ✅ Rate Limit 서버 replica ≥ 2

  • ✅ 적절한 모니터링 및 알림

  • ✅ 사용자별 예외 처리 (VIP 사용자 등)

참고 자료:


문제 9: Argo Rollouts Blue/Green 배포

Argo Rollouts와 Istio를 사용하여 Blue/Green 배포를 구현하세요. 자동 분석(AnalysisTemplate)을 포함하고, 실패 시 자동 롤백되도록 구성해야 합니다.

chevron-right예시 답안hashtag

답변:

Argo Rollouts Blue/Green 배포 구현:


1. Blue/Green 배포 개념


2. Kubernetes Service 생성


3. Istio Gateway 및 VirtualService


4. AnalysisTemplate 정의


5. Rollout 리소스 정의


6. 새 버전 배포


7. 배포 프로세스


8. 수동 승격


9. 자동 롤백 시나리오

시나리오 1: prePromotionAnalysis 실패

시나리오 2: postPromotionAnalysis 실패


10. 모니터링 및 대시보드

Prometheus 쿼리:


11. 모범 사례

장점:

  • ✅ 즉시 롤백 가능 (스위치 전환)

  • ✅ 프로덕션 영향 최소화

  • ✅ 충분한 테스트 시간 확보

  • ✅ 자동 분석 및 롤백

주의사항:

  • ⚠️ 2배 리소스 필요 (Blue + Green)

  • ⚠️ 데이터베이스 스키마 호환성 확인

  • ⚠️ 세션 관리 (Sticky Session 필요 시)

참고 자료:


문제 10: DNS Caching 성능 최적화

Istio에서 DNS Caching을 활성화하여 외부 서비스 호출 성능을 개선하는 방법을 설명하세요. 벤치마크 결과를 포함해야 합니다.

chevron-right예시 답안hashtag

답변:

Istio DNS Caching 구현 및 성능 측정:


1. DNS Caching 필요성

문제: DNS 조회 오버헤드

해결: DNS Caching 활성화


2. ServiceEntry로 외부 서비스 등록


3. DestinationRule로 DNS Caching 활성화


4. EnvoyFilter로 고급 DNS 설정


5. 테스트 애플리케이션 배포


6. 성능 벤치마크

DNS Caching 비활성화 (Before):

DNS Caching 활성화 (After):

성능 개선:


7. Envoy 통계 확인


8. 상세 벤치마크 결과

테스트 환경:

  • 클러스터: AWS EKS 1.34

  • Istio: 1.28.0

  • 노드: r5.xlarge

  • 위치: us-east-1

  • 외부 API: api.github.com

벤치마크 도구: Apache Bench


9. 비교표

항목
DNS Caching 비활성화
DNS Caching 활성화
개선

평균 응답 시간

287ms

152ms

47% ↓

P95 응답 시간

350ms

180ms

49% ↓

P99 응답 시간

420ms

210ms

50% ↓

처리량 (RPS)

12.34

23.15

88% ↑

DNS 캐시 히트율

0%

99%

-

연결 재사용률

0%

95%

-


10. Prometheus 모니터링


11. 모범 사례

권장 설정:

  • ✅ DNS 리프레시 간격: 5-15분 (외부 서비스 TTL 고려)

  • ✅ Connection Pool 활성화 (연결 재사용)

  • ✅ HTTP/2 사용 (멀티플렉싱)

  • ✅ Keep-Alive 활성화

주의사항:

  • ⚠️ TTL이 짧은 서비스는 리프레시 간격 줄이기

  • ⚠️ DNS 변경 시 캐시 무효화 시간 고려

  • ⚠️ 장애 조치 시나리오 테스트

참고 자료:


점수 계산

  • 객관식 1-5번: 각 10점 (총 50점)

  • 주관식 6-10번: 각 10점 (총 50점)

  • 총점: 100점

평가 기준:

  • 90-100점: 우수 (Istio 고급 기능 전문가)

  • 80-89점: 양호 (고급 기능 활용 가능)

  • 70-79점: 보통 (추가 학습 권장)

  • 60-69점: 미흡 (기본 개념 복습 필요)

  • 0-59점: 재학습 필요

학습 자료

마지막 업데이트