ํ•ด๋‹น ๋ฌธ์„œ์˜ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ๋ฒ„์ „: v1.31

Kubernetes v1.31 ๋ฌธ์„œ๋Š” ๋” ์ด์ƒ ์ ๊ทน์ ์œผ๋กœ ๊ด€๋ฆฌ๋˜์ง€ ์•Š์Œ. ํ˜„์žฌ ๋ณด๊ณ ์žˆ๋Š” ๋ฌธ์„œ๋Š” ์ •์  ์Šค๋ƒ…์ƒท์ž„. ์ตœ์‹  ๋ฌธ์„œ๋ฅผ ์œ„ํ•ด์„œ๋Š”, ๋‹ค์Œ์„ ์ฐธ๊ณ . ์ตœ์‹  ๋ฒ„์ „.

์œˆ๋„์šฐ์—์„œ์˜ ๋„คํŠธ์›Œํ‚น

์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๋Š” ๋ฆฌ๋ˆ…์Šค ๋ฐ ์œˆ๋„์šฐ ๋…ธ๋“œ๋ฅผ ์ง€์›ํ•œ๋‹ค. ๋‹จ์ผ ํด๋Ÿฌ์Šคํ„ฐ ๋‚ด์— ๋‘ ์ข…๋ฅ˜์˜ ๋…ธ๋“œ๋ฅผ ํ˜ผํ•ฉํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด ํŽ˜์ด์ง€์—์„œ๋Š” ์œˆ๋„์šฐ ์šด์˜ ์ฒด์ œ์—์„œ์˜ ๋„คํŠธ์›Œํ‚น์— ๋Œ€ํ•œ ๊ฐœ์š”๋ฅผ ์ œ๊ณตํ•œ๋‹ค.

์œˆ๋„์šฐ์—์„œ์˜ ์ปจํ…Œ์ด๋„ˆ ๋„คํŠธ์›Œํ‚น

์œˆ๋„์šฐ ์ปจํ…Œ์ด๋„ˆ์— ๋Œ€ํ•œ ๋„คํŠธ์›Œํ‚น์€ CNI ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ํ†ตํ•ด ๋…ธ์ถœ๋œ๋‹ค. ์œˆ๋„์šฐ ์ปจํ…Œ์ด๋„ˆ๋Š” ๋„คํŠธ์›Œํ‚น๊ณผ ๊ด€๋ จํ•˜์—ฌ ๊ฐ€์ƒ ๋จธ์‹ ๊ณผ ์œ ์‚ฌํ•˜๊ฒŒ ์ž‘๋™ํ•œ๋‹ค. ๊ฐ ์ปจํ…Œ์ด๋„ˆ์—๋Š” Hyper-V ๊ฐ€์ƒ ์Šค์œ„์น˜(vSwitch)์— ์—ฐ๊ฒฐ๋œ ๊ฐ€์ƒ ๋„คํŠธ์›Œํฌ ์–ด๋Œ‘ํ„ฐ(vNIC)๊ฐ€ ์žˆ๋‹ค. ํ˜ธ์ŠคํŠธ ๋„คํŠธ์›Œํ‚น ์„œ๋น„์Šค(HNS)์™€ ํ˜ธ์ŠคํŠธ ์ปดํ“จํŒ… ์„œ๋น„์Šค(HCS)๋Š” ํ•จ๊ป˜ ์ž‘๋™ํ•˜์—ฌ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋งŒ๋“ค๊ณ  ์ปจํ…Œ์ด๋„ˆ vNIC์„ ๋„คํŠธ์›Œํฌ์— ์—ฐ๊ฒฐํ•œ๋‹ค. HCS๋Š” ์ปจํ…Œ์ด๋„ˆ ๊ด€๋ฆฌ๋ฅผ ๋‹ด๋‹นํ•˜๋Š” ๋ฐ˜๋ฉด HNS๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋„คํŠธ์›Œํ‚น ๋ฆฌ์†Œ์Šค ๊ด€๋ฆฌ๋ฅผ ๋‹ด๋‹นํ•œ๋‹ค.

  • ๊ฐ€์ƒ ๋„คํŠธ์›Œํฌ(vSwitch ์ƒ์„ฑ ํฌํ•จ)
  • ์—”๋“œํฌ์ธํŠธ / vNIC
  • ๋„ค์ž„์ŠคํŽ˜์ด์Šค
  • ์ •์ฑ…(ํŒจํ‚ท ์บก์Аํ™”, ๋กœ๋“œ ๋ฐธ๋Ÿฐ์‹ฑ ๊ทœ์น™, ACL, NAT ๊ทœ์น™ ๋“ฑ)

