Kubernetes에서 DNS는 어떻게 작동하나요?

Kubernetes에서 DNS는 어떻게 작동하나요?

Kubernetes에서 DNS 확인에 문제가 있습니다. 내용이 복잡하니 천천히 읽어보시기 바랍니다.

환경:

  • 온프레미스 및 프라이빗 클라우드

운영 체제

  • 우분투 서버 20.04 LTS

시스템 네트워크:

  • VPN s2
  • LAN 인터페이스에 사용자 정의 DNS(10.4.0.149) 추가

쿠버네티스 네트워크:

  • 옥양목
  • CoreDNS 및 NodelocalDNS

현재 프라이빗 클라우드의 K8s 포드는 로컬 DNS에서 도메인을 확인해야 합니다. 도메인을 확인할 때 포드가 DNS 서버에 도달하는 데 도움이 되도록 사용자 지정 DNS를 추가하기 위해 이 가이드를 따랐습니다.

https://kubernetes.io/docs/tasks/administer-cluster/dns-custom-nameservers/

다음 블록을 사용하세요:

projects.com:53 {
    errors
    log
    cache 30
    forward . 10.4.0.149
}

Pod에서 발굴할 때 도메인을 확인할 수 있는 경우도 있지만 그렇지 않은 경우도 있습니다. 그러나 nslookup은 언제나 작동합니다. Pod에서 도메인에 대한 Ping도 시도했지만 상황은 dig와 동일합니다. 때로는 작동하지만 때로는 작동하지 않습니다. 그건 그렇고, 포드가 있는 노드에서 tcpdump를 통해 네트워크 패킷을 살펴봤지만 운이 없었습니다.

그렇다면 질문은 Kubernetes에서 DNS 확인이 어떻게 작동하는가입니다. AFAIK DNS 확인은 노드의 pod -> nodelocaldns -> coredns -> /etc/resolv.conf에 대한 요청과 함께 작동합니다. 하지만 제대로 작동하지 않는 것 같습니다.

몇 가지 제안을 해주실 수 있나요?

미리 감사드립니다!


나는 tcpdump에서 이것을 얻습니다:

2503    12.026282   10.244.14.63    169.254.25.10   DNS 105 Standard query 0x91f8 A id-test.projects.com OPT
2506    12.049959   169.254.25.10   10.244.14.63    DNS 105 Standard query response 0x91f8 Format error A id-test.projects.com OPT
2772    14.056998   10.244.14.63    169.254.25.10   DNS 105 Standard query 0xc532 A id-test.projects.com OPT
2785    14.079098   169.254.25.10   10.244.14.63    DNS 105 Standard query response 0xc532 Format error A id-test.projects.com OPT
3355    16.086108   10.244.14.63    169.254.25.10   DNS 105 Standard query 0xf86c A id-test.projects.com OPT
3358    16.108111   169.254.25.10   10.244.14.63    DNS 105 Standard query response 0xf86c Format error A id-test.projects.com OPT
4073    18.115002   10.244.14.63    169.254.25.10   DNS 105 Standard query 0x2ba6 A id-test.projects.com OPT
4126    18.137460   169.254.25.10   10.244.14.63    DNS 105 Standard query response 0x2ba6 Format error A id-test.projects.com OPT
4179    18.250697   10.244.14.64    169.254.25.10   DNS 107 Standard query 0x678f A id-test.projects.com.master.svc.cluster.local
4180    18.250736   10.244.14.64    169.254.25.10   DNS 107 Standard query 0xbc8b AAAA id-test.projects.com.master.svc.cluster.local
4196    18.251611   169.254.25.10   10.244.14.64    DNS 200 Standard query response 0xbc8b No such name AAAA id-test.projects.com.master.svc.cluster.local SOA ns.dns.cluster.local
4202    18.251957   169.254.25.10   10.244.14.64    DNS 200 Standard query response 0x678f No such name A id-test.projects.com.master.svc.cluster.local SOA ns.dns.cluster.local
4203    18.252034   10.244.14.64    169.254.25.10   DNS 100 Standard query 0x360a A id-test.projects.com.svc.cluster.local
4204    18.252060   10.244.14.64    169.254.25.10   DNS 100 Standard query 0x6e09 AAAA id-test.projects.com.svc.cluster.local
4215    18.252524   169.254.25.10   10.244.14.64    DNS 193 Standard query response 0x360a No such name A id-test.projects.com.svc.cluster.local SOA ns.dns.cluster.local
4220    18.252637   169.254.25.10   10.244.14.64    DNS 193 Standard query response 0x6e09 No such name AAAA id-test.projects.com.svc.cluster.local SOA ns.dns.cluster.local
4221    18.252697   10.244.14.64    169.254.25.10   DNS 96  Standard query 0x6b3d A id-test.projects.com.cluster.local
4222    18.252718   10.244.14.64    169.254.25.10   DNS 96  Standard query 0x103f AAAA id-test.projects.com.cluster.local
4233    18.253085   169.254.25.10   10.244.14.64    DNS 189 Standard query response 0x103f No such name AAAA id-test.projects.com.cluster.local SOA ns.dns.cluster.local
4238    18.253281   169.254.25.10   10.244.14.64    DNS 189 Standard query response 0x6b3d No such name A id-test.projects.com.cluster.local SOA ns.dns.cluster.local
4239    18.253350   10.244.14.64    169.254.25.10   DNS 82  Standard query 0x4118 A id-test.projects.com
4240    18.253364   10.244.14.64    169.254.25.10   DNS 82  Standard query 0x151e AAAA id-test.projects.com
4244    18.275928   169.254.25.10   10.244.14.64    DNS 168 Standard query response 0x151e AAAA id-test.projects.com SOA ad.global.com
4246    18.276120   169.254.25.10   10.244.14.64    DNS 118 Standard query response 0x4118 A id-test.projects.com A 10.7.22.15
4632    20.146523   10.244.14.63    169.254.25.10   DNS 105 Standard query 0x5ee1 A id-test.projects.com OPT
4633    20.146709   169.254.25.10   10.244.14.63    DNS 141 Standard query response 0x5ee1 A id-test.projects.com A 10.7.22.15 OPT
5042    22.152642   10.244.14.63    169.254.25.10   DNS 105 Standard query 0x921b A id-test.projects.com OPT
5043    22.152818   169.254.25.10   10.244.14.63    DNS 141 Standard query response 0x921b A id-test.projects.com A 10.7.22.15 OPT
5328    24.159482   10.244.14.63    169.254.25.10   DNS 105 Standard query 0xc555 A id-test.projects.com OPT
5329    24.159653   169.254.25.10   10.244.14.63    DNS 141 Standard query response 0xc555 A id-test.projects.com A 10.7.22.15 OPT
5659    26.165768   10.244.14.63    169.254.25.10   DNS 105 Standard query 0xf88f A id-test.projects.com OPT

dig를 사용할 때 형식 오류가 발생하는 이유를 모르겠습니다. 해결 시 컬 포드인 IP 10.244.14.63과 DNS를 해결해야 하는 애플리케이션 서비스의 또 다른 포드(10.244.14.64)를 참고하세요. DNS가 성공하면 dig 명령을 실행하면 올바른 IP 도메인 이름이 즉시 반환됩니다.

이 문제에 대해 어떻게 생각하시나요?

조언해주세요.

미리 감사드립니다.

관련 정보