๋ชฉ์ฐจ
ย CNI
CNI(Container Network Interface)๋ ์ปจํ
์ด๋ ๊ฐ ๋คํธ์ํน์ ๊ด๋ฆฌํ๊ธฐ ์ํ ํ์ค ์ธํฐํ์ด์ค์ด๋ค.
Kubernetes์ ๊ฐ์ ์ค์ผ์คํธ๋ ์ด์
ํ๋ซํผ์์ Pod ๊ฐ์ ํต์ ์ ๊ฐ๋ฅํ๊ฒ ํ๋ฉฐ, ๋ค์ํ ํํ์ ์ปจํ
์ด๋ ๋ฐํ์(์: Docker, containerd)๊ณผ ์ค์ผ์คํธ๋ ์ดํฐ(์: Kubernetes) ์ฌ์ด์ ๋คํธ์ํฌ ๊ณ์ธต์ ๊ตฌํํ๋ ๋ฐฉ์์ด ๋ค์ํ๊ฒ ๋ถ๋ฆฌ๋๋ ๊ฒ์ ๋ฐฉ์งํ๋ค.
ย CNI์ ์ค์์ฑ
ํด๋ฌ์คํฐ๋ฅผ ๊ตฌ์ถํ๊ณ CNI๋ฅผ ๊ตฌ์ถํ์ง ์์๋ค๋ฉด kubectl get nodes ๋ช
๋ น์ ์คํํ์ ๋ node๋ค์ ์ํ๊ฐ NotReady์ผ ๊ฒ์ด๋ค. Pod ๊ฐ์ ํต์ ์ CNI๋ฅผ ํตํด ์ด๋ค์ง๋๋ฐ, CNI๊ฐ ์๊ธฐ ๋๋ฌธ์ด๋ค. Node์ Pod๋ฅผ ๋ชจ๋ํฐ๋งํ๋ kubelet์ด ๋
ธ๋์์์ Pod๊ฐ ํต์ ํ ์ ์์์ ๊ฐ์งํ๊ณ NotReady๋ก ํ์ํ๋ค. CNI๋ ํด๋ฌ์คํฐ์ ์ ์์ ์ธ ์ด์์ ์ํด ํ์์ ์ธ ์์์ด๋ค.
ย CNI์ ๊ธฐ๋ฅ
Pod ๊ฐ ํต์
CNI๋ Kubernetes ํด๋ฌ์คํฐ ๋ด์์ Pod ๊ฐ์ ํต์ ์ ์ง์ํ๋ค. ๋คํธ์ํฌ ํ๋ฌ๊ทธ์ธ์ด ์ค์น๋์ด ์์ด์ผ๋ง Pod๊ฐ ์๋ก ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ์ ์ ์๋ค.
IP ์ฃผ์ ๊ด๋ฆฌ
CNI๋ ๊ฐ Pod์ IP ์ฃผ์๋ฅผ ํ ๋นํ๊ณ , ์ด ์ฃผ์๊ฐ ์ถฉ๋ํ์ง ์๋๋ก ๊ด๋ฆฌํ๋ค. ์ด๋ ๋๊ท๋ชจ ํด๋ฌ์คํฐ์์ IP ์ฃผ์์ ํจ์จ์ ์ธ ์ฌ์ฉ์ ๋ณด์ฅํ๋ค.
๋คํธ์ํฌ ์ ์ฑ ์ง์
CNI ํ๋ฌ๊ทธ์ธ์ ๋คํธ์ํฌ ์ ์ฑ
์ ์ง์ํ์ฌ ์ด๋ค Pod๊ฐ ์๋ก ํต์ ํ ์ ์๋์ง๋ฅผ ์ ์ดํ๋ค. ์ด๋ฅผ ํตํด ๋ณด์์ ๊ฐํํ๊ณ , ํ์ํ ๊ฒฝ์ฐ ํน์ ํธ๋ํฝ์ ์ฐจ๋จํ ์ ์๋ค.
ย CNI ํ๋ฌ๊ทธ์ธ
Kubernetes๋ ๊ธฐ๋ณธ์ ์ผ๋ก kubenet์ ์ ๊ณตํ์ง๋ง, ์ ํ์ ์ธ ๊ธฐ๋ฅ์ ๊ฐ๊ณ ์๋ค. ๋ฐ๋ผ์ ๋๋ถ๋ถ์ ๊ฒฝ์ฐ ๊ธฐ๋ฅ์ด ํ์ฅ๋ ์๋ํํฐ ํ๋ฌ๊ทธ์ธ์ ์ฌ์ฉํ๋ค.
โข
Calico
โฆ
๋คํธ์ํฌ ์ ์ฑ
์ ์ง์ํ๋ฉฐ, BGP๋ฅผ ํตํ ์ค์ผ์ผ๋ง ๊ฐ๋ฅํ ๋คํธ์ํฌ๋ฅผ ์ ๊ณต
โฆ
๋ณด์๊ณผ ๊ณ ๊ฐ์ฉ์ฑ์ ์ค์ํ๋ ํ๊ฒฝ์ ์ ํฉ
โข
Flannel
โฆ
๊ฐ๋จํ ๋คํธ์ํฌ ์ค์ ์ ์ ๊ณตํ๋ฉฐ, ์ฌ๋ฌ ๋ชจ๋(์: VXLAN, Host-Gateway ๋ฑ)๋ฅผ ์ง์
โฆ
์ฃผ๋ก ๊ฐ๋จํ ํด๋ฌ์คํฐ์์ ์ฌ์ฉ
โข
Weave Net
โฆ
์๋ํ๋ ๋คํธ์ํฌ ์ค์ ๊ณผ ๊ณ ๊ธ ๋คํธ์ํฌ ์ ์ฑ
์ ์ ๊ณต
โฆ
๋ฉํฐ ํด๋ฌ์คํฐ ํ๊ฒฝ์๋ ์ ์๋