์œˆ๋„์šฐ HNS(ํ˜ธ์ŠคํŠธ ๋„คํŠธ์›Œํ‚น ์„œ๋น„์Šค)์™€ ๊ฐ€์ƒ ์Šค์œ„์น˜๋Š” ๋„ค์ž„์ŠคํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•˜๊ณ  ํŒŒ๋“œ ๋˜๋Š” ์ปจํ…Œ์ด๋„ˆ์— ํ•„์š”ํ•œ ๊ฐ€์ƒ NIC์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ DNS, ๋ผ์šฐํŠธ, ๋ฉ”ํŠธ๋ฆญ๊ณผ ๊ฐ™์€ ๋งŽ์€ ๊ตฌ์„ฑ์€ ๋ฆฌ๋ˆ…์Šค์—์„œ์™€ ๊ฐ™์ด /etc/ ๋‚ด์˜ ํŒŒ์ผ์ด ์•„๋‹Œ ์œˆ๋„์šฐ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ €์žฅ๋œ๋‹ค. ์ปจํ…Œ์ด๋„ˆ์˜ ์œˆ๋„์šฐ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ๋Š” ํ˜ธ์ŠคํŠธ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ์™€ ๋ณ„๊ฐœ์ด๋ฏ€๋กœ ํ˜ธ์ŠคํŠธ์—์„œ ์ปจํ…Œ์ด๋„ˆ๋กœ /etc/resolv.conf๋ฅผ ๋งคํ•‘ํ•˜๋Š” ๊ฒƒ๊ณผ ๊ฐ™์€ ๊ฐœ๋…์€ ๋ฆฌ๋ˆ…์Šค์—์„œ์™€ ๋™์ผํ•œ ํšจ๊ณผ๋ฅผ ๊ฐ–์ง€ ์•Š๋Š”๋‹ค. ํ•ด๋‹น ์ปจํ…Œ์ด๋„ˆ์˜ ์ปจํ…์ŠคํŠธ์—์„œ ์‹คํ–‰๋˜๋Š” ์œˆ๋„์šฐ API๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ตฌ์„ฑํ•ด์•ผ ํ•œ๋‹ค. ๋”ฐ๋ผ์„œ CNI ๊ตฌํ˜„์—์„œ๋Š” ํŒŒ์ผ ๋งคํ•‘์— ์˜์กดํ•˜๋Š” ๋Œ€์‹  HNS๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ ๋„คํŠธ์›Œํฌ ์„ธ๋ถ€ ์ •๋ณด๋ฅผ ํŒŒ๋“œ ๋˜๋Š” ์ปจํ…Œ์ด๋„ˆ๋กœ ์ „๋‹ฌํ•ด์•ผ ํ•œ๋‹ค.

๋„คํŠธ์›Œํฌ ๋ชจ๋“œ

์œˆ๋„์šฐ๋Š” L2bridge, L2tunnel, Overlay, Transparent ๋ฐ NAT์˜ ๋‹ค์„ฏ ๊ฐ€์ง€ ๋„คํŠธ์›Œํ‚น ๋“œ๋ผ์ด๋ฒ„/๋ชจ๋“œ๋ฅผ ์ง€์›ํ•œ๋‹ค. ์œˆ๋„์šฐ์™€ ๋ฆฌ๋ˆ…์Šค ์›Œ์ปค ๋…ธ๋“œ๊ฐ€ ์žˆ๋Š” ์ด๊ธฐ์ข… ํด๋Ÿฌ์Šคํ„ฐ์—์„œ๋Š” ์œˆ๋„์šฐ์™€ ๋ฆฌ๋ˆ…์Šค ๋ชจ๋‘์—์„œ ํ˜ธํ™˜๋˜๋Š” ๋„คํŠธ์›Œํ‚น ์†”๋ฃจ์…˜์„ ์„ ํƒํ•ด์•ผ ํ•œ๋‹ค. ์œˆ๋„์šฐ์—์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์€ out-of-tree ํ”Œ๋Ÿฌ๊ทธ์ธ์ด ์ง€์›๋˜๋ฉฐ, ์–ด๋– ํ•œ ๊ฒฝ์šฐ์— ๊ฐ CNI๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ข‹์€์ง€๋„ ์†Œ๊ฐœํ•œ๋‹ค.

