Kubernetes ํฌ๋“œ์šฉ /etc/resolv.conf, ndots:5 ์˜ต์…˜, ์ด๊ฒƒ์ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„ฑ๋Šฅ์— ๋ถ€์ •์ ์ธ ์˜ํ–ฅ์„ ๋ฏธ์น  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•

Kubernetes ํฌ๋“œ์šฉ /etc/resolv.conf, ndots:5 ์˜ต์…˜, ์ด๊ฒƒ์ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„ฑ๋Šฅ์— ๋ถ€์ •์ ์ธ ์˜ํ–ฅ์„ ๋ฏธ์น  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•

์šฐ๋ฆฌ๋Š” ์ตœ๊ทผ Kops๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ AWS์—์„œ Kubernetes 1.9๋ฅผ ์ถœ์‹œํ–ˆ์Šต๋‹ˆ๋‹ค. ์–ด์ œ ๊ฐ€์žฅ ํฐ Kubernetes ํด๋Ÿฌ์Šคํ„ฐ์— ์ƒˆ๋กœ์šด ํŠธ๋ž˜ํ”ฝ์„ ์›ํ™œํ•˜๊ฒŒ ๋ฐฐํฌํ•˜๋Š” ๋™์•ˆ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ๊ธฐ๋ก๋œ ๋น„์ •์ƒ์ ์ธ DNS ์ด๋ฆ„ ํ™•์ธ ์˜ค๋ฅ˜๋ฅผ ๋ฐœ๊ฒฌํ•˜๊ธฐ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค.

GitHub์—๋Š” ์ด์— ๋Œ€ํ•œ ๋‚ด์šฉ์ด ๊ฝค ๋งŽ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋งํ•œ, ๊ทธ๋ž˜์„œ ๋‚˜๋„ ์•Œ์•„๋‚ด๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ฒฐ๊ตญ ๋‚˜๋Š” ์ด๊ฒƒ์ด ์šฐ๋ฆฌ์˜ ๊ฒฝ์šฐ ๋ถ€ํ•˜ ์ฆ๊ฐ€๋กœ ์ธํ•ด ๋ฐœ์ƒํ•œ๋‹ค๋Š” ๊ฒƒ์„ ๊นจ๋‹ฌ์•˜์Šต๋‹ˆ๋‹ค. kube-dns ะธ dnsmasq. ์ €์—๊ฒŒ ๊ฐ€์žฅ ํฅ๋ฏธ๋กญ๊ณ  ์ƒˆ๋กœ์šด ์ ์€ DNS ์š”์ฒญ ํŠธ๋ž˜ํ”ฝ์ด ํฌ๊ฒŒ ์ฆ๊ฐ€ํ•œ ๋ฐ”๋กœ ๊ทธ ์ด์œ ์˜€์Šต๋‹ˆ๋‹ค. ๋‚ด ๊ฒŒ์‹œ๋ฌผ์€ ์ด๊ฒƒ๊ณผ ์ด์— ๋Œ€ํ•ด ๋ฌด์—‡์„ ํ•ด์•ผํ• ์ง€์— ๊ด€ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋ชจ๋“  Linux ์‹œ์Šคํ…œ์—์„œ์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€์˜ DNS ํ™•์ธ์€ ๊ตฌ์„ฑ ํŒŒ์ผ์— ์˜ํ•ด ๊ฒฐ์ •๋ฉ๋‹ˆ๋‹ค. /etc/resolv.conf. ๊ธฐ๋ณธ Kubernetes dnsPolicy ๊ทธ๊ฒƒ ClusterFirst์ด๋Š” ๋ชจ๋“  DNS ์š”์ฒญ์ด ๋‹ค์Œ์œผ๋กœ ์ „๋‹ฌ๋จ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. dnsmasq, ํฌ๋“œ์—์„œ ์‹คํ–‰ ์ค‘ kube-dns ํด๋Ÿฌ์Šคํ„ฐ ๋‚ด๋ถ€์—์„œ ์š”์ฒญ์„ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์œผ๋กœ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค. kube-dns, ์ด๋ฆ„์ด ํด๋Ÿฌ์Šคํ„ฐ ์ ‘๋ฏธ์‚ฌ๋กœ ๋๋‚˜๋Š” ๊ฒฝ์šฐ, ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ๋” ๋†’์€ ์ˆ˜์ค€์˜ DNS ์„œ๋ฒ„๋กœ ๋๋‚˜๋Š” ๊ฒฝ์šฐ์ž…๋‹ˆ๋‹ค.

ํŒŒ์ผ /etc/resolv.conf ๊ฐ ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€์˜ ๊ธฐ๋ณธ๊ฐ’์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

