Search
๐ŸŒ

[CKA] 61. Cluster/Pod Networking

Date
2026/02/01
Category
Devops
Tag
Kubernetes
CKA
Network
๋ชฉ์ฐจ

ย Cluster Networking

์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ํด๋Ÿฌ์Šคํ„ฐ๊ฐ€ ๋œจ์ง€ ์•Š๋Š” ์ด์œ ๋Š” ๋„คํŠธ์›Œํฌ ๊ธฐ๋ณธ ์กฐ๊ฑด์ด ์•ˆ ๋งž์•„์„œ์ธ ๊ฒฝ์šฐ๊ฐ€ ๋งŽ๋‹ค. ํŠนํžˆ ์ดˆ๋ฐ˜์— ๋งŽ์ด ๋ฐœ๊ฒฌ๋˜๋Š” ๊ฒƒ์€ ๋‘ ๊ฐ€์ง€๋‹ค.
โ€ข
๋…ธ๋“œ ์‹๋ณ„ ์ถฉ๋Œ: hostname / MAC์ด ๊ฒน์นจ (VM clone ํ–ˆ์„ ๋•Œ ํ”ํ•จ)
โ€ข
ํฌํŠธ/๋ฐฉํ™”๋ฒฝ ๋ง‰ํž˜: controlplane worker ํ†ต์‹  ์˜ค๋ฅ˜

ย Node์˜ ๊ธฐ๋ณธ ์กฐ๊ฑด

๊ฐ ๋…ธ๋“œ๋Š” ์ตœ์†Œํ•œ ์•„๋ž˜๋Š” ๋งŒ์กฑํ•ด์•ผ ํ•œ๋‹ค.
โ€ข
๋„คํŠธ์›Œํฌ์— ์—ฐ๊ฒฐ๋œ ์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ 1๊ฐœ ์ด์ƒ ์žˆ์–ด์•ผ ํ•จ
โ€ข
๊ฐ ์ธํ„ฐํŽ˜์ด์Šค์— IP ์ฃผ์†Œ๊ฐ€ ์„ค์ •๋˜์–ด ์žˆ์–ด์•ผ ํ•จ
โ€ข
ํ˜ธ์ŠคํŠธ๋Š” ๊ณ ์œ  hostname์„ ๊ฐ€์ ธ์•ผ ํ•จ
โ€ข
ํ˜ธ์ŠคํŠธ๋Š” ๊ณ ์œ  MAC ์ฃผ์†Œ๋ฅผ ๊ฐ€์ ธ์•ผ ํ•จ

ย Port

์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๋Š” ๊ตฌ์„ฑ์š”์†Œ๋“ค์ด ์„œ๋กœ API ํ˜ธ์ถœ๋กœ ๋ถ™๋Š” ๊ตฌ์กฐ๋ผ์„œ ํฌํŠธ๊ฐ€ ๋ง‰ํžˆ๋ฉด ์žฅ์• ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.

Controlplane

ํฌํŠธ
์šฉ๋„
๋ˆ„๊ฐ€ ์“ฐ๋‚˜
6443/TCP
Kubernetes API Server
์ „์ฒด(์›Œ์ปค, kubectl, ์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ ์ปดํฌ๋„ŒํŠธ)
2379~/TCP
etcd client API
kube-apiserver, etcd
10250/TCP
Kubelet API
self, control plane
10259/TCP
kube-scheduler
self
10257/TCP
kube-controller-manager
self

Worker Node

ํฌํŠธ
์šฉ๋„
๋ˆ„๊ฐ€ ์“ฐ๋‚˜
10250/TCP
Kubelet API
self, control plane
10256/TCP
kube-proxy
self, Load balancers
30000-32767/TCP+UDP
NodePort ์„œ๋น„์Šค ๊ธฐ๋ณธ ๋ฒ”์œ„
์ „์ฒด
์ฐธ๊ณ : ๊ธฐ๋ณธ ํฌํŠธ๋Š” ๋ณ€๊ฒฝ๋  ์ˆ˜ ์žˆ๋‹ค.