๋„คํŠธ์›Œํฌ ๋“œ๋ผ์ด๋ฒ„ ์„ค๋ช… ์ปจํ…Œ์ด๋„ˆ ํŒจํ‚ท ์ˆ˜์ • ๋„คํŠธ์›Œํฌ ํ”Œ๋Ÿฌ๊ทธ์ธ ๋„คํŠธ์›Œํฌ ํ”Œ๋Ÿฌ๊ทธ์ธ ํŠน์„ฑ
L2bridge ์ปจํ…Œ์ด๋„ˆ๋Š” ์™ธ๋ถ€ vSwitch์— ์—ฐ๊ฒฐ๋œ๋‹ค. ์ปจํ…Œ์ด๋„ˆ๋Š” ์–ธ๋”๋ ˆ์ด ๋„คํŠธ์›Œํฌ์— ์—ฐ๊ฒฐ๋œ๋‹ค. ํ•˜์ง€๋งŒ ์ธ๊ทธ๋ ˆ์Šค/์ด๊ทธ๋ ˆ์Šค์‹œ์— ์žฌ์ž‘์„ฑ๋˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฌผ๋ฆฌ์  ๋„คํŠธ์›Œํฌ๊ฐ€ ์ปจํ…Œ์ด๋„ˆ MAC์„ ํ•™์Šตํ•  ํ•„์š”๊ฐ€ ์—†๋‹ค. MAC์€ ํ˜ธ์ŠคํŠธ MAC์— ๋‹ค์‹œ ์“ฐ์—ฌ์ง€๊ณ , IP๋Š” HNS OutboundNAT ์ •์ฑ…์„ ์‚ฌ์šฉํ•˜์—ฌ ํ˜ธ์ŠคํŠธ IP์— ๋‹ค์‹œ ์“ฐ์—ฌ์งˆ ์ˆ˜ ์žˆ๋‹ค. win-bridge, Azure-CNI, Flannel ํ˜ธ์ŠคํŠธ-๊ฒŒ์ดํŠธ์›จ์ด๋Š” win-bridge๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. win-bridge๋Š” L2bridge ๋„คํŠธ์›Œํฌ ๋ชจ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ , ์ปจํ…Œ์ด๋„ˆ๋ฅผ ํ˜ธ์ŠคํŠธ์˜ ์–ธ๋”๋ ˆ์ด์— ์—ฐ๊ฒฐํ•˜์—ฌ ์ตœ์ƒ์˜ ์„ฑ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค. ๋…ธ๋“œ ๊ฐ„ ์—ฐ๊ฒฐ์„ ์œ„ํ•ด ์‚ฌ์šฉ์ž ์ •์˜ ๊ฒฝ๋กœ(user-defined routes, UDR)๊ฐ€ ํ•„์š”ํ•˜๋‹ค.
L2Tunnel ์ด๊ฒƒ์€ Azure์—์„œ๋งŒ ์‚ฌ์šฉ๋˜๋Š” l2bridge์˜ ํŠน๋ณ„ ์ผ€์ด์Šค๋‹ค. ๋ชจ๋“  ํŒจํ‚ท์€ SDN ์ •์ฑ…์ด ์ ์šฉ๋˜๋Š” ๊ฐ€์ƒํ™” ํ˜ธ์ŠคํŠธ๋กœ ์ „์†ก๋œ๋‹ค. MAC ์žฌ์ž‘์„ฑ๋˜๊ณ , ์–ธ๋”๋ ˆ์ด ๋„คํŠธ์›Œํฌ ์ƒ์—์„œ IP๊ฐ€ ๋ณด์ธ๋‹ค. Azure-CNI Azure-CNI๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ปจํ…Œ์ด๋„ˆ๋ฅผ Azure vNET๊ณผ ํ†ตํ•ฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, Azure Virtual Network์—์„œ ์ œ๊ณตํ•˜๋Š” ๊ธฐ๋Šฅ ์ง‘ํ•ฉ์„ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, Azure ์„œ๋น„์Šค์— ์•ˆ์ „ํ•˜๊ฒŒ ์—ฐ๊ฒฐํ•˜๊ฑฐ๋‚˜ Azure NSG๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. azure-cni ์˜ˆ์ œ๋ฅผ ์ฐธ๊ณ ํ•œ๋‹ค.
Overlay ์ปจํ…Œ์ด๋„ˆ์—๋Š” ์™ธ๋ถ€ vSwitch์— ์—ฐ๊ฒฐ๋œ vNIC์ด ์ œ๊ณต๋œ๋‹ค. ๊ฐ ์˜ค๋ฒ„๋ ˆ์ด ๋„คํŠธ์›Œํฌ๋Š” ์‚ฌ์šฉ์ž ์ง€์ • IP ์ ‘๋‘์‚ฌ๋กœ ์ •์˜๋œ ์ž์ฒด IP ์„œ๋ธŒ๋„ท์„ ๊ฐ€์ ธ์˜จ๋‹ค. ์˜ค๋ฒ„๋ ˆ์ด ๋„คํŠธ์›Œํฌ ๋“œ๋ผ์ด๋ฒ„๋Š” VXLAN ์บก์Аํ™”๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. ์™ธ๋ถ€ ํ—ค๋”๋กœ ์บก์Аํ™”๋œ๋‹ค. win-overlay, Flannel VXLAN (win-overlay ์‚ฌ์šฉ) win-overlay๋Š” ๊ฐ€์ƒ ์ปจํ…Œ์ด๋„ˆ ๋„คํŠธ์›Œํฌ๋ฅผ ํ˜ธ์ŠคํŠธ์˜ ์–ธ๋”๋ ˆ์ด์—์„œ ๊ฒฉ๋ฆฌํ•˜๋ ค๋Š” ๊ฒฝ์šฐ(์˜ˆ: ๋ณด์•ˆ ์ƒ์˜ ์ด์œ ๋กœ) ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค. ๋ฐ์ดํ„ฐ ์„ผํ„ฐ์˜ IP์— ์ œํ•œ์ด ์žˆ๋Š” ๊ฒฝ์šฐ, (๋‹ค๋ฅธ VNID ํƒœ๊ทธ๊ฐ€ ์žˆ๋Š”) ๋‹ค๋ฅธ ์˜ค๋ฒ„๋ ˆ์ด ๋„คํŠธ์›Œํฌ์— IP๋ฅผ ์žฌ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด Windows Server 2019์—์„œ KB4489899๊ฐ€ ํ•„์š”ํ•˜๋‹ค.
Transparent (ovn-kubernetes์˜ ํŠน์ˆ˜ํ•œ ์œ ์Šค์ผ€์ด์Šค) ์™ธ๋ถ€ vSwitch๊ฐ€ ํ•„์š”ํ•˜๋‹ค. ์ปจํ…Œ์ด๋„ˆ๋Š” ๋…ผ๋ฆฌ์  ๋„คํŠธ์›Œํฌ(๋…ผ๋ฆฌ์  ์Šค์œ„์น˜ ๋ฐ ๋ผ์šฐํ„ฐ)๋ฅผ ํ†ตํ•ด ํŒŒ๋“œ ๋‚ด ํ†ต์‹ ์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•˜๋Š” ์™ธ๋ถ€ vSwitch์— ์—ฐ๊ฒฐ๋œ๋‹ค. ํŒจํ‚ท์€ GENEVE ๋˜๋Š” STT ํ„ฐ๋„๋ง์„ ํ†ตํ•ด ์บก์Аํ™”๋˜๋Š”๋ฐ, ๋™์ผํ•œ ํ˜ธ์ŠคํŠธ์— ์žˆ์ง€ ์•Š์€ ํŒŒ๋“œ์— ๋„๋‹ฌํ•˜๊ธฐ ์œ„ํ•œ ํ„ฐ๋„๋ง์„ ํ•œ๋‹ค.
ํŒจํ‚ท์€ ovn ๋„คํŠธ์›Œํฌ ์ปจํŠธ๋กค๋Ÿฌ์—์„œ ์ œ๊ณตํ•˜๋Š” ํ„ฐ๋„ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ์ •๋ณด๋ฅผ ํ†ตํ•ด ์ „๋‹ฌ๋˜๊ฑฐ๋‚˜ ์‚ญ์ œ๋œ๋‹ค.
NAT๋Š” north-south ํ†ต์‹ (๋ฐ์ดํ„ฐ ์„ผํ„ฐ์™€ ํด๋ผ์ด์–ธํŠธ, ๋„คํŠธ์›Œํฌ ์ƒ์˜ ๋ฐ์ดํ„ฐ ์„ผํ„ฐ ์™ธ๋ถ€์™€์˜ ํ†ต์‹ )์„ ์œ„ํ•ด ์ˆ˜ํ–‰๋œ๋‹ค.
ovn-kubernetes Ansible์„ ํ†ตํ•ด ๋ฐฐํฌํ•œ๋‹ค. ๋ถ„์‚ฐ ACL์€ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ์ •์ฑ…์„ ํ†ตํ•ด ์ ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. IPAM์„ ์ง€์›ํ•œ๋‹ค. kube-proxy ์—†์ด ๋กœ๋“œ ๋ฐธ๋Ÿฐ์‹ฑ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค. NAT๋ฅผ ์ˆ˜ํ–‰ํ•  ๋•Œ iptables/netsh๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ์ˆ˜ํ–‰๋œ๋‹ค.
NAT (์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์—์„œ ์‚ฌ์šฉ๋˜์ง€ ์•Š์Œ) ์ปจํ…Œ์ด๋„ˆ์—๋Š” ๋‚ด๋ถ€ vSwitch์— ์—ฐ๊ฒฐ๋œ vNIC์ด ์ œ๊ณต๋œ๋‹ค. DNS/DHCP๋Š” WinNAT๋ผ๋Š” ๋‚ด๋ถ€ ์ปดํฌ๋„ŒํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ œ๊ณต๋œ๋‹ค. MAC ๋ฐ IP๋Š” ํ˜ธ์ŠคํŠธ MAC/IP์— ๋‹ค์‹œ ์ž‘์„ฑ๋œ๋‹ค. nat ์™„์ „์„ฑ์„ ์œ„ํ•ด ์—ฌ๊ธฐ์— ํฌํ•จ๋˜์—ˆ๋‹ค.

