๋ชฉ์ฐจ
ย Introduction
Kubernetes ๋คํธ์ํน ํํธ๋ฅผ ์ดํด/ํธ๋ฌ๋ธ์ํ
ํ๊ธฐ ์ํ Linux ๋คํธ์ํน์ ๋ํ ๊ฐ๋
์ ๋ฆฌ์ด๋ค. ์ค์ ์์คํ
์์ ์ด๋์ ์ค์ ์ด ์๊ณ , ์ด๋ค ์ปค๋งจ๋๋ก ํ์ธํ๋์ง ์์ฃผ์ ํ์ต์ด๋ค.
ย Switch
์์คํ
A์ B(Laptop/Desktop/VM ๋ฑ)๊ฐ ์๋ค๊ณ ํ ๋, A๊ฐ B์ ๋๋ฌํ๋ ค๋ฉด ๋ ์์คํ
์ ์ค์์น์ ์ฐ๊ฒฐํด์ ๊ฐ์ ๋คํธ์ํฌ๋ก ๋ฌถ๋๋ค.
โข
ํธ์คํธ์ ์ธํฐํ์ด์ค ํ์ธ: ip link
โฆ
์: eth0์ ์ค์์น์ ์ฐ๊ฒฐํ ์ธํฐํ์ด์ค๋ก ์ฌ์ฉ
๋คํธ์ํฌ๊ฐ 192.168.1.0/24๋ผ๊ณ ๊ฐ์ ํ๋ฉด, ๊ฐ ํธ์คํธ์ ๊ฐ์ ๋์ญ์ IP๋ฅผ ํ ๋นํ๋ค.
โข
IP ํ์ธ/์ค์ : ip addr, ip addr add โฆ
๋งํฌ๊ฐ ์ค์ ๋๊ณ IP ์ฃผ์๊ฐ ํ ๋น๋๋ฉด, A์ B๋ ์ค์์น๋ฅผ ํตํด ์๋ก ํต์ ํ ์ ์๋ค.
์ค์์น๋ โ๊ฐ์ ๋คํธ์ํฌ ์โ์์๋ง ํจํท์ ์ ๋ฌํ๋ค.
ย Router
์ด์ ๋ค๋ฅธ ๋คํธ์ํฌ๊ฐ ํ๋ ๋ ์๋ค๊ณ ๊ฐ์ ํด๋ณด์
โข
Network 1: 192.168.1.0/24 (A & B)
โข
Network 2: 192.168.2.0/24 (C & D)
โฆ
C = 192.168.2.1, D = 192.168.2.11
์ด๋, B(192.168.1.11)๊ฐ C(192.168.2.1)๋ก ์ด๋ป๊ฒ ๊ฐ์ผํ ๊น?
โ ๋ผ์ฐํฐ๊ฐ ํ์ํ๋ค
๋ผ์ฐํฐ๋ ๋ ๋คํธ์ํฌ๋ฅผ ์ฐ๊ฒฐํ๋ ์ฅ์น์ด๊ณ , โํฌํธ๊ฐ ์ฌ๋ฌ ๊ฐ์ธ ์๋ฒโ์ฒ๋ผ ์๊ฐํ๋ฉด ๋๋ค.
๋ผ์ฐํฐ๋ ์์ชฝ ๋คํธ์ํฌ์ ๊ฐ๊ฐ IP๋ฅผ ๊ฐ๋๋ค.
โข
๋ผ์ฐํฐ(Network 1 ์ชฝ) IP: 192.168.1.1
โข
๋ผ์ฐํฐ(Network 2 ์ชฝ) IP: 192.168.2.1
ย Gateway / Route
ํธ์คํธ ์
์ฅ์์ ๋ผ์ฐํฐ๋ ๊ทธ๋ฅ โ๋คํธ์ํฌ์ ์๋ ์ฌ๋ฌ ์ฅ์น ์ค ํ๋โ์ผ ๋ฟ์ด๋ค. ๊ทธ๋ผ B๋ โ๋ค๋ฅธ ๋คํธ์ํฌ๋ก ๊ฐ๋ ค๋ฉด ๋ผ์ฐํฐ์๊ฒ ๋ณด๋ด์ผ ํ๋คโ๋ ๊ฑธ ์ด๋ป๊ฒ ์ ์ ์์๊น?
โ Gateway ๋๋ Route๋ฅผ ์ค์ ํ๋ค
โข
ํ์ฌ ๋ผ์ฐํ
ํ
์ด๋ธ ํ์ธ: route (์ปค๋ ๋ผ์ฐํ
ํ
์ด๋ธ) / ip route
๋ผ์ฐํธ๊ฐ ์์ผ๋ฉด B๋ ๊ฐ์ ๋คํธ์ํฌ(192.168.1.0/24) ๋ด๋ถ๋ง ํต์ ๊ฐ๋ฅํ๊ณ , 192.168.2.0/24๋ก๋ ๋ชป ๊ฐ ์ ์๋ค. ๊ทธ๋์ B์ ๋ค์ ๋ผ์ฐํธ๋ฅผ ์ถ๊ฐํ๋ค:
โข
192.168.2.0/24๋ 192.168.1.1(๋ผ์ฐํฐ)๋ก ๋ณด๋ธ๋ค
ip route add 192.168.2.0/24 via 192.168.1.1
Bash
๋ณต์ฌ
์ด ์ค์ ์ ๊ฐ ํธ์คํธ๋ง๋ค ํ์ํ๋ค. ๋๋ฌธ์ C๊ฐ B๋ก ์๋ต์ ๋ณด๋ด๋ ค๋ฉด C์๋ ๋ผ์ฐํธ๊ฐ ์์ผ์ผ ํ๋ค.
ip route add 192.168.1.0/24 via 192.168.1.1
Bash
๋ณต์ฌ
Default Gateway
์ธํฐ๋ท์๋ ๋ค์ํ ๋คํธ์ํฌ์, ๋ค์ํ ์ฌ์ดํธ๊ฐ ์กด์ฌํ๋ค. ๊ฐ ๋คํธ์ํฌ๋ง๋ค ๋ผ์ฐํธ ์ํธ๋ฆฌ๋ฅผ ๋ค ์ถ๊ฐํ๋ ๋์ , โ๋ชจ๋ฅด๋ ๋ชฉ์ ์ง๋ ์ผ๋จ ์ด ๋ผ์ฐํฐ๋กโ ๋ณด๋ด๊ฒ ํ ์ ์๋ค.
์ด๊ฒ์ด default gateway์ด๋ค.
โข
default ๋๋ 0.0.0.0๋ ์๋ฌด IP ๋ชฉ์ ์ง๋ผ๋ ์๋ฏธ๋ก ๋์ผํ ํจ๊ณผ๋ค
โข
๋ผ์ฐํ
ํ
์ด๋ธ์์ default via <router-ip> ํํ๋ก ๋ค์ด๊ฐ๋ค.
โฆ
๋ผ์ฐํ
ํ
์ด๋ธ์์ gateway๊ฐ 0.0.0.0์ธ ํญ๋ชฉ์ ๊ฒ์ดํธ์จ์ด๊ฐ ํ์์๋ค๋ ๋ป์ด๋ค.
โฆ
์์๋ก ๊ฐ์ ๋คํธ์ํฌ ๋ด๋ถ์์์ ํต์ ์ด ์๋ค
๋คํธ์ํฌ์ ๋ผ์ฐํฐ๊ฐ ์ฌ๋ฌ ๋ ์กด์ฌํ๋ฉฐ, ์ฌ์ค/๊ณต์ฉ ๋คํธ์ํฌ๋ก ๋๋๋ค๋ฉด ๋ค์๊ณผ ๊ฐ์ด ๋๋ ์ ์๋ค:
โข
์ฌ์ค๋ง์ฉ ๋ผ์ฐํฐ ์ํธ๋ฆฌ 1๊ฐ
โข
๋๋จธ์ง๋ default gateway 1๊ฐ
๋ฐ๋ผ์ ์ธํฐ๋ท ์ ์์ ๋ฌธ์ ๊ฐ ์๋ ๊ฒฝ์ฐ, Routing Table๊ณผ defatul gateway๋ฅผ ์ดํด๋ณด๋ ๊ฒ์ด 1์์์ด๋ค.
IP forwarding
์ธ ํธ์คํธ A, B, C๊ฐ ์์ผ๋ฉฐ ๋ค์๊ณผ ๊ฐ์ด ๋คํธ์ํธ๊ฐ ์ฐ๊ฒฐ๋์ด ์๋ค๊ณ ๊ฐ์ ํ์:
โข
A
B: 192.168.1.0/24
โฆ
A = 192.168.1.5
โข
B
C: 192.168.2.0/24
โฆ
C = 192.168.2.5
โ B๋ ๋๊ฐ์ ์ธํฐํ์ด์ค(eth0, eth1)๋ฅผ ์ฌ์ฉํ์ฌ ๋ ๋คํธ์ํฌ์ ๋ชจ๋ ์ฐ๊ฒฐ๋๋ค.
โข
B eth0 = 192.168.1.6
โข
B eth1 = 192.168.2.6
์ด๋ A์ C๊ฐ ์๋ก ํจํท์ ์ฃผ๊ณ ๋ฐ์ ์ ์์๊น? A์์ C๋ก ping(ping 192.168.2.5)์ ๋ณด๋ธ๋ค๋ฉด โnetwork is unreachableโ์ด ๋ฐ ๊ฒ์ด๋ค. A๋ C๊ฐ ์ฐ๊ฒฐ๋ ๋คํธ์ํฌ, ์ฆ 192.168.2.0/24๋ฅผ ๋ชจ๋ฅด๊ธฐ ๋๋ฌธ์ด๋ค.
A์ C์ ๊ฐ๊ฐ ๋ผ์ฐํธ๋ฅผ ์ถ๊ฐํ๋ค๋ฉด ์ด๋จ๊น?
โข
A์ ๋ผ์ฐํธ ์ถ๊ฐ: 192.168.2.0/24๋ 192.168.1.6(B)๋ก
โข
C์๋ ๋ผ์ฐํธ ์ถ๊ฐ: 192.168.1.0/24๋ 192.168.2.6(B)๋ก
์ด์ ํ์ ์๋ํ๋ฉด โnetwork is unreachableโ๊ฐ ๋จ์ง ์์ ๊ฒ์ด๋ค. ํ์ง๋ง Linux๋ ๊ธฐ๋ณธ์ ์ผ๋ก ํจํท์ ํฌ์๋ฉํ์ง ์๊ธฐ ๋๋ฌธ์ ์๋ก ํจํท์ ์ฃผ๊ณ ๋ฐ์ ์๋ ์๋ค.(๋ณด์์ ๊ธฐ๋ณธ๊ฐ์ด ๊บผ์ ธ ์์)
Linux์์ ์ธํฐํ์ด์ค ๊ฐ ํจํท ํฌ์๋ฉ ์ฌ๋ถ๋ ๋ค์ ์ค์ ์ด ๊ฒฐ์ ํ๋ค:
โข
/proc/sys/net/ipv4/ip_forward
โฆ
๊ธฐ๋ณธ 0(๋นํ์ฑ)
โฆ
1๋ก ๋ฐ๊พธ๋ฉด ํฌ์๋ฉ ํ์ฑํ
echo 1 > /proc/sys/net/ipv4/ip_forward
Bash
๋ณต์ฌ
โฆ
๋จ, ์ด ๋ฐฉ์์ ์ฌ๋ถํ
์ ์ด๊ธฐํ๋๊ธฐ์ ์๊ตฌ ์ ์ฉ์ sysctl ์ค์ ํ์ผ์์ ๋์ผ ๊ฐ์ ๋ณ๊ฒฝํด์ผ ํ๋ค.
# /etc/sysctl.conf
...
net.ipv4.ip_forward = 1
...
Bash
๋ณต์ฌ
์ด์ ๊ฒ์๋ฌผ
๋ค์ ๊ฒ์๋ฌผ