nameserver 100.64.0.10
search namespace.svc.cluster.local svc.cluster.local cluster.local 
eu-west-1.compute.internal
options ndots:5

๋ณด์‹œ๋‹ค์‹œํ”ผ ์„ธ ๊ฐ€์ง€ ์ง€์‹œ๋ฌธ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

  1. ๋„ค์ž„์„œ๋ฒ„๋Š” ์„œ๋น„์Šค์˜ IP์ž…๋‹ˆ๋‹ค. kube-dns
  2. 4๊ฐœ์˜ ์ง€์—ญ ๊ฒ€์ƒ‰ ๋„๋ฉ”์ธ์ด ์ง€์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค. search
  3. ์˜ต์…˜์ด ์žˆ์Šต๋‹ˆ๋‹ค ndots:5

์ด ๊ตฌ์„ฑ์˜ ํฅ๋ฏธ๋กœ์šด ๋ถ€๋ถ„์€ ๋กœ์ปฌ ๊ฒ€์ƒ‰ ๋„๋ฉ”์ธ ๋ฐ ์„ค์ •์ด ์–ด๋–ป๊ฒŒ ๊ตฌ์„ฑ๋˜๋Š”์ง€์ž…๋‹ˆ๋‹ค. ndots:5 ํ•จ๊ป˜ ์ง€๋‚ด์‹ญ์‹œ์˜ค. ์ด๋ฅผ ์ดํ•ดํ•˜๋ ค๋ฉด ์ •๊ทœํ™”๋˜์ง€ ์•Š์€ ์ด๋ฆ„์— ๋Œ€ํ•œ DNS ํ™•์ธ์ด ์–ด๋–ป๊ฒŒ ์ž‘๋™ํ•˜๋Š”์ง€ ์ดํ•ดํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์„ฑ๋ช…์ด๋ž€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

์ •๊ทœํ™”๋œ ์ด๋ฆ„์€ ๋กœ์ปฌ ์กฐํšŒ๊ฐ€ ์ˆ˜ํ–‰๋˜์ง€ ์•Š๊ณ  ์ด๋ฆ„ ํ™•์ธ ์ค‘์— ์ ˆ๋Œ€ ์ด๋ฆ„์œผ๋กœ ๊ฐ„์ฃผ๋˜๋Š” ์ด๋ฆ„์ž…๋‹ˆ๋‹ค. ๊ทœ์น™์— ๋”ฐ๋ผ DNS ์†Œํ”„ํŠธ์›จ์–ด๋Š” ์ด๋ฆ„์ด ์ (.)์œผ๋กœ ๋๋‚˜๋ฉด ์ •๊ทœํ™”๋œ ์ด๋ฆ„์œผ๋กœ ๊ฐ„์ฃผํ•˜๊ณ  ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ์ •๊ทœํ™”๋˜์ง€ ์•Š์€ ์ด๋ฆ„์œผ๋กœ ๊ฐ„์ฃผํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๊ฑด google.com. ์™„์ „ํžˆ ์ •์˜๋˜๊ณ  google.com - ์•„๋‹ˆ์š”.

์ž๊ฒฉ์ด ์—†๋Š” ์ด๋ฆ„์€ ์–ด๋–ป๊ฒŒ ์ฒ˜๋ฆฌ๋˜๋‚˜์š”?

์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์ด๋ฆ„์— ์ง€์ •๋œ ์›๊ฒฉ ํ˜ธ์ŠคํŠธ์— ์—ฐ๊ฒฐ๋˜๋ฉด DNS ์ด๋ฆ„ ํ™•์ธ์€ ์ผ๋ฐ˜์ ์œผ๋กœ ์‹œ์Šคํ…œ ํ˜ธ์ถœ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค. getaddrinfo(). ๊ทธ๋Ÿฐ๋ฐ ์ด๋ฆ„์ด ์ •๊ทœํ™”๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ(.๋กœ ๋๋‚˜์ง€ ์•Š์Œ) ์‹œ์Šคํ…œ ํ˜ธ์ถœ์ด ๋จผ์ € ์ด๋ฆ„์„ ์ ˆ๋Œ€ ์ด๋ฆ„์œผ๋กœ ํ™•์ธํ•˜๋ ค๊ณ  ์‹œ๋„ํ• ์ง€, ์•„๋‹ˆ๋ฉด ๋กœ์ปฌ ๊ฒ€์ƒ‰ ๋„๋ฉ”์ธ์„ ๋จผ์ € ํ†ต๊ณผํ• ์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค. ์˜ต์…˜์— ๋”ฐ๋ผ ๋‹ค๋ฆ…๋‹ˆ๋‹ค ndots.

๋งค๋‰ด์–ผ์—์„œ resolv.conf:

ndots:n

