-
쿠버네티스 (k8s) Core Dns란?Server 2025. 6. 25. 21:29
쿠버네티스를 사용하다보면 파드(pod)끼리 ip로 연결 하는게 아닌 도메인명으로 통신하는 설정을 많이 보게 됩니다.
이 도메인은 뜬금없이 어디서 나타났는지 궁금하기도 하죠. 쿠버네티스는 자기만의 DNS서버를 구동합니다.
kube-system이란 네임스페이스에 보면 coredns라는 파드가 보이게 됩니다.
이 파드들이 쿠버네티스 내부에서 DNS서버 역할을 하게 됩니다.A라는 파드가 B라는 파드에 요청을 보내는경우
<B-pod-servicename>.<namespace>.svc.cluster.local 이라는 도메인명으로 요청을 보내게 되면 됩니다.같은 네임스페이스에 있는경우는 줄여서 <B-pod-servicename>만으로도 가능합니다.
좀 더 깊이 들여다보면 A라는 파드에 접근해서 /etc/resolv.conf를 열어보면 알 수 있습니다.
해당 파일은 지정된 클러스터 DNS로 전달되게 셋팅되어 있습니다.
그리고 Corefile이라고 CoreDNS에 주요 설정 파일이 있는데 이것도 한번 열어보면 이해하는데 도움이 많이 됩니다.
보통 열어보면 내용은 아래와 같습니다.
kubectl -n kube-system get configmap coredns -o yaml
열어보는 명령어니까 참고하시면 됩니다.
.:53 { errors health ready kubernetes cluster.local in-addr.arpa ip6.arpa { pods insecure fallthrough in-addr.arpa ip6.arpa ttl 30 } prometheus :9153 forward . /etc/resolv.conf cache 30 loop reload loadbalance }
위 플러그인에 설명을 조금 드리면
kubernetes : 쿠버네시트에 서비스 이름을 ip로 변환
forward : 외부 dns 서버로 요청을 전달
cache : dns 응답 캐싱
health, ready : coreDNS상태 체크를 위한 엔드포인트 제공
reload 설정 변경 시 자동 재로딩
prometheus : 메트릭 수집용 엔드보인트 제공
여기에 보통 log, debug 를 추가해서 coredns에 로그를 보기도 합니다. (제가 그러고 있네요)
이 내용을 이해하고 있어야 나중에 작성할 파드들에 연결문제를 파악하기 수월합니다.
'Server' 카테고리의 다른 글
쿠버네티스 (k8s) 워커노드 추가하기 (0) 2025.06.05 쿠버네티스(k8s) 온프레미스 환경으로 설치하기 (0) 2025.06.04 [AWS EC2] Mongo DB 설치 (0) 2024.05.15 [Server]WebtoB REVERSE_PROXY 사용 (0) 2023.12.14 [Server]TmaxSoft WebtoB 웹서버 http.m 설정 (0) 2023.12.14