ย Pod Networking

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

ย Pod Networking ์กฐ๊ฑด

์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๋Š” โ€œ์–ด๋–ป๊ฒŒ ๊ตฌํ˜„ํ•˜๋ผโ€๋Š” ๊ฒƒ์„ ์ฃผ์ง„ ์•Š์ง€๋งŒ โ€œ๋ฐ˜๋“œ์‹œ ๋งŒ์กฑํ•ด์•ผ ํ•˜๋Š” ์š”๊ตฌ์‚ฌํ•ญโ€์€ ๋ช…ํ™•ํ•˜๊ฒŒ ๋งํ•œ๋‹ค.
1.
๋ชจ๋“  Pod๋Š” ๊ณ ์œ ํ•œ IP๋ฅผ ๊ฐ€์ง„๋‹ค.
2.
๊ฐ™์€ ๋…ธ๋“œ ์•ˆ์—์„œ, Pod๋Š” ๊ทธ IP๋กœ ๋‹ค๋ฅธ Pod์— ๋ฐ”๋กœ ๋ถ™์„ ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค.
3.
๋‹ค๋ฅธ ๋…ธ๋“œ์— ์žˆ๋Š” Pod์—๊ฒŒ๋„, ๊ฐ™์€ IP๋กœ ๋ฐ”๋กœ ๋ถ™์„ ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค.
4.
NAT ๊ทœ์น™ ์—†์ด๋„(= ์ฃผ์†Œ ๋ณ€ํ™˜ ์—†์ด๋„) Pod IP๋กœ end-to-end ํ†ต์‹ ์ด ๋˜์–ด์•ผ ํ•œ๋‹ค.
IP ๋Œ€์—ญ์ด ๋ญ๋“  ์ƒ๊ด€์—†๋‹ค. ์ค‘์š”ํ•œ ๊ฑด Pod IP๋กœ ๋…ธ๋“œ ๊ฒฝ๊ณ„๋ฅผ ๋„˜์–ด ์ง์ ‘ ํ†ต์‹ ์ด ๊ฐ€๋Šฅํ•ด์•ผ ํ•œ๋‹ค.

ย ๊ตฌํ˜„

๋…ธ๋“œ๋“ค์ด ์™ธ๋ถ€ ๋„คํŠธ์›Œํฌ(์˜ˆ: 192.168.1.0/24)์— ๋ถ™์–ด์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•œ๋‹ค:
โ€ข
node1: 192.168.1.11
โ€ข
node2: 192.168.1.12
โ€ข
node3: 192.168.1.13

1) ๊ฐ ๋…ธ๋“œ์— Pod ์ „์šฉ ๋„คํŠธ์›Œํฌ ๋งŒ๋“ค๊ธฐ

