피드로 돌아가기
Dev.toInfrastructure
원문 읽기
ndots:5 설정과 ENI 1024pps 제한으로 인한 DNS 타임아웃 해결
DNS is weird inside k8s on AWS
AI 요약
Context
Kubernetes on AWS 환경에서 발생하는 간헐적 DNS 타임아웃 현상 분석. 기본 ndots:5 설정에 따른 쿼리 증폭과 AWS EC2 ENI의 하드웨어적 패킷 제한이 결합되어 발생하는 시스템 병목 지점 파악.
Technical Solution
- ndots 설정을 5에서 1로 변경하여 외부 도메인 조회 시 불필요한 Search Suffix 결합 쿼리 제거
- 단일 호스트네임 조회 시 최대 10배까지 발생하는 쿼리 증폭 현상을 차단하는 구조 설계
- NodeLocal DNSCache 도입을 통한 per-node 캐싱 레이어 구축으로 CoreDNS 네트워크 홉 제거
- link-local IP(169.254.0.0/16) 기반 통신을 통한 UDP conntrack 레이스 컨디션 및 5초 지연 현상 해결
- VPC Resolver로 향하는 트래픽을 NodeLocal DNS에서 1차 필터링하여 ENI 패킷 제한 도달 방지
- linklocal_allowance_exceeded 지표 모니터링을 통한 AWS DNS 쿼리 제한 도달 여부 검증
실천 포인트
1. 외부 API 호출이 많은 Pod의 dnsConfig에서 ndots:1 설정 검토
2. 고트래픽 환경에서 NodeLocal DNSCache 활성화 및 TTL 설정 최적화
3. AWS 환경의 경우 linklocal_allowance_exceeded 지표를 통해 ENI 1024pps 제한 도달 여부 확인