์œ„์—์„œ ์„ค๋ช…ํ•œ ๋Œ€๋กœ, ํ”Œ๋ž€๋„ฌ(Flannel) CNI ํ”Œ๋Ÿฌ๊ทธ์ธ์€ VXLAN ๋„คํŠธ์›Œํฌ ๋ฐฑ์—”๋“œ(๋ฒ ํƒ€ ์ง€์›, win-overlay์— ์œ„์ž„) ๋ฐ host-gateway network backend(์•ˆ์ •์ ์ธ ์ง€์›, win-bridge์— ์œ„์ž„)๋ฅผ ํ†ตํ•ด ์œˆ๋„์šฐ์—์„œ๋„ ์ง€์›ํ•œ๋‹ค.

์ด ํ”Œ๋Ÿฌ๊ทธ์ธ์€ ์ž๋™ ๋…ธ๋“œ ์„œ๋ธŒ๋„ท ์ž„๋Œ€ ํ• ๋‹น๊ณผ HNS ๋„คํŠธ์›Œํฌ ์ƒ์„ฑ์„ ์œ„ํ•ด ์œˆ๋„์šฐ์˜ Flannel ๋ฐ๋ชฌ(Flanneld)๊ณผ ํ•จ๊ป˜ ์ž‘๋™ํ•  ์ˆ˜ ์žˆ๋„๋ก ์ฐธ์กฐ CNI ํ”Œ๋Ÿฌ๊ทธ์ธ(win-overlay, win-bridge) ์ค‘ ํ•˜๋‚˜์— ๋Œ€ํ•œ ์œ„์ž„์„ ์ง€์›ํ•œ๋‹ค. ์ด ํ”Œ๋Ÿฌ๊ทธ์ธ์€ ์ž์ฒด ๊ตฌ์„ฑ ํŒŒ์ผ (cni.conf)์„ ์ฝ๊ณ , ์ด๋ฅผ FlannelD๊ฐ€ ์ƒ์„ฑํ•œ subnet.env ํŒŒ์ผ์˜ ํ™˜๊ฒฝ ๋ณ€์ˆ˜์™€ ๊ฒฐํ•ฉํ•œ๋‹ค. ์ดํ›„ ์ด๋ฅผ ๋„คํŠธ์›Œํฌ ์—ฐ๊ฒฐ์„ ์œ„ํ•œ ์ฐธ์กฐ CNI ํ”Œ๋Ÿฌ๊ทธ์ธ ์ค‘ ํ•˜๋‚˜์— ์œ„์ž„ํ•˜๊ณ , ๋…ธ๋“œ-ํ• ๋‹น ์„œ๋ธŒ๋„ท์„ ํฌํ•จํ•˜๋Š” ์˜ฌ๋ฐ”๋ฅธ ๊ตฌ์„ฑ์„ IPAM ํ”Œ๋Ÿฌ๊ทธ์ธ(์˜ˆ: host-local)์œผ๋กœ ๋ณด๋‚ธ๋‹ค.