Pod๋Š” ์ปจํ…Œ์ด๋„ˆ ๋„คํŠธ์›Œํฌ ๋„ค์ž„์ŠคํŽ˜์ด์Šค์—์„œ ๋Œ์•„๊ฐ„๋‹ค. ๋•Œ๋ฌธ์— ๋…ธ๋“œ ์•ˆ์— Pod๋“ค์„ ๋ถ™์ผ ๋‚ด๋ถ€ ๋„คํŠธ์›Œํฌ๊ฐ€ ํ•„์š”ํ•˜๋‹ค.
โ€ข
๋…ธ๋“œ๋งˆ๋‹ค bridge ์ƒ์„ฑ
โ—ฆ
๋…ธ๋“œ ๋‚ด๋ถ€์— bridge ๋„คํŠธ์›Œํฌ๋ฅผ ํ•˜๋‚˜ ๋งŒ๋“ ๋‹ค.
โ—ฆ
Pod ๋„ค์ž„์ŠคํŽ˜์ด์Šค๋Š” ์ด bridge์— ๋ถ™๋Š”๋‹ค
โ€ข
๋…ธ๋“œ๋ณ„ Pod subnet์„ ๋”ฐ๋กœ ์ค€๋‹ค
โ—ฆ
node1 Pod subnet: 10.244.1.0/24
โ—ฆ
node2 Pod subnet: 10.244.2.0/24
โ—ฆ
node3 Pod subnet: 10.244.3.0/24
โ€ข
๊ฐ ๋…ธ๋“œ์˜ bridge์— IP๋ฅผ ๋ถ€์—ฌํ•œ๋‹ค
โ—ฆ
node1 bridge: 10.244.1.1
โ—ฆ
node2 bridge: 10.244.2.1
โ—ฆ
node3 bridge: 10.244.3.1
์—ฌ๊ธฐ๊นŒ์ง€ ์™„๋ฃŒํ•˜๋ฉด โ€œํ•œ ๋…ธ๋“œ ์•ˆ์—์„œ Pod๋ผ๋ฆฌ ํ†ต์‹ โ€์€ ๊ฐ€๋Šฅํ•˜๋‹ค

2) ๋„คํŠธ์›Œํฌ ์ž‘์—…

Pod ํ•˜๋‚˜๋ฅผ ๋„คํŠธ์›Œํฌ์— ๋ถ™์ด๋ ค๋ฉด ๋งค๋ฒˆ ์•„๋ž˜ ๊ณผ์ •์ด ํ•„์š”ํ•˜๋‹ค:
# Create veth pair ip link add ... # Attach veth pair ip link set ... ip link set ... # Assign IP Address ip -n <namespace> addr add ... ip -n <namespace> route add ... # Bring Up Interface ip -n <namespace> link set ...
Shell
๋ณต์‚ฌ
์ฆ‰ Pod๊ฐ€ ํ•˜๋‚˜ ์ƒ์„ฑ๋  ๋•Œ๋งˆ๋‹ค ๋„คํŠธ์›Œํฌ ์ž‘์—…์ด ๋ฐ˜๋ณต๋œ๋‹ค.

3) ๋ผ์šฐํŒ…

์ด์ œ ๋‹ค๋ฅธ ๋…ธ๋“œ์˜ Pod์™€ ํ†ต์‹ ์ด ๊ฐ€๋Šฅํ• ๊นŒ? node1์˜ Pod๊ฐ€ node2์˜ Pod๋กœ ping์„ ๋‚ ๋ฆฌ๋ฉด ํ˜„์žฌ ์ƒํƒœ์—์„œ๋Š” ์‹คํŒจํ•œ๋‹ค.
node1์ž…์žฅ์—์„œ๋Š” 10.244.2.0/24๊ฐ€ ์ž๊ธฐ ๋„คํŠธ์›Œํฌ๊ฐ€ ์•„๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์–ด๋””๋กœ ๋ณด๋‚ด์•ผ ํ•˜๋Š”์ง€ ๋ชจ๋ฅธ๋‹ค.
ํ•ด๊ฒฐ์€ ๋…ธ๋“œ ๋ผ์šฐํŒ… ํ…Œ์ด๋ธ”์— ๋‹ค๋ฅธ ๋…ธ๋“œ Pod Subnet ๊ฒฝ๋กœ๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.
node1$ ip route add 10.244.2.2 via 192.168.1.12 node1$ ip route add 10.244.3.2 via 192.168.1.13 node2$ ip route add 10.244.1.2 via 192.168.1.11 node2$ ip route add 10.244.3.2 via 192.168.1.13 node3$ ip route add 10.244.1.2 via 192.168.1.11 node3$ ip route add 10.244.2.2 via 192.168.1.12
Shell
๋ณต์‚ฌ
Pod IP ๋Œ€์—ญ(10.244.x.x) ๋“ค์„ ๋…ธ๋“œ ๊ฐ„ ๋„คํŠธ์›Œํฌ(192.168.1.x) ์œ„์—์„œ ๋ผ์šฐํŒ…ํ•ด์ฃผ๋Š” ๊ตฌ์กฐ์ด๋‹ค. ์œ„์™€ ๊ฐ™์ด ๋ชจ๋“  ๋…ธ๋“œ์— ๋Œ€ํ•ด ๊ฒฝ๋กœ๋ฅผ ์ถ”๊ฐ€ํ•˜๋ฉด Pod IP๊ฐ€ ๋…ธ๋“œ ๊ฒฝ๊ณ„๋ฅผ ๋„˜์–ด end-to-end ํ†ต์‹ ์„ ํ•œ๋‹ค.

