모범 사례

프로덕션 환경에서 Istio를 성공적으로 운영하기 위한 모범 사례와 권장 사항을 다룹니다.

목차

성능 최적화

1. Control Plane 리소스 최적화

apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
spec:
  components:
    pilot:
      k8s:
        resources:
          requests:
            cpu: 500m
            memory: 2Gi
          limits:
            cpu: 1000m
            memory: 4Gi
        hpaSpec:
          minReplicas: 2
          maxReplicas: 5
          metrics:
          - type: Resource
            resource:
              name: cpu
              target:
                type: Utilization
                averageUtilization: 80

권장 사항:

  • Istiod는 최소 2개 이상의 replicas

  • CPU: 클러스터 크기에 따라 조정

  • 메모리: 서비스 수 × 10KB 정도 예상

2. Data Plane 리소스 최적화

권장 사항:

  • 일반 워크로드: CPU 100m, Memory 128Mi

  • 고트래픽 워크로드: CPU 500m, Memory 512Mi

  • Sidecar 동시성: concurrency: 2 (기본값)

3. Connection Pool 최적화

권장 사항:

  • maxConnections: 워크로드 동시 연결 수 고려

  • maxRequestsPerConnection: HTTP/1.1은 1-2, HTTP/2는 높게

  • idleTimeout: 장시간 연결 필요 시 증가

4. Locality Load Balancing

이점:

  • 크로스 AZ 비용 절감 (~85%)

  • 네트워크 지연시간 감소

  • 가용 영역 장애 자동 처리

5. Sidecar Scope 제한

이점:

  • Envoy 구성 크기 감소

  • 메모리 사용량 감소

  • 구성 푸시 속도 향상

보안 강화

1. Strict mTLS 적용

체크리스트:

  • ✅ 모든 서비스에 STRICT mTLS 적용

  • ✅ PERMISSIVE는 마이그레이션 기간에만 사용

  • ✅ 외부 서비스는 DISABLE (ServiceEntry에서 처리)

2. Authorization Policy

모범 사례:

  • Deny-by-default 정책 사용

  • 최소 권한 원칙 적용

  • Service Account 기반 인증

  • Namespace 격리

3. Egress 트래픽 제어

4. JWT 인증

운영 가이드

1. 배포 전략

점진적 Istio 도입

spinner

Phase 1: Observability (1-2주)

Phase 2: mTLS PERMISSIVE (1-2주)

Phase 3: mTLS STRICT (1주)

Phase 4: Advanced Features (지속적)

  • Traffic Management (Canary, Circuit Breaker)

  • Authorization Policy

  • Rate Limiting

2. 업그레이드 전략

Canary Upgrade

3. High Availability

권장 사항:

  • Istiod: 최소 3개 replica

  • 각 AZ에 고르게 분산

  • PodDisruptionBudget 설정

4. 백업 및 복구

모니터링 및 관찰성

1. Golden Signals

2. Control Plane 모니터링

3. Data Plane 모니터링

4. Alerting Rules

프로덕션 체크리스트

설치 전

설치

보안

트래픽 관리

관찰성

운영

성능

테스트

일반적인 안티패턴

❌ 피해야 할 것들

  1. 모든 것을 한번에 도입

  2. 리소스 제한 없음

  3. PERMISSIVE 모드 장기 사용

  4. Wildcard match 남용

  5. 모니터링 없이 배포

비용 최적화

1. Ambient Mode 고려

2. Locality Load Balancing

3. Sidecar Scope 제한

참고 자료

공식 문서

커뮤니티

추가 자료

마지막 업데이트