๋…ธ๋“œ, ํŒŒ๋“œ ๋ฐ ์„œ๋น„์Šค ์˜ค๋ธŒ์ ํŠธ์˜ ๊ฒฝ์šฐ, TCP/UDP ํŠธ๋ž˜ํ”ฝ์— ๋Œ€ํ•ด ๋‹ค์Œ ๋„คํŠธ์›Œํฌ ํ๋ฆ„์ด ์ง€์›๋œ๋‹ค.

  • ํŒŒ๋“œ โ†’ ํŒŒ๋“œ(IP)
  • ํŒŒ๋“œ โ†’ ํŒŒ๋“œ(์ด๋ฆ„)
  • ํŒŒ๋“œ โ†’ ์„œ๋น„์Šค(Cluster IP)
  • ํŒŒ๋“œ โ†’ ์„œ๋น„์Šค(PQDN, ๋‹จ "."์ด ์—†๋Š” ๊ฒฝ์šฐ์—๋งŒ)
  • ํŒŒ๋“œ โ†’ ์„œ๋น„์Šค(FQDN)
  • ํŒŒ๋“œ โ†’ External(IP)
  • ํŒŒ๋“œ โ†’ External(DNS)
  • ๋…ธ๋“œ โ†’ ํŒŒ๋“œ
  • ํŒŒ๋“œ โ†’ ๋…ธ๋“œ