๊ฒฐ๊ตญ CNI

bridge ์ƒ์„ฑ โ†’ veth ๋ถ™์ด๊ธฐ โ†’ IP ํ• ๋‹น โ†’ route ์ถ”๊ฐ€
์ด ๊ณผ์ •์„ ์Šคํฌ๋ฆฝํŠธ๋กœ ๋งŒ๋“ค์–ด ์ˆ˜๋™ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ์€ ๋Œ€๊ทœ๋ชจ ํ™˜๊ฒฝ์—์„œ ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค. ๋”ฐ๋ผ์„œ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๋Š”
โ€œํŒŒ๋“œ๊ฐ€ ์ƒ์„ฑ๋˜์ž๋งˆ์ž ๋„คํŠธ์›Œํ‚น ๊ตฌ์„ฑ๋„ ์ž๋™์œผ๋กœ ์ˆ˜ํ–‰๋˜์–ด์•ผ ํ•œ๋‹คโ€
๋ผ๊ณ  ๋งํ•œ๋‹ค. ๊ทธ ์ž๋™ํ™”์˜ ์ ‘์ ์ด CNI๋‹ค
CNI๊ฐ€ ํ•˜๋Š” ์—ญํ• ์€:
โ€ข
์ฟ ๋ฒ„๋„คํ‹ฐ์Šค(Runtime)์—๊ฒŒ
โ—ฆ
โ€œ์ปจํ…Œ์ด๋„ˆ ๋งŒ๋“ค๋ฉด ADD๋กœ ํ”Œ๋Ÿฌ๊ทธ์ธ ํ˜ธ์ถœํ•ดโ€
โ—ฆ
โ€œ์ปจํ…Œ์ด๋„ˆ ์ง€์šฐ๋ฉด DEL๋กœ ํ”Œ๋Ÿฌ๊ทธ์ธ ํ˜ธ์ถœํ•ดโ€
โ€ข
ํ”Œ๋Ÿฌ๊ทธ์ธ(์Šคํฌ๋ฆฝํŠธ)์—๊ฒŒ
โ—ฆ
โ€œ์ด๋Ÿฐ ์ธํ„ฐํŽ˜์ด์Šค(add/del/check)๋ฅผ ๋งž์ถฐ์•ผ ํ•ดโ€
โ—ฆ
โ€œ์ปจํ…Œ์ด๋„ˆID/๋„ค์ž„์ŠคํŽ˜์ด์Šค ๊ฐ™์€ ํŒŒ๋ผ๋ฏธํ„ฐ ๋ฐ›์•„์•ผ ํ•ดโ€
์ฆ‰, ์ค‘๊ฐœ์ž(ํ‘œ์ค€ ์ธํ„ฐํŽ˜์ด์Šค)๋กœ์จ ๋Ÿฐํƒ€์ž„๊ณผ ๋„คํŠธ์›Œํฌ ๊ตฌํ˜„์ฒด๋ฅผ ์—ฐ๊ฒฐํ•ด์ค€๋‹ค.
์ด์ „ ๊ฒŒ์‹œ๋ฌผ
๋‹ค์Œ ๊ฒŒ์‹œ๋ฌผ