어떤 증상인가

컨테이너 DNS 실패 문제가 나타난 입력, 직전 동작과 실제 결과를 함께 적습니다. 예를 들어 “가끔 실패”라고 쓰는 대신 정상 사례와 실패 사례를 하나씩 두고, 두 사례에서 달라진 version·설정·데이터를 표로 남깁니다.

사례 입력과 상태 결과
정상 가장 작은 정상 조건 기대한 결과
실패 한 조건만 달라진 재현 실제 오류·값

원인을 좁히는 순서

container DNS 문제는 service name, network 연결, embedded DNS와 upstream resolver를 분리해 확인해야 합니다.

DNS, TCP, TLS, proxy와 application 구간을 나눠 connect·header·response 시간을 측정합니다. 마지막에 보인 HTTP status 하나로 실패 지점을 추측하지 않습니다. 컨테이너 로그만 보지 않고 inspect, events, stats, health 상태와 호스트 커널 로그를 함께 확인한다. 정상과 실패를 번갈아 실행하고, 이 원인이 맞다면 달라져야 할 값부터 확인합니다. 관련 없는 로그와 설정을 한꺼번에 바꾸지 않습니다.

수정하고 확인하기

잘못된 주소와 신뢰 header를 바로잡고 각 계층의 timeout budget, keep-alive 수명과 connection pool을 일관되게 설정합니다. 이미지를 불변 산출물로 만들고 CPU·메모리·PID·파일 크기 제한과 정상 종료 정책을 배포 명세에 둔다.

수정 전 실패 사례가 사라지고 기존 정상 사례가 유지돼야 합니다. 동일 이미지로 재현한 뒤 health, 종료 신호, 볼륨 영속성, 제한 도달 시 동작과 롤백을 검증한다. 지연, 연결 거절, 중간 종료와 DNS 변경을 주입해 오류가 제한 시간 안에 분류되고 socket이 반환되는지 확인합니다. 가장 작은 실패 입력은 자동 테스트나 실행 가능한 점검 명령으로 남깁니다.

공식 문서와 적용 범위

문서의 기본값과 동작은 version에 따라 달라질 수 있습니다. 현재 version, 실제 적용 설정, 자원 제한과 운영 환경에서 다시 확인합니다.