IP ์ฃผ์†Œ ๊ด€๋ฆฌ (IPAM)

The following IPAM options are supported on Windows:

  • host-local
  • azure-vnet-ipam(azure-cni ์ „์šฉ)
  • Windows Server IPAM (IPAM์ด ์„ค์ •๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ์— ๋Œ€ํ•œ ํด๋ฐฑ(fallback) ์˜ต์…˜)

Load balancing and Services

์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ์„œ๋น„์Šค๋Š” ๋…ผ๋ฆฌ์  ํŒŒ๋“œ ์ง‘ํ•ฉ ๋ฐ ๋„คํŠธ์›Œํฌ์—์„œ ํ•ด๋‹น ํŒŒ๋“œ๋กœ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ์ˆ˜๋‹จ์„ ์ •์˜ํ•˜๋Š” ์ถ”์ƒํ™”์ด๋‹ค. ์œˆ๋„์šฐ ๋…ธ๋“œ๊ฐ€ ํฌํ•จ๋œ ํด๋Ÿฌ์Šคํ„ฐ์—์„œ, ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ข…๋ฅ˜์˜ ์„œ๋น„์Šค๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

  • NodePort
  • ClusterIP
  • LoadBalancer
  • ExternalName

์œˆ๋„์šฐ ์ปจํ…Œ์ด๋„ˆ ๋„คํŠธ์›Œํ‚น์€ ๋ฆฌ๋ˆ…์Šค ๋„คํŠธ์›Œํ‚น๊ณผ ๋ช‡ ๊ฐ€์ง€ ์ค‘์š”ํ•œ ์ฐจ์ด์ ์„ ๊ฐ–๋Š”๋‹ค. ์œˆ๋„์šฐ ์ปจํ…Œ์ด๋„ˆ ๋„คํŠธ์›Œํ‚น์— ๋Œ€ํ•œ ๋งˆ์ดํฌ๋กœ์†Œํ”„ํŠธ ๋ฌธ์„œ์—์„œ ์ƒ์„ธ ์‚ฌํ•ญ๊ณผ ๋ฐฐ๊ฒฝ ์ง€์‹์„ ์ œ๊ณตํ•œ๋‹ค.

์œˆ๋„์šฐ์—์„œ๋Š” ๋‹ค์Œ ์„ค์ •์„ ์‚ฌ์šฉํ•˜์—ฌ ์„œ๋น„์Šค ๋ฐ ๋กœ๋“œ ๋ฐธ๋Ÿฐ์‹ฑ ๋™์ž‘์„ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค.

