[k8s] CoreDNS

์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๋Š” ์„œ๋น„์Šค๋“ค ๊ฐ„์˜ ๋‚ด๋ถ€์ ์ธ ํ†ต์‹ ์„ ์œ„ํ•ด ์ž์ฒด์ ์ธ DNS ์‹œ์Šคํ…œ์„ ๋‚ด์žฅํ•˜๊ณ  ์žˆ๋‹ค.
์˜ˆ์ „์—๋Š” kubeDNS๋ผ๊ณ  ์žˆ์—ˆ๋Š”๋ฐ, ๊ทธ๊ฑด deptrecated๋˜์–ด์„œ v1.35๋ถ€ํ„ฐ๋Š” CoreDNS๊ฐ€ ๊ธฐ๋ณธ๊ฐ’์ด๋‹ค.

CoreDNS๋Š” kube-system์— ์†ํ•˜๋Š” ๊ธฐ๋ณธ ๋ฆฌ์†Œ์Šค๋‹ค.
๋‹ค์Œ ๋ช…๋ น์„ ์‚ฌ์šฉํ•ด์„œ ์ƒํƒœ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

kubectl get all -n kube-system -l k8s-app=kube-dns

๊ฐ€์žฅ ์ค‘์š”ํ•œ ํ•ต์‹ฌ ์ปดํฌ๋„ŒํŠธ์ด๋ฏ€๋กœ, ์ด๊ฒƒ๋“ค์ด ์ •์ƒ์ ์ธ ์ƒํƒœ๊ฐ€ ์•„๋‹ˆ๋ผ๋ฉด ๋„คํŠธ์›Œํ‚น ์‹œ์Šคํ…œ ์ „๋ฐ˜์ด ๊ณ ์žฅ๋‚  ๊ฒƒ์ด๋‹ค.




๊ธฐ๋ณธ ๊ตฌ์กฐ

CoreDNS๋Š” ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ์‹œ์Šคํ…œ์˜ ์ผ๋ถ€๋กœ์„œ ๊ธฐ๋Šฅํ•˜๋ฉฐ, DNS ์š”์ฒญ์„ ์ค‘๊ฐ„์— ๊ฐ€๋กœ์ฑ„์„œ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ์‹์„ ์ทจํ•œ๋‹ค.

์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์˜ ๋ฆฌ์†Œ์Šค ์ด๋ฆ„์œผ๋กœ ๊ตฌ์„ฑ๋œ ๋„๋ฉ”์ธ ์š”์ฒญ์ด ๋“ค์–ด์˜ฌ ๊ฒฝ์šฐ, ๊ทธ ๋ฆฌ์†Œ์Šค๋ฅผ ์ฐพ์•„์„œ ์•Œ๋ ค์ค€๋‹ค.
ํ•˜์ง€๋งŒ ๋ชจ๋ฅด๋Š” ๋„๋ฉ”์ธ์ด๋ผ๋ฉด ์ง„์งœ DNS์— ๋– ๋„˜๊ฒจ๋ฒ„๋ฆฌ๋Š” ์‹์œผ๋กœ ๋™์ž‘ํ•œ๋‹ค.




๋‚ด๋ถ€ DNS

CoreDNS๋Š” Pod์™€ ์„œ๋น„์Šค์— ๋Œ€ํ•ด์„œ ๋‚ด๋ถ€ DNS ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค.
๋‹น์—ฐํžˆ ์ด๊ฑด ํด๋Ÿฌ์Šคํ„ฐ ๋‚ด Pod๋“ค์—์„œ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ€์งœ ๋„๋ฉ”์ธ์ด๋‹ค. ๋ฐ”๊นฅ์—์„œ๋Š” ๋™์ž‘ํ•˜์ง€ ์•Š๋Š”๋‹ค.