ัƒัั‚ะฐะฝะฐะฒะปะธะฒะฐะตั‚ ะฟะพั€ะพะณ ะดะปั ะบะพะปะธั‡ะตัั‚ะฒะฐ ั‚ะพั‡ะตะบ, ะบะพั‚ะพั€ั‹ะต ะดะพะปะถะฝั‹ ะฟะพัะฒะธั‚ัŒัั ะฒ ะธะผะตะฝะธ, ะฟั€ะตะถะดะต ั‡ะตะผ ะฑัƒะดะตั‚ ัะดะตะปะฐะฝ ะฝะฐั‡ะฐะปัŒะฝั‹ะน ะฐะฑัะพะปัŽั‚ะฝั‹ะน ะทะฐะฟั€ะพั. ะ—ะฝะฐั‡ะตะฝะธะต ะฟะพ ัƒะผะพะปั‡ะฐะฝะธัŽ ะดะปั n ั€ะฐะฒะฝะพ 1, ั‡ั‚ะพ ะพะทะฝะฐั‡ะฐะตั‚, ั‡ั‚ะพ ะตัะปะธ ะฒ ะธะผะตะฝะธ ะตัั‚ัŒ ะบะฐะบะธะต-ะปะธะฑะพ ั‚ะพั‡ะบะธ, ะธะผั ะฑัƒะดะตั‚ ัะฝะฐั‡ะฐะปะฐ ะพะฟั€ะพะฑะพะฒะฐะฝะพ ะบะฐะบ ะฐะฑัะพะปัŽั‚ะฝะพะต ะธะผั, ะฟั€ะตะถะดะต ั‡ะตะผ ะบ ะฝะตะผัƒ ะฑัƒะดัƒั‚ ะดะพะฑะฐะฒะปะตะฝั‹ ะบะฐะบะธะต-ะปะธะฑะพ ัะปะตะผะตะฝั‚ั‹ ัะฟะธัะบะฐ ะฟะพะธัะบะฐ.

์ด๋Š” ๋‹ค์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ndots ๊ฐ’์ด 5์ด๊ณ  ์ด๋ฆ„์— ์ ์ด 5๊ฐœ ๋ฏธ๋งŒ์œผ๋กœ ํฌํ•จ๋˜์–ด ์žˆ์œผ๋ฉด ์‹œ์Šคํ…œ ํ˜ธ์ถœ์€ ๋จผ์ € ๋ชจ๋“  ๋กœ์ปฌ ๊ฒ€์ƒ‰ ๋„๋ฉ”์ธ์„ ์ˆœํšŒํ•˜๋ฉด์„œ ์ˆœ์ฐจ์ ์œผ๋กœ ํ•ด๊ฒฐ์„ ์‹œ๋„ํ•˜๊ณ , ์‹คํŒจํ•  ๊ฒฝ์šฐ ๊ฒฐ๊ตญ ์ ˆ๋Œ€ ์ด๋ฆ„์œผ๋กœ ํ•ด๊ฒฐํ•˜๋ ค๊ณ  ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค.

์™œ ๊ฐ™์€๊ฐ€? ndots:5 ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„ฑ๋Šฅ์— ๋ถ€์ •์ ์ธ ์˜ํ–ฅ์„ ๋ฏธ์น  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

์ƒ์ƒํ•  ์ˆ˜ ์žˆ๋“ฏ์ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ๋งŽ์€ ์™ธ๋ถ€ ํŠธ๋ž˜ํ”ฝ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ์„ค์ •๋œ ๋ชจ๋“  TCP ์—ฐ๊ฒฐ์— ๋Œ€ํ•ด(๋” ์ •ํ™•ํ•˜๊ฒŒ๋Š” ๋ชจ๋“  ์ด๋ฆ„์ด ํ™•์ธ๋  ๋•Œ๋งˆ๋‹ค) ์ด๋ฆ„์ด ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ํ™•์ธ๋˜๊ธฐ ์ „์— 5๊ฐœ์˜ DNS ์ฟผ๋ฆฌ๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. 4 ๋กœ์ปฌ ๊ฒ€์ƒ‰ ๋„๋ฉ”์ธ์„ ๊ฒ€์ƒ‰ํ•˜๊ณ  ๋งˆ์ง€๋ง‰์— ์ ˆ๋Œ€ ์ด๋ฆ„ ํ™•์ธ ์š”์ฒญ์„ ๋ฐœํ–‰ํ•ฉ๋‹ˆ๋‹ค.

๋‹ค์Œ ์ฐจํŠธ๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ๊ตฌ์„ฑ๋œ ๋ช‡ ๊ฐœ์˜ ํ˜ธ์ŠคํŠธ ์ด๋ฆ„์„ ์ •๊ทœํ™”๋œ ํ˜ธ์ŠคํŠธ ์ด๋ฆ„์œผ๋กœ ์ „ํ™˜ํ•˜๊ธฐ ์ „๊ณผ ํ›„์˜ 3๊ฐœ kube-dns ๋ชจ๋“ˆ์˜ ์ด ํŠธ๋ž˜ํ”ฝ์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.