์œˆ๋„์šฐ ์„œ๋น„์Šค ๊ตฌ์„ฑ
๊ธฐ๋Šฅ ์„ค๋ช… ์ง€์›ํ•˜๋Š” ์ตœ์†Œ ์œˆ๋„์šฐ OS ๋นŒ๋“œ ํ™œ์„ฑํ™”ํ•˜๋Š” ๋ฐฉ๋ฒ•
์„ธ์…˜ ์–ดํ”ผ๋‹ˆํ‹ฐ ํŠน์ • ํด๋ผ์ด์–ธํŠธ์˜ ์—ฐ๊ฒฐ์ด ๋งค๋ฒˆ ๋™์ผํ•œ ํŒŒ๋“œ๋กœ ์ „๋‹ฌ๋˜๋„๋ก ํ•œ๋‹ค. Windows Server 2022 service.spec.sessionAffinity๋ฅผ "ClientIP"๋กœ ์„ค์ •
์„œ๋ฒ„ ์ง์ ‘ ๋ฐ˜ํ™˜ (DSR, Direct Server Return) IP ์ฃผ์†Œ ์ˆ˜์ • ๋ฐ LBNAT๊ฐ€ ์ปจํ…Œ์ด๋„ˆ vSwitch ํฌํŠธ์—์„œ ์ง์ ‘ ๋ฐœ์ƒํ•˜๋Š” ๋กœ๋“œ ๋ฐธ๋Ÿฐ์‹ฑ ๋ชจ๋“œ. ์„œ๋น„์Šค ํŠธ๋ž˜ํ”ฝ์€ ์†Œ์Šค IP๊ฐ€ ์›๋ž˜ ํŒŒ๋“œ IP๋กœ ์„ค์ •๋œ ์ƒํƒœ๋กœ ๋„์ฐฉํ•œ๋‹ค. Windows Server 2019 kube-proxy์— --feature-gates="WinDSR=true" --enable-dsr=true ํ”Œ๋ž˜๊ทธ๋ฅผ ์„ค์ •ํ•œ๋‹ค.
๋ชฉ์ ์ง€ ๋ณด์กด(Preserve-Destination) ์„œ๋น„์Šค ํŠธ๋ž˜ํ”ฝ์˜ DNAT๋ฅผ ์Šคํ‚ตํ•˜์—ฌ, ๋ฐฑ์—”๋“œ ํŒŒ๋“œ์— ๋„๋‹ฌํ•˜๋Š” ํŒจํ‚ท์—์„œ ๋ชฉ์ ์ง€ ์„œ๋น„์Šค์˜ ๊ฐ€์ƒ IP๋ฅผ ๋ณด์กดํ•œ๋‹ค. ๋˜ํ•œ ๋…ธ๋“œ-๋…ธ๋“œ ์ „๋‹ฌ์„ ๋น„ํ™œ์„ฑํ™”ํ•œ๋‹ค. Windows Server, version 1903 ์„œ๋น„์Šค ์–ด๋…ธํ…Œ์ด์…˜์— "preserve-destination": "true"๋ฅผ ์„ค์ •ํ•˜๊ณ  kube-proxy์— DSR์„ ํ™œ์„ฑํ™”ํ•œ๋‹ค.
IPv4/IPv6 ์ด์ค‘ ์Šคํƒ ๋„คํŠธ์›Œํ‚น ํด๋Ÿฌ์Šคํ„ฐ ๋‚ด/์™ธ๋ถ€์— ๋„ค์ดํ‹ฐ๋ธŒ IPv4-to-IPv4 ํ†ต์‹  ๋ฐ IPv6-to-IPv6 ํ†ต์‹  ํ™œ์„ฑํ™” Windows Server 2019 IPv4/IPv6 ์ด์ค‘ ์Šคํƒ์„ ์ฐธ๊ณ ํ•œ๋‹ค.
ํด๋ผ์ด์–ธํŠธ IP ๋ณด์กด ์ธ๊ทธ๋ ˆ์Šค ํŠธ๋ž˜ํ”ฝ์˜ ์†Œ์Šค IP๊ฐ€ ์œ ์ง€๋˜๋„๋ก ํ•œ๋‹ค. ๋˜ํ•œ ๋…ธ๋“œ-๋…ธ๋“œ ์ „๋‹ฌ์„ ๋น„ํ™œ์„ฑํ™”ํ•œ๋‹ค. Windows Server 2019 Set service.spec.externalTrafficPolicy๋ฅผ "Local"๋กœ ์„ค์ •ํ•˜๊ณ  kube-proxy์— DSR์„ ํ™œ์„ฑํ™”ํ•œ๋‹ค.

์ œํ•œ

