CoreDNS

Yu Sang Min·2025년 6월 26일

CKA

목록 보기
72/110

🚀 CoreDNS 설치 및 구성 가이드


🔥 CoreDNS란?

  • 경량화된 DNS 서버
  • Go 언어로 작성
  • 플러그인 기반 아키텍처
  • Kubernetes 클러스터의 기본 DNS 서비스로 사용됨

🛠️ CoreDNS 설치 방법

  1. CoreDNS 바이너리 다운로드
curl -O https://github.com/coredns/coredns/releases/download/v1.11.1/coredns_1.11.1_linux_amd64.tgz
tar -xvzf coredns_1.11.1_linux_amd64.tgz
cd coredns
  1. 실행 파일 확인
ls
# → coredns
  1. DNS 서버 실행
./coredns
  • 기본 포트 53(UDP/TCP) 로 실행됨

📜 Corefile — 핵심 설정 파일

✅ 예시 구성

. {
    hosts /etc/hosts {
        fallthrough
    }
    forward . 8.8.8.8
    log
}

✔️ 동작 설명

  • /etc/hosts 파일을 참조해 내부 도메인 이름 해석
  • 외부 도메인(google.com 등)은 8.8.8.8 로 포워딩
  • log → 질의 로그 출력
  • fallthrough/etc/hosts 에서 못 찾으면 다음 플러그인(forward) 실행

🔗 /etc/hosts 활용 예시

192.168.1.10   web
192.168.1.11   db
  • 내부에서 ping web → 192.168.1.10
  • ping db → 192.168.1.11

🚩 CoreDNS 실행 방법

./coredns -conf Corefile
  • DNS 서버로 작동 시작
  • 클라이언트는 /etc/resolv.conf 에서 CoreDNS 서버 IP 설정
nameserver 192.168.1.100

🏗️ CoreDNS 플러그인 아키텍처

  • hosts: /etc/hosts 파일을 참조
  • forward: 외부 DNS로 포워딩
  • file: 존(zone) 파일 방식의 DNS 설정 가능
  • kubernetes: 쿠버네티스 클러스터 내부 DNS 관리

👉 플러그인 목록 전체: https://coredns.io/plugins/


⚙️ Kubernetes와 CoreDNS

  • 쿠버네티스는 CoreDNS를 기본 DNS 서비스로 사용
  • Pod 내부에서 myservice.mynamespace.svc.cluster.local 형태로 서비스 이름 해석 가능
  • Corefile 내 kubernetes 플러그인으로 구성됨
. {
    kubernetes cluster.local in-addr.arpa ip6.arpa {
       pods insecure
       fallthrough in-addr.arpa ip6.arpa
    }
    forward . /etc/resolv.conf
    log
    cache 30
}

📚 참고 링크


🚀 실무 팁

  • 사내 DNS로 쓸 때 /etc/hosts → 빠르고 간편
  • 대규모 환경은 file 존 파일 기반으로 확장 가능
  • 클라우드/Kubernetes 환경 → kubernetes 플러그인 적극 활용
profile
React, Node.js, AWS, Git, Github, Github Action, Docker, K8S

0개의 댓글