DNS Caching

지원 버전: Istio 1.28+ 마지막 업데이트: 2026년 2월 23일

Istio의 DNS 관리 기능을 통해 외부 서비스 접근 성능을 최적화하고 DNS 조회를 제어합니다.

목차

DNS Proxy 개요

Istio DNS Proxy는 Envoy가 DNS 서버 역할을 하여 애플리케이션의 DNS 요청을 가로채고 처리하는 기능입니다.

주요 기능

  1. DNS 쿼리 가로채기: UDP 53번 포트의 DNS 요청을 Envoy가 처리

  2. ServiceEntry 기반 해석: 외부 서비스를 ServiceEntry로 등록하면 자동으로 DNS 응답 생성

  3. 자동 IP 할당: 외부 서비스에 가상 IP 자동 할당

  4. CoreDNS 우회: Kubernetes DNS 서버 부하 감소

아키텍처

spinner

DNS Proxy vs DNS Caching

두 기능은 서로 다른 목적과 동작 방식을 가집니다:

특성
DNS Proxy
DNS Caching

역할

DNS 서버 역할 수행

DNS 조회 결과 캐싱

동작

DNS 쿼리 가로채기 및 직접 응답

외부 DNS 조회 후 결과 저장

구성

ISTIO_META_DNS_CAPTURE

dns_refresh_rate

대상

ServiceEntry 등록된 서비스

모든 외부 DNS 조회

IP 할당

가상 IP 자동 할당

실제 DNS 응답 사용

CoreDNS

우회 가능

여전히 사용

Istio 버전

1.8+

모든 버전

통합 사용

두 기능을 함께 사용하면 최적의 성능을 얻을 수 있습니다:

spinner

DNS Proxy 설정

1. 전역 활성화

모든 네임스페이스에 DNS Proxy 적용:

2. 네임스페이스별 활성화

특정 네임스페이스만 활성화:

3. 파드별 활성화

특정 파드에만 활성화:

4. iptables 규칙 확인

DNS Proxy가 활성화되면 다음 iptables 규칙이 추가됩니다:

ServiceEntry 통합

DNS Proxy는 ServiceEntry와 긴밀히 통합되어 작동합니다.

기본 ServiceEntry

DNS Proxy 동작:

  1. 애플리케이션이 api.example.com DNS 조회

  2. Envoy DNS Proxy가 가상 IP (예: 240.240.0.1) 반환

  3. 애플리케이션이 가상 IP로 요청

  4. Envoy가 실제 IP로 변환하여 전송

여러 호스트 등록

엔드포인트 명시

DNS Caching 설정

DNS Caching은 외부 DNS 조회 성능을 향상시킵니다.

Envoy DNS Cache 활성화

고급 DNS Cache 설정

특정 서비스에만 적용

자동 주소 할당

DNS Proxy는 ServiceEntry에 등록된 서비스에 가상 IP를 자동으로 할당합니다.

자동 할당 동작

spinner

주소 범위 설정

기본적으로 240.240.0.0/16 대역이 사용됩니다. 변경이 필요한 경우:

할당된 IP 확인

문제 해결

DNS Proxy 작동 확인

일반적인 문제

문제 1: DNS 쿼리가 여전히 CoreDNS로 감

원인: DNS Proxy가 활성화되지 않음

해결책:

문제 2: ServiceEntry가 DNS Proxy에 반영되지 않음

원인: ServiceEntry 구성 오류 또는 xDS 동기화 지연

해결책:

문제 3: 가상 IP로 연결 실패

원인: 주소 충돌 또는 라우팅 문제

해결책:

디버깅 도구

Envoy Admin API 활용

패킷 캡처

모범 사례

1. DNS Proxy 활성화 전략

권장 접근법: 단계적 롤아웃

spinner

2. ServiceEntry 관리

3. DNS Cache TTL 설정

4. 모니터링 메트릭

5. 보안 고려사항

6. 성능 튜닝

참고 자료

공식 문서

관련 문서

마지막 업데이트