Kubernetes

CoreDNS NXDOMAIN 오류 해결

DevelopC 2022. 9. 21. 09:43
728x90

CoreDNS NXDOMAIN 오류 해결

kubernetes에서 필수구성요소인 CoreDNS의 MXDOMAIN 오류를 해결하는 방법입니다. 

NXDOMAIN 오류란?

  • MXDOMAIN 오류는 등록되지않은 DNS를 조회하여 나오는 오류입니다.
  • kubernetes에서 service discovery를 위해 kubernetes에서 사용하는 규칙으로 DNS 질의시 5번정도 더 질의하게 되는데, 이때 질의되는 도메인이 DNS서버에 등록되지않은 도메인이기때문에 오류가 발생합니다.
  • AWS에서는 도메인 질의를 너무 많이하게되면, EC2 DNS Limit(1024 packets per second) 제한이 걸려서 DNS질의 실패로 서비스에 장애가 발생할 가능성이 있습니다.
  • 아래의 로그는 CoreDNS에 로그를 설정하여 MXDOMAIN 오류 에러 로그입니다.
    • CoreDNS의 로그를 출력하려면 log설정을 해주어야합니다.
[INFO] 10.0.100.100:43584 - 252 "A IN secretsmanager.ap-northeast-2.amazonaws.com.cluster.local. udp 75 false 512" NXDOMAIN qr,aa,rd 168 0.000103938s
[INFO] 10.0.4.3:43584 - 584 "AAAA IN secretsmanager.ap-northeast-2.amazonaws.com.cluster.local. udp 75 false 512" NXDOMAIN qr,aa,rd 168 0.000147656s
[INFO] 10.1.10.100:42304 - 10747 "AAAA IN secretsmanager.ap-northeast-2.amazonaws.com.kube-system.svc.cluster.local. udp 91 false 512" NXDOMAIN qr,aa,rd 184 0.000053758s
[INFO] 10.1.0.182:42304 - 10347 "A IN secretsmanager.ap-northeast-2.amazonaws.com.kube-system.svc.cluster.local. udp 91 false 512" NXDOMAIN qr,aa,rd 184 0.000095001s

해결방법

위의 문제를 해결하기위해 아래와 같이 dnsConfig의 ndots설정을 통해 NXDOMAIN 오류를 해결할 수 있습니다.

apiVersion: v1
kind: Pod
metadata:
  name: dns-example
spec:
  containers:
    - name: nginx
      image: nginx:1.22
  dnsConfig:
    options:
      - name: ndots
        value: "1"
728x90