💡 핵심 요약 (Executive Summary)
본 가이드는 CoreDNS 핵심 가이드 및 실전 아키텍처의 핵심 개념, 실전 구성 명령어 및 아키텍처 베스트 프랙티스를 다룹니다. 클라우드 네이티브 및 인프라 엔지니어링 실무에 즉시 활용 가능하도록 체계적으로 정리했습니다.
📑 Table of Contents
Docs
resolv.conf에 관하여
Reference & Guidelines (NOTE)
Host에서 systemd-resolved 사용시 CoreDNS 동작
HostNode:
systemd-resolved는/etc/resolv.conf = 127.0.0.53루프백주소로 고정한다.- 실제
/etc/systemd/resolved.conf에서 정의된 리졸브는/var/run/systemd/resolve/resolv.conf이다.
Kubelet:
- default는 HostNode의
/etc/resolv.conf를 마운트한다. - Kublet은 루프백주소
127.0.0.53에 접근할 수 없다.
Reference & Guidelines (NOTE)
Kubernetes:
- Kubelet Configuration (v1beta1)
--resolv-conf=/var/run/systemd/resolve/resolv.conf
k3s:
bash
k3s server --resolv-conf $value
curl -sfL https://get.k3s.io | sh -s - server --resolv-conf $value
Features
AAAA=IPv6 차단
Reference & Guidelines (NOTE)
Node Network 외부로 IPv6 아웃바운드가 차단될때 대처
bash
data:
Corefile: |
.:53 {
...
template IN AAAA {
rcode NOERROR
}
...kubernetes
}
test
– 변경 전
bash
k exec -it dnsutils -- nslookup -type=aaaa bitbucket.org
>>>
Server: 10.43.0.10
Address: 10.43.0.10#53
Non-authoritative answer:
Name: bitbucket.org
Address: 2401:1d80:3224:2:0:bbc:1:df7c
Name: bitbucket.org
Address: 2401:1d80:3224::bbc:1:df7c
Name: bitbucket.org
Address: 2401:1d80:3224:1:0:bbc:1:df7c
<<<
– 변경 후
bash
k exec -it dnsutils -- nslookup -type=aaaa bitbucket.org
>>>
Server: 10.43.0.10
Address: 10.43.0.10#53
*** Can't find bitbucket.org: No answer
<<<
resolv.conf 외 네임서버 지정
bash
#before
data:
Corefile: |
.:53 {
...
forward . /etc/resolv.conf
}
}
#after
data:
Corefile: |
.:53 {
...
forward . 8.8.8.8
}
}
특정 도메인 매칭시 DNS 지정
bash
Corefile: |
.:53 {
#...
}
# 추가: **.my.domain 도메인 우선 DNS 지정
my.domain:53 {
errors
cache 30
forward . $my_dns_ip
}
Feature
도메인에 따른 dns분리 및 host Override
bash
apiVersion: v1
data:
Corefile: |-
fredric18.internal:53 {
errors
cache 30
forward . 192.168.1.1
}
.:53 {
hosts {
192.168.118.13 rancher.mgnt.fredric18.uk
fallthrough
}
errors
health {
lameduck 10s
}
ready
kubernetes cluster.local cluster.local in-addr.arpa ip6.arpa {
pods insecure
fallthrough in-addr.arpa ip6.arpa
ttl 30
}
prometheus 0.0.0.0:9153
forward . 8.8.8.8
cache 30
loop
reload
loadbalance
}
kind: ConfigMap
metadata:
annotations:
meta.helm.sh/release-name: rke2-coredns
meta.helm.sh/release-namespace: kube-system
creationTimestamp: "2025-12-07T14:45:59Z"
labels:
app.kubernetes.io/instance: rke2-coredns
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: rke2-coredns
helm.sh/chart: rke2-coredns-1.43.302
k8s-app: kube-dns
kubernetes.io/cluster-service: "true"
kubernetes.io/name: CoreDNS
name: rke2-coredns-rke2-coredns
namespace: kube-system
resourceVersion: "140240348"
uid: 0cd77e69-2946-4914-9379-e25798e59646
Leave a Reply