๋‹ค์Œ ๋„คํŠธ์›Œํ‚น ๊ธฐ๋Šฅ์€ ์œˆ๋„์šฐ ๋…ธ๋“œ์—์„œ ์ง€์›๋˜์ง€ ์•Š๋Š”๋‹ค.

  • ํ˜ธ์ŠคํŠธ ๋„คํŠธ์›Œํ‚น ๋ชจ๋“œ
  • ๋…ธ๋“œ ์ž์ฒด์—์„œ ๋กœ์ปฌ NodePort๋กœ์˜ ์ ‘๊ทผ(๋‹ค๋ฅธ ๋…ธ๋“œ ๋˜๋Š” ์™ธ๋ถ€ ํด๋ผ์ด์–ธํŠธ์—์„œ๋Š” ๊ฐ€๋Šฅ)
  • ๋‹จ์ผ ์„œ๋น„์Šค์— ๋Œ€ํ•ด 64๊ฐœ๋ฅผ ์ดˆ๊ณผํ•˜๋Š” ๋ฐฑ์—”๋“œ ํŒŒ๋“œ (๋˜๋Š” ๊ณ ์œ ํ•œ ๋ชฉ์ ์ง€ ์ฃผ์†Œ)
  • ์˜ค๋ฒ„๋ ˆ์ด ๋„คํŠธ์›Œํฌ์— ์—ฐ๊ฒฐ๋œ ์œˆ๋„์šฐ ํŒŒ๋“œ ๊ฐ„์˜ IPv6 ํ†ต์‹ 
  • non-DSR ๋ชจ๋“œ์—์„œ์˜ ๋กœ์ปฌ ํŠธ๋ž˜ํ”ฝ ์ •์ฑ…(Local Traffic Policy)
  • win-overlay, win-bridge, Azure-CNI ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ํ†ตํ•ด ICMP ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•˜๋Š” ์•„์›ƒ๋ฐ”์šด๋“œ ํ†ต์‹ . ํŠนํžˆ, ์œˆ๋„์šฐ ๋ฐ์ดํ„ฐ ํ”Œ๋ ˆ์ธ(VFP)์€ ICMP ํŒจํ‚ท ์น˜ํ™˜์„ ์ง€์›ํ•˜์ง€ ์•Š๋Š”๋‹ค. ์ด๊ฒƒ์€ ๋‹ค์Œ์„ ์˜๋ฏธํ•œ๋‹ค.
    • ๋™์ผํ•œ ๋„คํŠธ์›Œํฌ ๋‚ด์˜ ๋ชฉ์ ์ง€๋กœ ์ „๋‹ฌ๋˜๋Š” ICMP ํŒจํ‚ท(์˜ˆ: ping์„ ํ†ตํ•œ ํŒŒ๋“œ ๊ฐ„ ํ†ต์‹ )์€ ์˜ˆ์ƒ๋Œ€๋กœ ์ œํ•œ ์—†์ด ์ž‘๋™ํ•œ๋‹ค.
    • TCP/UDP ํŒจํ‚ท์€ ์˜ˆ์ƒ๋Œ€๋กœ ์ œํ•œ ์—†์ด ์ž‘๋™ํ•œ๋‹ค.
    • ์›๊ฒฉ ๋„คํŠธ์›Œํฌ๋ฅผ ํ†ต๊ณผํ•˜๋„๋ก ์ง€์ •๋œ ICMP ํŒจํ‚ท(์˜ˆ: ping์„ ํ†ตํ•œ ํŒŒ๋“œ์—์„œ ์™ธ๋ถ€ ์ธํ„ฐ๋„ท์œผ๋กœ์˜ ํ†ต์‹ )์€ ์น˜ํ™˜๋  ์ˆ˜ ์—†์œผ๋ฏ€๋กœ ์†Œ์Šค๋กœ ๋‹ค์‹œ ๋ผ์šฐํŒ…๋˜์ง€ ์•Š๋Š”๋‹ค.
    • TCP/UDP ํŒจํ‚ท์€ ์—ฌ์ „ํžˆ ์น˜ํ™˜๋  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ping <destination>์„ curl <destination>์œผ๋กœ ๋Œ€์ฒดํ•˜์—ฌ ์™ธ๋ถ€์™€์˜ ์—ฐ๊ฒฐ์„ ๋””๋ฒ„๊น…ํ•  ์ˆ˜ ์žˆ๋‹ค.

๋‹ค๋ฅธ ์ œํ•œ๋„ ์กด์žฌํ•œ๋‹ค.

  • ์œˆ๋„์šฐ ์ฐธ์กฐ ๋„คํŠธ์›Œํฌ ํ”Œ๋Ÿฌ๊ทธ์ธ win-bridge์™€ win-overlay๋Š” ํ˜„์žฌ CHECK ๊ตฌํ˜„ ๋ˆ„๋ฝ์œผ๋กœ ์ธํ•ด CNI ์‚ฌ์–‘ v0.4.0์„ ๊ตฌํ˜„ํ•˜์ง€ ์•Š๋Š”๋‹ค.
  • Flannel VXLAN CNI๋Š” ์œˆ๋„์šฐ์—์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ œํ•œ์ด ์žˆ๋‹ค.
    • ๋…ธ๋“œ-ํŒŒ๋“œ ์—ฐ๊ฒฐ์€ Flannel v0.12.0(๋˜๋Š” ๊ทธ ์ด์ƒ) ์ƒ์˜ ๋กœ์ปฌ ํŒŒ๋“œ์—์„œ๋งŒ ๊ฐ€๋Šฅํ•˜๋‹ค.
    • Flannel์€ VNI 4096 ๋ฐ UDP 4789 ํฌํŠธ๋งŒ ์‚ฌ์šฉํ•˜๋„๋ก ์ œํ•œ๋œ๋‹ค. ์ด ํŒŒ๋ผ๋ฏธํ„ฐ์— ๋Œ€ํ•œ ๋” ์ž์„ธํ•œ ์‚ฌํ•ญ์€ ๊ณต์‹ Flannel VXLAN ๋ฐฑ์—”๋“œ ๋ฌธ์„œ๋ฅผ ์ฐธ์กฐํ•œ๋‹ค.
์ตœ์ข… ์ˆ˜์ • March 23, 2023 at 10:32 PM PST: [ko] Update outdated files in dev-1.26-ko.1 (M60, M68, M69) (6a0a44c7ea)