์„œ๋น„์Šค์˜ ๊ฒฝ์šฐ ํ’€๋„ค์ž„์€ "์„œ๋น„์Šค๋ช….๋„ค์ž„์ŠคํŽ˜์ด์Šค๋ช….cluster.local"์ด๊ณ , "์„œ๋น„์Šค๋ช….๋„ค์ž„์ŠคํŽ˜์ด์Šค๋ช…"์œผ๋กœ ์ค„์ผ ์ˆ˜๋„ ์žˆ๊ณ , ๋„ค์ž„์ŠคํŽ˜์ด์Šค๋งˆ์ € ๋™์ผํ•˜๋‹ค๋ฉด "์„œ๋น„์Šค๋ช…"์œผ๋กœ ํ‰์น  ์ˆ˜๋„ ์žˆ๋‹ค.

Pod์˜ ๊ฒฝ์šฐ์—๋Š” ๋‚ด๋ถ€ DNS๋ฅผ ์–ต์ง€๋กœ ์“ฐ๋ ค๋ฉด ์“ธ ์ˆ˜๋Š” ์žˆ์ง€๋งŒ ์ผ๋ฐ˜์ ์ด์ง„ ์•Š๋‹ค.




DNS ์„ค์ •

CoreDNS๊ฐ€ ๋„๋ฉ”์ธ ํ–‰์„ธ๋ฅผ ํ•˜๊ธด ํ•˜์ง€๋งŒ, ๊ฒฐ๊ตญ์—๋Š” ์ง„์งœ ์™ธ๋ถ€ DNS๋„ ์จ์•ผํ•œ๋‹ค.
๋‹น์—ฐํžˆ DNS ๋ชฉ๋ก์€ ์กฐ์ •์ด ๊ฐ€๋Šฅํ•˜๋ฉฐ, ์ปค์Šคํ…€ DNS ์„œ๋ฒ„๋ฅผ ์ถ”๊ฐ€ํ•  ์ˆ˜๋„ ์žˆ๋‹ค.

๋‹ค์Œ ๋ช…๋ น์€ CoreDNS์˜ ์„ค์ • ์ •๋ณด๋ฅผ ์กฐํšŒํ•œ๋‹ค.

kubectl get configmap -n kube-system coredns -o yaml

์—ฌ๊ธฐ์„œ forward๋ผ๋Š” ์ ˆ์ด ์ง„์งœ DNS๋กœ ๋– ๋„˜๊ธฐ๋Š” ๊ธฐ์ค€๊ฐ’์ด๋‹ค.
์ด ๊ฒฝ์šฐ์—๋Š” ํ•ด๋‹น ๋…ธ๋“œ ํ˜ธ์ŠคํŠธ์˜ /etc/resolved.conf๋กœ ๋– ๋„˜๊ธด๋‹ค๋Š” ๋œป์ด๋‹ค. ์ฆ‰, ํ˜ธ์ŠคํŠธ์™€ ๋™์ผํ•œ DNS๋ฅผ ์“ด๋‹ค.

์ €๊ฑธ ๋ช…์‹œ์ ์œผ๋กœ ๋ฐ”๊พธ๊ณ  ์‹ถ๋‹ค๋ฉด ํ˜ธ์ŠคํŠธ ์‹œ์Šคํ…œ์˜ /etc/resolved.conf ๋‚ด์šฉ์„ ๋ฐ”๋€Œ๊ฒŒ ํ•˜๊ฑฐ๋‚˜, ์ € ํ–‰ ์ž์ฒด๋ฅผ "forward . 1.1.1.1 8.8.8.8" ๊ฐ™์€ ์‹์œผ๋กœ ๋ณ€๊ฒฝํ•˜๊ณ  CoreDNS ์„œ๋ฒ„๋ฅผ ์žฌ๋ถ€ํŒ…ํ•˜๋ฉด ๋œ๋‹ค.



์ฐธ์กฐ
https://kubernetes.io/ko/docs/concepts/services-networking/dns-pod-service/
https://kubernetes.io/ko/docs/tasks/administer-cluster/coredns/
https://github.com/coredns/deployment/blob/master/kubernetes/Scaling_CoreDNS.md