Kubernetes ํฌ๋“œ์šฉ /etc/resolv.conf, ndots:5 ์˜ต์…˜, ์ด๊ฒƒ์ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„ฑ๋Šฅ์— ๋ถ€์ •์ ์ธ ์˜ํ–ฅ์„ ๋ฏธ์น  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•

๋‹ค์Œ ๋‹ค์ด์–ด๊ทธ๋žจ์€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ๊ตฌ์„ฑ๋œ ์—ฌ๋Ÿฌ ํ˜ธ์ŠคํŠธ ์ด๋ฆ„์„ ์ „์ฒด ์ด๋ฆ„์œผ๋กœ ์ „ํ™˜ํ•˜๊ธฐ ์ „๊ณผ ํ›„์˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋Œ€๊ธฐ ์‹œ๊ฐ„์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค(ํŒŒ๋ž€์ƒ‰ ์ˆ˜์ง์„ ์€ ๋ฐฐํฌ).

Kubernetes ํฌ๋“œ์šฉ /etc/resolv.conf, ndots:5 ์˜ต์…˜, ์ด๊ฒƒ์ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„ฑ๋Šฅ์— ๋ถ€์ •์ ์ธ ์˜ํ–ฅ์„ ๋ฏธ์น  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•

ํ•ด๊ฒฐ ๋ฐฉ๋ฒ• 1 - ์ •๊ทœํ™”๋œ ์ด๋ฆ„์„ ์‚ฌ์šฉํ•˜์„ธ์š”.

๋งŽ์€ ์ˆ˜์˜ ์—ฐ๊ฒฐ์„ ์ƒ์„ฑํ•˜๋Š” ์ •์  ์™ธ๋ถ€ ์ด๋ฆ„(์˜ˆ: ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ตฌ์„ฑ์— ์ •์˜๋จ)์ด ๊ฑฐ์˜ ์—†๋Š” ๊ฒฝ์šฐ ์•„๋งˆ๋„ ๊ฐ€์žฅ ๊ฐ„๋‹จํ•œ ํ•ด๊ฒฐ์ฑ…์€ ๋‹จ์ˆœํžˆ ์ถ”๊ฐ€ํ•˜์—ฌ ์ •๊ทœํ™”๋œ ์ด๋ฆ„์œผ๋กœ ์ „ํ™˜ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋งˆ์ง€๋ง‰์—.

์ด๊ฒƒ์ด ์ตœ์ข…์ ์ธ ํ•ด๊ฒฐ์ฑ…์€ ์•„๋‹ˆ์ง€๋งŒ, ๊นจ๋—ํ•˜์ง€๋Š” ์•Š๋”๋ผ๋„ ์‹ ์†ํ•˜๊ฒŒ ์ƒํ™ฉ์„ ๊ฐœ์„ ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์ด ํŒจ์น˜๋ฅผ ์ ์šฉํ–ˆ์œผ๋ฉฐ ๊ทธ ๊ฒฐ๊ณผ๋Š” ์œ„์˜ ์Šคํฌ๋ฆฐ์ƒท์— ํ‘œ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์†”๋ฃจ์…˜ #2 - ๋งž์ถคํ™” ndots ะฒ dnsConfig

Kubernetes 1.9์—์„œ๋Š” ๊ธฐ๋Šฅ์ด ์•ŒํŒŒ ๋ชจ๋“œ(๋ฒ ํƒ€ ๋ฒ„์ „ v1.10)๋กœ ๋‚˜ํƒ€๋‚ฌ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด Pod ์†์„ฑ์„ ํ†ตํ•ด DNS ๋งค๊ฐœ ๋ณ€์ˆ˜๋ฅผ ๋” ์ž˜ ์ œ์–ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. dnsConfig. ๋ฌด์—‡๋ณด๋‹ค๋„ ๊ฐ’์„ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ndots ํŠน์ • ํฌ๋“œ์˜ ๊ฒฝ์šฐ, ์ฆ‰

apiVersion: v1
kind: Pod
metadata:
  namespace: default
  name: dns-example
spec:
  containers:
    - name: test
      image: nginx
  dnsConfig:
    options:
      - name: ndots
        value: "1"

์†Œ์Šค

๋ธ”๋กœ๊ทธ์—์„œ ๋‹ค๋ฅธ ๊ธฐ์‚ฌ๋„ ์ฝ์–ด๋ณด์„ธ์š”.

์ถœ์ฒ˜ : habr.com

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€