CNI ํ๋ฌ๊ทธ์ธ์ ํตํด ์ฟ ๋ฒ๋คํฐ์ค ๋คํธ์ํน์ ํ์ํ์ธ์. ํ๋ ๋คํธ์ํน ํ์ฑํ ๋ฐฉ๋ฒ, ๋ค์ํ CNI ์ต์ , ๊ฒฌ๊ณ ํ๊ณ ํ์ฅ ๊ฐ๋ฅํ ์ฟ ๋ฒ๋คํฐ์ค ํ๊ฒฝ์ ์ํ ๋ชจ๋ฒ ์ฌ๋ก๋ฅผ ์์๋ณด์ธ์.
์ฟ ๋ฒ๋คํฐ์ค ๋คํธ์ํน: CNI ํ๋ฌ๊ทธ์ธ ์ฌ์ธต ๋ถ์
์ฟ ๋ฒ๋คํฐ์ค๋ ์ปจํ ์ด๋ ์ค์ผ์คํธ๋ ์ด์ ์ ํ๋ช ์ ์ผ์ผ์ผ ๋๊ท๋ชจ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฐฐํฌ ๋ฐ ๊ด๋ฆฌ๋ฅผ ๊ฐ๋ฅํ๊ฒ ํ์ต๋๋ค. ์ฟ ๋ฒ๋คํฐ์ค ๋คํธ์ํน์ ์ค์ฌ์๋ Container Network Interface(CNI)๊ฐ ์์ต๋๋ค. CNI๋ ์ฟ ๋ฒ๋คํฐ์ค๊ฐ ๋ค์ํ ๋คํธ์ํน ์๋ฃจ์ ๊ณผ ํจ๊ป ์๋ํ ์ ์๋๋ก ํ๋ ํ์ค ์ธํฐํ์ด์ค์ ๋๋ค. CNI ํ๋ฌ๊ทธ์ธ์ ์ดํดํ๋ ๊ฒ์ ๊ฒฌ๊ณ ํ๊ณ ํ์ฅ ๊ฐ๋ฅํ ์ฟ ๋ฒ๋คํฐ์ค ํ๊ฒฝ์ ๊ตฌ์ถํ๋ ๋ฐ ๋งค์ฐ ์ค์ํฉ๋๋ค. ์ด ์ข ํฉ ๊ฐ์ด๋์์๋ CNI ํ๋ฌ๊ทธ์ธ์ ์ญํ , ์ธ๊ธฐ ์๋ ์ต์ , ๊ตฌ์ฑ ๋ฐ ๋ชจ๋ฒ ์ฌ๋ก๋ฅผ ์์ธํ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
์ปจํ ์ด๋ ๋คํธ์ํฌ ์ธํฐํ์ด์ค(CNI)๋ ๋ฌด์์ธ๊ฐ?
์ปจํ ์ด๋ ๋คํธ์ํฌ ์ธํฐํ์ด์ค(CNI)๋ ๋ฆฌ๋ ์ค ์ปจํ ์ด๋์ ๋คํธ์ํฌ ์ธํฐํ์ด์ค๋ฅผ ๊ตฌ์ฑํ๊ธฐ ์ํด Cloud Native Computing Foundation(CNCF)์์ ๊ฐ๋ฐํ ์ฌ์์ ๋๋ค. ์ด๋ ์ฟ ๋ฒ๋คํฐ์ค๊ฐ ๋ค์ํ ๋คํธ์ํน ์ ๊ณต์ ์ฒด์ ์ํธ ์์ฉํ ์ ์๋๋ก ํ๋ ํ์ค API๋ฅผ ์ ๊ณตํฉ๋๋ค. ์ด๋ฌํ ํ์คํ ๋๋ถ์ ์ฟ ๋ฒ๋คํฐ์ค๋ ๋งค์ฐ ์ ์ฐํ๋ฉฐ ์ฌ์ฉ์๋ ์์ ์ ํ์์ ๊ฐ์ฅ ์ ํฉํ ๋คํธ์ํน ์๋ฃจ์ ์ ์ ํํ ์ ์์ต๋๋ค.
CNI ํ๋ฌ๊ทธ์ธ์ ๋ค์๊ณผ ๊ฐ์ ์์ ์ ๋ด๋นํฉ๋๋ค:
- ๋คํธ์ํฌ ๋ฆฌ์์ค ํ ๋น: ํ๋์ IP ์ฃผ์ ๋ฐ ๊ธฐํ ๋คํธ์ํฌ ๋งค๊ฐ๋ณ์๋ฅผ ํ ๋นํฉ๋๋ค.
- ์ปจํ ์ด๋ ๋คํธ์ํฌ ๊ตฌ์ฑ: ์ปจํ ์ด๋ ๋ด์ ๋คํธ์ํฌ ์ธํฐํ์ด์ค๋ฅผ ์ค์ ํฉ๋๋ค.
- ์ปจํ ์ด๋๋ฅผ ๋คํธ์ํฌ์ ์ฐ๊ฒฐ: ์ปจํ ์ด๋๋ฅผ ์ ์ฒด ์ฟ ๋ฒ๋คํฐ์ค ๋คํธ์ํฌ์ ํตํฉํฉ๋๋ค.
- ๋คํธ์ํฌ ๋ฆฌ์์ค ์ ๋ฆฌ: ํ๋๊ฐ ์ข ๋ฃ๋ ๋ ๋ฆฌ์์ค๋ฅผ ํด์ ํฉ๋๋ค.
CNI ํ๋ฌ๊ทธ์ธ ์๋ ๋ฐฉ์
์ฟ ๋ฒ๋คํฐ์ค์์ ์ ํ๋๊ฐ ์์ฑ๋๋ฉด, ๊ฐ ๋ ธ๋์์ ์คํ๋๋ ์์ด์ ํธ์ธ kubelet์ด CNI ํ๋ฌ๊ทธ์ธ์ ํธ์ถํ์ฌ ํ๋์ ๋คํธ์ํฌ๋ฅผ ๊ตฌ์ฑํฉ๋๋ค. ์ด ๊ณผ์ ์ ์ผ๋ฐ์ ์ผ๋ก ๋ค์ ๋จ๊ณ๋ฅผ ํฌํจํฉ๋๋ค:
- kubelet์ด ํ๋ ์์ฑ ์์ฒญ์ ๋ฐ์ต๋๋ค.
- kubelet์ ํด๋ฌ์คํฐ ๊ตฌ์ฑ์ ๊ธฐ๋ฐ์ผ๋ก ์ฌ์ฉํ CNI ํ๋ฌ๊ทธ์ธ์ ๊ฒฐ์ ํฉ๋๋ค.
- kubelet์ ํ๋์ ๋ค์์คํ์ด์ค, ์ด๋ฆ, ๋ ์ด๋ธ๊ณผ ๊ฐ์ ์ ๋ณด๋ฅผ ์ ๊ณตํ๋ฉฐ CNI ํ๋ฌ๊ทธ์ธ์ ํธ์ถํฉ๋๋ค.
- CNI ํ๋ฌ๊ทธ์ธ์ ๋ฏธ๋ฆฌ ์ ์๋ IP ์ฃผ์ ๋ฒ์์์ ํ๋์ IP ์ฃผ์๋ฅผ ํ ๋นํฉ๋๋ค.
- CNI ํ๋ฌ๊ทธ์ธ์ ํธ์คํธ ๋ ธ๋์ ๊ฐ์ ๋คํธ์ํฌ ์ธํฐํ์ด์ค(veth ์)๋ฅผ ์์ฑํฉ๋๋ค. veth ์์ ํ์ชฝ ๋์ ํ๋์ ๋คํธ์ํฌ ๋ค์์คํ์ด์ค์ ์ฐ๊ฒฐ๋๊ณ , ๋ค๋ฅธ ์ชฝ ๋์ ํธ์คํธ์ ๋คํธ์ํฌ ๋ค์์คํ์ด์ค์ ๋จ์ต๋๋ค.
- CNI ํ๋ฌ๊ทธ์ธ์ ํ๋์ ๋คํธ์ํฌ ๋ค์์คํ์ด์ค๋ฅผ ๊ตฌ์ฑํ์ฌ IP ์ฃผ์, ๊ฒ์ดํธ์จ์ด ๋ฐ ๊ฒฝ๋ก๋ฅผ ์ค์ ํฉ๋๋ค.
- CNI ํ๋ฌ๊ทธ์ธ์ ํธ์คํธ ๋ ธ๋์ ๋ผ์ฐํ ํ ์ด๋ธ์ ์ ๋ฐ์ดํธํ์ฌ ํ๋์ ์ฃผ๊ณ ๋ฐ๋ ํธ๋ํฝ์ด ์ฌ๋ฐ๋ฅด๊ฒ ๋ผ์ฐํ ๋๋๋ก ๋ณด์ฅํฉ๋๋ค.
์ธ๊ธฐ ์๋ CNI ํ๋ฌ๊ทธ์ธ
์ฌ๋ฌ CNI ํ๋ฌ๊ทธ์ธ์ด ์์ผ๋ฉฐ, ๊ฐ๊ฐ ๊ณ ์ ํ ๊ธฐ๋ฅ, ์ฅ์ ๋ฐ ๋จ์ ์ ๊ฐ์ง๊ณ ์์ต๋๋ค. ๋ค์์ ๊ฐ์ฅ ์ธ๊ธฐ ์๋ CNI ํ๋ฌ๊ทธ์ธ ์ค ์ผ๋ถ์ ๋๋ค:
Calico
๊ฐ์: Calico๋ ์ฟ ๋ฒ๋คํฐ์ค๋ฅผ ์ํ ํ์ฅ ๊ฐ๋ฅํ๊ณ ์์ ํ ๋คํธ์ํน ์๋ฃจ์ ์ ์ ๊ณตํ๋ ๋๋ฆฌ ์ฌ์ฉ๋๋ CNI ํ๋ฌ๊ทธ์ธ์ ๋๋ค. ์ค๋ฒ๋ ์ด ๋ฐ ๋น์ค๋ฒ๋ ์ด ๋คํธ์ํน ๋ชจ๋ธ์ ๋ชจ๋ ์ง์ํ๋ฉฐ ๊ณ ๊ธ ๋คํธ์ํฌ ์ ์ฑ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค.
์ฃผ์ ํน์ง:
- ๋คํธ์ํฌ ์ ์ฑ : Calico์ ๋คํธ์ํฌ ์ ์ฑ ์์ง์ ์ฌ์ฉํ๋ฉด ํ๋์ ๋ํ ์ธ๋ถํ๋ ์ ๊ทผ ์ ์ด ๊ท์น์ ์ ์ํ ์ ์์ต๋๋ค. ์ด๋ฌํ ์ ์ฑ ์ ํ๋ ๋ ์ด๋ธ, ๋ค์์คํ์ด์ค ๋ฐ ๊ธฐํ ๊ธฐ์ค์ ๊ธฐ๋ฐํ ์ ์์ต๋๋ค.
- BGP ๋ผ์ฐํ : Calico๋ BGP(Border Gateway Protocol)๋ฅผ ์ฌ์ฉํ์ฌ ํ๋ IP ์ฃผ์๋ฅผ ๊ธฐ๋ณธ ๋คํธ์ํฌ ์ธํ๋ผ์ ์๋ฆด ์ ์์ต๋๋ค. ์ด๋ ์ค๋ฒ๋ ์ด ๋คํธ์ํฌ์ ํ์์ฑ์ ์์ ๊ณ ์ฑ๋ฅ์ ํฅ์์ํต๋๋ค.
- IP ์ฃผ์ ๊ด๋ฆฌ(IPAM): Calico๋ ์์ฒด IPAM ์์คํ ์ ํฌํจํ์ฌ ํ๋์ IP ์ฃผ์๋ฅผ ์๋์ผ๋ก ํ ๋นํฉ๋๋ค.
- ์ํธํ: Calico๋ WireGuard ๋๋ IPsec์ ์ฌ์ฉํ ๋คํธ์ํฌ ํธ๋ํฝ ์ํธํ๋ฅผ ์ง์ํฉ๋๋ค.
์ฌ์ฉ ์ฌ๋ก ์์: ๊ธ์ต ๊ธฐ๊ด์ด Calico๋ฅผ ์ฌ์ฉํ์ฌ ์ฟ ๋ฒ๋คํฐ์ค ํด๋ฌ์คํฐ ๋ด์ ์ฌ๋ฌ ๋ง์ดํฌ๋ก์๋น์ค ๊ฐ์ ์๊ฒฉํ ๋ณด์ ์ ์ฑ ์ ์ํํ๋ ๊ฒฝ์ฐ. ์๋ฅผ ๋ค์ด, ํ๋ก ํธ์๋์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ํ๋ ๊ฐ์ ์ง์ ์ ์ธ ํต์ ์ ๋ฐฉ์งํ๊ณ , ๋ชจ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ ๊ทผ์ด ์ ์ฉ API ๊ณ์ธต์ ํตํ๋๋ก ๊ฐ์ ํฉ๋๋ค.
Flannel
๊ฐ์: Flannel์ ์ฟ ๋ฒ๋คํฐ์ค๋ฅผ ์ํ ์ค๋ฒ๋ ์ด ๋คํธ์ํฌ๋ฅผ ์์ฑํ๋ ๊ฐ๋จํ๊ณ ๊ฐ๋ฒผ์ด CNI ํ๋ฌ๊ทธ์ธ์ ๋๋ค. ์ค์ ๋ฐ ๊ตฌ์ฑ์ด ์ฌ์ ์๊ท๋ชจ ๋ฐฐํฌ๋ ์ฟ ๋ฒ๋คํฐ์ค ๋คํธ์ํน์ ์ฒ์ ์ ํ๋ ์ฌ์ฉ์์๊ฒ ์ธ๊ธฐ ์๋ ์ ํ์ ๋๋ค.
์ฃผ์ ํน์ง:
- ์ค๋ฒ๋ ์ด ๋คํธ์ํฌ: Flannel์ ๊ธฐ์กด ๋คํธ์ํฌ ์ธํ๋ผ ์์ ๊ฐ์ ๋คํธ์ํฌ๋ฅผ ์์ฑํฉ๋๋ค. ํ๋๋ค์ ์ด ์ค๋ฒ๋ ์ด ๋คํธ์ํฌ๋ฅผ ํตํด ์๋ก ํต์ ํฉ๋๋ค.
- ๊ฐ๋จํ ๊ตฌ์ฑ: Flannel์ ๊ตฌ์ฑ์ด ์ฝ๊ณ ์ต์ํ์ ์ค์ ๋ง ํ์ํฉ๋๋ค.
- ๋ค์ค ๋ฐฑ์๋: Flannel์ ์ค๋ฒ๋ ์ด ๋คํธ์ํฌ๋ฅผ ์ํด VXLAN, host-gw, UDP ๋ฑ ๋ค์ํ ๋ฐฑ์๋๋ฅผ ์ง์ํฉ๋๋ค.
์ฌ์ฉ ์ฌ๋ก ์์: ์คํํธ์ ์ด ๋จ์์ฑ๊ณผ ๊ตฌ์ฑ์ ์ฉ์ด์ฑ ๋๋ฌธ์ ์ด๊ธฐ ์ฟ ๋ฒ๋คํฐ์ค ๋ฐฐํฌ์ Flannel์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ. ์ด๋ค์ ๊ณ ๊ธ ๋คํธ์ํน ๊ธฐ๋ฅ๋ณด๋ค ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ์ํ๊ฒ ์คํํ๋ ๊ฒ์ ์ฐ์ ์ํฉ๋๋ค.
Weave Net
๊ฐ์: Weave Net์ ์ฟ ๋ฒ๋คํฐ์ค๋ฅผ ์ํ ์ค๋ฒ๋ ์ด ๋คํธ์ํฌ๋ฅผ ์์ฑํ๋ ๋ ๋ค๋ฅธ ์ธ๊ธฐ ์๋ CNI ํ๋ฌ๊ทธ์ธ์ ๋๋ค. ์๋ IP ์ฃผ์ ๊ด๋ฆฌ, ๋คํธ์ํฌ ์ ์ฑ , ์ํธํ ๋ฑ ๋ค์ํ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค.
์ฃผ์ ํน์ง:
- ์๋ IP ์ฃผ์ ๊ด๋ฆฌ: Weave Net์ ํ๋์ IP ์ฃผ์๋ฅผ ์๋์ผ๋ก ํ ๋นํ๊ณ IP ์ฃผ์ ๋ฒ์๋ฅผ ๊ด๋ฆฌํฉ๋๋ค.
- ๋คํธ์ํฌ ์ ์ฑ : Weave Net์ ์ฌ์ฉํ๋ฉด ๋คํธ์ํฌ ์ ์ฑ ์ ์ ์ํ์ฌ ํ๋ ๊ฐ์ ํธ๋ํฝ์ ์ ์ดํ ์ ์์ต๋๋ค.
- ์ํธํ: Weave Net์ AES-GCM์ ์ฌ์ฉํ ๋คํธ์ํฌ ํธ๋ํฝ ์ํธํ๋ฅผ ์ง์ํฉ๋๋ค.
- ์๋น์ค ๊ฒ์: Weave Net์ ๋ด์ฅ๋ ์๋น์ค ๊ฒ์ ๊ธฐ๋ฅ์ ์ ๊ณตํ์ฌ ํ๋๊ฐ ์๋ก๋ฅผ ์ฝ๊ฒ ์ฐพ๊ณ ์ฐ๊ฒฐํ ์ ์๋๋ก ํฉ๋๋ค.
์ฌ์ฉ ์ฌ๋ก ์์: ์ํํธ์จ์ด ๊ฐ๋ฐ ํ์ฌ๊ฐ ๊ฐ๋ฐ ๋ฐ ํ ์คํธ ํ๊ฒฝ์ Weave Net์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ. ์๋ IP ์ฃผ์ ๊ด๋ฆฌ ๋ฐ ์๋น์ค ๊ฒ์ ๊ธฐ๋ฅ์ ์ด๋ฌํ ํ๊ฒฝ์์ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฐฐํฌ ๋ฐ ๊ด๋ฆฌ๋ฅผ ๋จ์ํํฉ๋๋ค.
Cilium
๊ฐ์: Cilium์ eBPF(extended Berkeley Packet Filter)๋ฅผ ํ์ฉํ์ฌ ์ฟ ๋ฒ๋คํฐ์ค์ ๊ณ ์ฑ๋ฅ ๋คํธ์ํน ๋ฐ ๋ณด์์ ์ ๊ณตํ๋ CNI ํ๋ฌ๊ทธ์ธ์ ๋๋ค. ๋คํธ์ํฌ ์ ์ฑ , ๋ก๋ ๋ฐธ๋ฐ์ฑ, ๊ด์ฐฐ ๊ฐ๋ฅ์ฑ๊ณผ ๊ฐ์ ๊ณ ๊ธ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค.
์ฃผ์ ํน์ง:
- eBPF ๊ธฐ๋ฐ ๋คํธ์ํน: Cilium์ eBPF๋ฅผ ์ฌ์ฉํ์ฌ ์ปค๋ ์์ค์์ ๋คํธ์ํน ๋ฐ ๋ณด์ ์ ์ฑ ์ ๊ตฌํํฉ๋๋ค. ์ด๋ ๊ณ ์ฑ๋ฅ๊ณผ ๋ฎ์ ์ค๋ฒํค๋๋ฅผ ์ ๊ณตํฉ๋๋ค.
- ๋คํธ์ํฌ ์ ์ฑ : Cilium์ L7 ์ ์ฑ ๊ฐ์ ์ํ์ ํฌํจํ ๊ณ ๊ธ ๋คํธ์ํฌ ์ ์ฑ ๊ธฐ๋ฅ์ ์ง์ํฉ๋๋ค.
- ๋ก๋ ๋ฐธ๋ฐ์ฑ: Cilium์ ์ฟ ๋ฒ๋คํฐ์ค ์๋น์ค๋ฅผ ์ํ ๋ด์ฅ ๋ก๋ ๋ฐธ๋ฐ์ฑ์ ์ ๊ณตํฉ๋๋ค.
- ๊ด์ฐฐ ๊ฐ๋ฅ์ฑ: Cilium์ ๋คํธ์ํฌ ํธ๋ํฝ์ ๋ํ ์์ธํ ๊ด์ฐฐ ๊ฐ๋ฅ์ฑ์ ์ ๊ณตํ์ฌ ๋คํธ์ํฌ ๋ฌธ์ ๋ฅผ ๋ชจ๋ํฐ๋งํ๊ณ ํด๊ฒฐํ ์ ์๋๋ก ํฉ๋๋ค.
์ฌ์ฉ ์ฌ๋ก ์์: ๋๊ท๋ชจ ์ ์์๊ฑฐ๋ ํ์ฌ๊ฐ ๋์ ํธ๋ํฝ ์์ ์ฒ๋ฆฌํ๊ณ ์๊ฒฉํ ๋ณด์ ์ ์ฑ ์ ์ํํ๊ธฐ ์ํด Cilium์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ. eBPF ๊ธฐ๋ฐ ๋คํธ์ํน ๋ฐ ๋ก๋ ๋ฐธ๋ฐ์ฑ ๊ธฐ๋ฅ์ ์ต์ ์ ์ฑ๋ฅ์ ๋ณด์ฅํ๋ฉฐ, ๊ณ ๊ธ ๋คํธ์ํฌ ์ ์ฑ ๊ธฐ๋ฅ์ ์ ์ฌ์ ์ํ์ผ๋ก๋ถํฐ ๋ณดํธํฉ๋๋ค.
์ฌ๋ฐ๋ฅธ CNI ํ๋ฌ๊ทธ์ธ ์ ํํ๊ธฐ
์ ์ ํ CNI ํ๋ฌ๊ทธ์ธ์ ์ ํํ๋ ๊ฒ์ ์ฟ ๋ฒ๋คํฐ์ค ํ๊ฒฝ์ ํน์ ์๊ตฌ ์ฌํญ์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋๋ค. ๋ค์ ์์๋ฅผ ๊ณ ๋ คํ์ญ์์ค:
- ํ์ฅ์ฑ: CNI ํ๋ฌ๊ทธ์ธ์ด ํด๋ฌ์คํฐ์์ ์์๋๋ ํ๋ ๋ฐ ๋ ธ๋ ์๋ฅผ ์ฒ๋ฆฌํ ์ ์์ต๋๊น?
- ๋ณด์: CNI ํ๋ฌ๊ทธ์ธ์ด ๋คํธ์ํฌ ์ ์ฑ ๋ฐ ์ํธํ์ ๊ฐ์ ํ์ํ ๋ณด์ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๊น?
- ์ฑ๋ฅ: CNI ํ๋ฌ๊ทธ์ธ์ด ์ ํ๋ฆฌ์ผ์ด์ ์ ์์ฉ ๊ฐ๋ฅํ ์ฑ๋ฅ์ ์ ๊ณตํฉ๋๊น?
- ์ฌ์ฉ ํธ์์ฑ: CNI ํ๋ฌ๊ทธ์ธ์ ์ค์ , ๊ตฌ์ฑ ๋ฐ ์ ์ง ๊ด๋ฆฌํ๊ธฐ๊ฐ ์ผ๋ง๋ ์ฝ์ต๋๊น?
- ๊ธฐ๋ฅ: CNI ํ๋ฌ๊ทธ์ธ์ด IP ์ฃผ์ ๊ด๋ฆฌ, ์๋น์ค ๊ฒ์, ๊ด์ฐฐ ๊ฐ๋ฅ์ฑ๊ณผ ๊ฐ์ ํ์ํ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๊น?
- ์ปค๋ฎค๋ํฐ ์ง์: CNI ํ๋ฌ๊ทธ์ธ์ด ๊ฐ๋ ฅํ ์ปค๋ฎค๋ํฐ์ ์ํด ์ ๊ทน์ ์ผ๋ก ์ ์ง ๊ด๋ฆฌ๋๊ณ ์ง์๋ฉ๋๊น?
๊ฐ๋จํ ๋ฐฐํฌ์ ๊ฒฝ์ฐ Flannel์ด ์ถฉ๋ถํ ์ ์์ต๋๋ค. ์๊ฒฉํ ๋ณด์ ์๊ตฌ ์ฌํญ์ด ์๋ ๋ ๋ณต์กํ ํ๊ฒฝ์ ๊ฒฝ์ฐ Calico ๋๋ Cilium์ด ๋ ๋์ ์ ํ์ผ ์ ์์ต๋๋ค. Weave Net์ ๊ธฐ๋ฅ๊ณผ ์ฌ์ฉ ํธ์์ฑ ์ฌ์ด์ ์ข์ ๊ท ํ์ ์ ๊ณตํฉ๋๋ค. ํน์ ์๊ตฌ ์ฌํญ์ ํ๊ฐํ๊ณ ์๊ตฌ ์ฌํญ์ ๊ฐ์ฅ ์ ํฉํ CNI ํ๋ฌ๊ทธ์ธ์ ์ ํํ์ญ์์ค.
CNI ํ๋ฌ๊ทธ์ธ ๊ตฌ์ฑ
CNI ํ๋ฌ๊ทธ์ธ์ ์ผ๋ฐ์ ์ผ๋ก ํ๋ฌ๊ทธ์ธ์ ์ค์ ์ ์ง์ ํ๋ JSON ํ์ผ์ธ CNI ๊ตฌ์ฑ ํ์ผ์ ์ฌ์ฉํ์ฌ ๊ตฌ์ฑ๋ฉ๋๋ค. CNI ๊ตฌ์ฑ ํ์ผ์ ์์น๋ kubelet์ --cni-conf-dir ํ๋๊ทธ์ ์ํด ๊ฒฐ์ ๋ฉ๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ์ด ํ๋๊ทธ๋ /etc/cni/net.d๋ก ์ค์ ๋ฉ๋๋ค.
CNI ๊ตฌ์ฑ ํ์ผ์๋ ๋ค์ ์ ๋ณด๊ฐ ํฌํจ๋ฉ๋๋ค:
cniVersion: CNI ์ฌ์ ๋ฒ์ .name: ๋คํธ์ํฌ์ ์ด๋ฆ.type: ์ฌ์ฉํ CNI ํ๋ฌ๊ทธ์ธ์ ์ด๋ฆ.capabilities: ํ๋ฌ๊ทธ์ธ์์ ์ง์ํ๋ ๊ธฐ๋ฅ ๋ชฉ๋ก.ipam: IP ์ฃผ์ ๊ด๋ฆฌ๋ฅผ ์ํ ๊ตฌ์ฑ.plugins: (์ ํ ์ฌํญ) ์คํํ ์ถ๊ฐ CNI ํ๋ฌ๊ทธ์ธ ๋ชฉ๋ก.
๋ค์์ Flannel์ฉ CNI ๊ตฌ์ฑ ํ์ผ์ ์์ ๋๋ค:
{
"cniVersion": "0.3.1",
"name": "mynet",
"type": "flannel",
"delegate": {
"hairpinMode": true,
"isDefaultGateway": true
}
}
์ด ๊ตฌ์ฑ ํ์ผ์ ์ฟ ๋ฒ๋คํฐ์ค์ Flannel CNI ํ๋ฌ๊ทธ์ธ์ ์ฌ์ฉํ์ฌ "mynet"์ด๋ผ๋ ๋คํธ์ํฌ๋ฅผ ์์ฑํ๋๋ก ์ง์ํฉ๋๋ค. delegate ์น์
์ Flannel ํ๋ฌ๊ทธ์ธ์ ๋ํ ์ถ๊ฐ ๊ตฌ์ฑ ์ต์
์ ์ง์ ํฉ๋๋ค.
ํน์ ๊ตฌ์ฑ ์ต์ ์ ์ฌ์ฉ๋๋ CNI ํ๋ฌ๊ทธ์ธ์ ๋ฐ๋ผ ๋ค๋ฆ ๋๋ค. ์ฌ์ฉ ๊ฐ๋ฅํ ๊ตฌ์ฑ ์ต์ ์ ๋ํ ์์ธํ ๋ด์ฉ์ ์ ํํ CNI ํ๋ฌ๊ทธ์ธ์ ์ค๋ช ์๋ฅผ ์ฐธ์กฐํ์ญ์์ค.
CNI ํ๋ฌ๊ทธ์ธ ๋ชจ๋ฒ ์ฌ๋ก
๊ฒฌ๊ณ ํ๊ณ ํ์ฅ ๊ฐ๋ฅํ ์ฟ ๋ฒ๋คํฐ์ค ๋คํธ์ํน ํ๊ฒฝ์ ๋ณด์ฅํ๋ ค๋ฉด ๋ค์ ๋ชจ๋ฒ ์ฌ๋ก๋ฅผ ๋ฐ๋ฅด์ญ์์ค:
- ์ฌ๋ฐ๋ฅธ CNI ํ๋ฌ๊ทธ์ธ ์ ํ: ํ์ฅ์ฑ, ๋ณด์, ์ฑ๋ฅ ๋ฐ ์ฌ์ฉ ํธ์์ฑ๊ณผ ๊ฐ์ ์์๋ฅผ ๊ณ ๋ คํ์ฌ ํน์ ์๊ตฌ ์ฌํญ์ ๊ฐ์ฅ ์ ํฉํ CNI ํ๋ฌ๊ทธ์ธ์ ์ ํํ์ญ์์ค.
- ๋คํธ์ํฌ ์ ์ฑ ์ฌ์ฉ: ๋คํธ์ํฌ ์ ์ฑ ์ ๊ตฌํํ์ฌ ํ๋ ๊ฐ์ ํธ๋ํฝ์ ์ ์ดํ๊ณ ๋ณด์ ๊ฒฝ๊ณ๋ฅผ ๊ฐํํ์ญ์์ค.
- ๋คํธ์ํฌ ์ฑ๋ฅ ๋ชจ๋ํฐ๋ง: ๋ชจ๋ํฐ๋ง ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ฌ ๋คํธ์ํฌ ์ฑ๋ฅ์ ์ถ์ ํ๊ณ ์ ์ฌ์ ์ธ ๋ฌธ์ ๋ฅผ ์๋ณํ์ญ์์ค.
- CNI ํ๋ฌ๊ทธ์ธ ์ต์ ์ํ ์ ์ง: ๋ฒ๊ทธ ์์ , ๋ณด์ ํจ์น ๋ฐ ์๋ก์ด ๊ธฐ๋ฅ์ ํ์ฉํ๊ธฐ ์ํด CNI ํ๋ฌ๊ทธ์ธ์ ์ ๊ธฐ์ ์ผ๋ก ์ ๋ฐ์ดํธํ์ญ์์ค.
- ์ ์ฉ IP ์ฃผ์ ๋ฒ์ ์ฌ์ฉ: ๋ค๋ฅธ ๋คํธ์ํฌ์์ ์ถฉ๋์ ํผํ๊ธฐ ์ํด ์ฟ ๋ฒ๋คํฐ์ค ํ๋์ ์ ์ฉ IP ์ฃผ์ ๋ฒ์๋ฅผ ํ ๋นํ์ญ์์ค.
- ํ์ฅ์ฑ ๊ณํ: ๋ฏธ๋ ์ฑ์ฅ์ ์์ฉํ ์ ์๋๋ก ๋คํธ์ํฌ ์ธํ๋ผ๋ฅผ ์ค๊ณํ๊ณ CNI ํ๋ฌ๊ทธ์ธ์ด ์ฆ๊ฐํ๋ ํ๋ ๋ฐ ๋ ธ๋ ์๋ฅผ ์ฒ๋ฆฌํ ์ ์๋์ง ํ์ธํ์ญ์์ค.
CNI ํ๋ฌ๊ทธ์ธ ๋ฌธ์ ํด๊ฒฐ
๋คํธ์ํน ๋ฌธ์ ๋ ๋ณต์กํ๊ณ ํด๊ฒฐํ๊ธฐ ์ด๋ ค์ธ ์ ์์ต๋๋ค. ๋ค์์ ๋ช ๊ฐ์ง ์ผ๋ฐ์ ์ธ ๋ฌธ์ ์ ์ ๊ทผ ๋ฐฉ๋ฒ์ ๋๋ค:
- ํ๋๊ฐ ๋ค๋ฅธ ํ๋์ ์ฐ๊ฒฐํ ์ ์์:
- ๋คํธ์ํฌ ์ ์ฑ ํ์ธ: ๋คํธ์ํฌ ์ ์ฑ ์ด ํธ๋ํฝ์ ์ฐจ๋จํ๊ณ ์์ง ์์์ง ํ์ธํ์ญ์์ค.
- ๋ผ์ฐํ ํ ์ด๋ธ ํ์ธ: ํธ์คํธ ๋ ธ๋์ ๋ผ์ฐํ ํ ์ด๋ธ์ด ์ฌ๋ฐ๋ฅด๊ฒ ๊ตฌ์ฑ๋์๋์ง ํ์ธํ์ญ์์ค.
- DNS ํ์ธ: ํด๋ฌ์คํฐ ๋ด์์ DNS ํ์ธ์ด ์ฌ๋ฐ๋ฅด๊ฒ ์๋ํ๋์ง ํ์ธํ์ญ์์ค.
- CNI ๋ก๊ทธ ๊ฒ์ฌ: CNI ํ๋ฌ๊ทธ์ธ์ ๋ก๊ทธ์์ ์ค๋ฅ๋ ๊ฒฝ๊ณ ๊ฐ ์๋์ง ๊ฒ์ฌํ์ญ์์ค.
- ํ๋๊ฐ ์ธ๋ถ ์๋น์ค์ ์ฐ๊ฒฐํ ์ ์์:
- ์ก์ ๊ท์น ํ์ธ: ์ธ๋ถ ์๋น์ค๋ก์ ํธ๋ํฝ์ ํ์ฉํ๋๋ก ์ก์ ๊ท์น์ด ์ฌ๋ฐ๋ฅด๊ฒ ๊ตฌ์ฑ๋์๋์ง ํ์ธํ์ญ์์ค.
- DNS ํ์ธ: ์ธ๋ถ ๋๋ฉ์ธ์ ๋ํ DNS ํ์ธ์ด ์ฌ๋ฐ๋ฅด๊ฒ ์๋ํ๋์ง ํ์ธํ์ญ์์ค.
- ๋ฐฉํ๋ฒฝ ๊ท์น ํ์ธ: ๋ฐฉํ๋ฒฝ ๊ท์น์ด ํธ๋ํฝ์ ์ฐจ๋จํ๊ณ ์์ง ์์์ง ํ์ธํ์ญ์์ค.
- ๋คํธ์ํฌ ์ฑ๋ฅ ๋ฌธ์ :
- ๋คํธ์ํฌ ํธ๋ํฝ ๋ชจ๋ํฐ๋ง: ๋ชจ๋ํฐ๋ง ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ฌ ๋คํธ์ํฌ ํธ๋ํฝ์ ์ถ์ ํ๊ณ ๋ณ๋ชฉ ํ์์ ์๋ณํ์ญ์์ค.
- ๋คํธ์ํฌ ์ง์ฐ ์๊ฐ ํ์ธ: ํ๋์ ๋ ธ๋ ๊ฐ์ ๋คํธ์ํฌ ์ง์ฐ ์๊ฐ์ ์ธก์ ํ์ญ์์ค.
- ๋คํธ์ํฌ ๊ตฌ์ฑ ์ต์ ํ: ์ฑ๋ฅ ํฅ์์ ์ํด ๋คํธ์ํฌ ๊ตฌ์ฑ์ ์ต์ ํํ์ญ์์ค.
CNI์ ์๋น์ค ๋ฉ์
CNI ํ๋ฌ๊ทธ์ธ์ด ๊ธฐ๋ณธ ํ๋ ๋คํธ์ํน์ ์ฒ๋ฆฌํ๋ ๋ฐ๋ฉด, ์๋น์ค ๋ฉ์๋ ๋ง์ดํฌ๋ก์๋น์ค๋ฅผ ๊ด๋ฆฌํ๊ณ ๋ณดํธํ๊ธฐ ์ํ ์ถ๊ฐ ๊ธฐ๋ฅ ๊ณ์ธต์ ์ ๊ณตํฉ๋๋ค. Istio, Linkerd, Consul Connect์ ๊ฐ์ ์๋น์ค ๋ฉ์๋ CNI ํ๋ฌ๊ทธ์ธ๊ณผ ํจ๊ป ์๋ํ์ฌ ๋ค์๊ณผ ๊ฐ์ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค:
- ํธ๋ํฝ ๊ด๋ฆฌ: ๋ผ์ฐํ , ๋ก๋ ๋ฐธ๋ฐ์ฑ ๋ฐ ํธ๋ํฝ ์ ฐ์ดํ.
- ๋ณด์: ์ํธ TLS ์ธ์ฆ, ๊ถํ ๋ถ์ฌ ๋ฐ ์ํธํ.
- ๊ด์ฐฐ ๊ฐ๋ฅ์ฑ: ๋ฉํธ๋ฆญ, ์ถ์ ๋ฐ ๋ก๊น .
์๋น์ค ๋ฉ์๋ ์ผ๋ฐ์ ์ผ๋ก ๊ฐ ํ๋์ ์ฌ์ด๋์นด ํ๋ก์๋ฅผ ์ฃผ์ ํ์ฌ ๋ชจ๋ ๋คํธ์ํฌ ํธ๋ํฝ์ ๊ฐ๋ก์ฑ๊ณ ์๋น์ค ๋ฉ์ ์ ์ฑ ์ ์ ์ฉํฉ๋๋ค. CNI ํ๋ฌ๊ทธ์ธ์ ์ฌ์ด๋์นด ํ๋ก์์ ๊ธฐ๋ณธ ๋คํธ์ํฌ ์ฐ๊ฒฐ์ ์ค์ ํ๋ ์ญํ ์ ํ๋ฉฐ, ์๋น์ค ๋ฉ์๋ ๋ ๊ณ ๊ธ ํธ๋ํฝ ๊ด๋ฆฌ ๋ฐ ๋ณด์ ๊ธฐ๋ฅ์ ์ฒ๋ฆฌํฉ๋๋ค. ๋ณด์, ๊ด์ฐฐ ๊ฐ๋ฅ์ฑ ๋ฐ ์ ์ด๋ฅผ ๊ฐํํ๊ธฐ ์ํด ๋ณต์กํ ๋ง์ดํฌ๋ก์๋น์ค ์ํคํ ์ฒ์ ์๋น์ค ๋ฉ์๋ฅผ ๊ณ ๋ คํ์ญ์์ค.
์ฟ ๋ฒ๋คํฐ์ค ๋คํธ์ํน์ ๋ฏธ๋
์ฟ ๋ฒ๋คํฐ์ค ๋คํธ์ํน์ ์๋ก์ด ๊ธฐ์ ๊ณผ ๊ธฐ๋ฅ์ด ํญ์ ๋ฑ์ฅํ๋ฉด์ ๋์์์ด ์งํํ๊ณ ์์ต๋๋ค. ์ฟ ๋ฒ๋คํฐ์ค ๋คํธ์ํน์ ์ฃผ์ ๋ํฅ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
- eBPF: eBPF๋ ๊ณ ์ฑ๋ฅ๊ณผ ๋ฎ์ ์ค๋ฒํค๋ ๋๋ถ์ ์ฟ ๋ฒ๋คํฐ์ค์์ ๋คํธ์ํน ๋ฐ ๋ณด์ ์ ์ฑ ์ ๊ตฌํํ๋ ๋ฐ ์ ์ ๋ ์ธ๊ธฐ๋ฅผ ์ป๊ณ ์์ต๋๋ค.
- ์๋น์ค ๋ฉ์ ํตํฉ: CNI ํ๋ฌ๊ทธ์ธ๊ณผ ์๋น์ค ๋ฉ์ ๊ฐ์ ๊ธด๋ฐํ ํตํฉ์ ๋ง์ดํฌ๋ก์๋น์ค์ ๊ด๋ฆฌ ๋ฐ ๋ณด์์ ๋์ฑ ๋จ์ํํ ๊ฒ์ผ๋ก ์์๋ฉ๋๋ค.
- ๋ฉํฐํด๋ฌ์คํฐ ๋คํธ์ํน: ์กฐ์ง์ด ์ ์ ๋ ๋ฉํฐํด๋ฌ์คํฐ ์ํคํ ์ฒ๋ฅผ ์ฑํํจ์ ๋ฐ๋ผ ์ฌ๋ฌ ์ฟ ๋ฒ๋คํฐ์ค ํด๋ฌ์คํฐ์ ๊ฑธ์ณ ๋คํธ์ํฌ๋ฅผ ์ฐ๊ฒฐํ๊ณ ๊ด๋ฆฌํ๊ธฐ ์ํ ์๋ฃจ์ ์ด ๋์ฑ ์ค์ํด์ง๊ณ ์์ต๋๋ค.
- ํด๋ผ์ฐ๋ ๋ค์ดํฐ๋ธ ๋คํธ์ํฌ ๊ธฐ๋ฅ(CNF): 5G ๋ฐ ๊ธฐํ ๊ณ ๊ธ ๋คํธ์ํน ๊ธฐ์ ์ ์ฑํ์ ํ์ ์ด ๋คํธ์ํฌ ๊ธฐ๋ฅ์ ๋ฐฐํฌํ๊ณ ๊ด๋ฆฌํ๊ธฐ ์ํด ์ฟ ๋ฒ๋คํฐ์ค๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ฃผ๋ชฉ๋ฐ๊ณ ์์ต๋๋ค.
๊ฒฐ๋ก
CNI ํ๋ฌ๊ทธ์ธ์ ์ดํดํ๋ ๊ฒ์ ๊ฒฌ๊ณ ํ๊ณ ํ์ฅ ๊ฐ๋ฅํ ์ฟ ๋ฒ๋คํฐ์ค ํ๊ฒฝ์ ๊ตฌ์ถํ๊ณ ๊ด๋ฆฌํ๋ ๋ฐ ํ์์ ์ ๋๋ค. ์ฌ๋ฐ๋ฅธ CNI ํ๋ฌ๊ทธ์ธ์ ์ ํํ๊ณ , ์ฌ๋ฐ๋ฅด๊ฒ ๊ตฌ์ฑํ๊ณ , ๋ชจ๋ฒ ์ฌ๋ก๋ฅผ ๋ฐ๋ฅด๋ฉด ์ฟ ๋ฒ๋คํฐ์ค ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ฑ๊ณตํ๋ ๋ฐ ํ์ํ ๋คํธ์ํฌ ์ฐ๊ฒฐ์ฑ๊ณผ ๋ณด์์ ๋ณด์ฅํ ์ ์์ต๋๋ค. ์ฟ ๋ฒ๋คํฐ์ค ๋คํธ์ํน์ด ๊ณ์ ์งํํจ์ ๋ฐ๋ผ ์ต์ ๋ํฅ๊ณผ ๊ธฐ์ ์ ๋ํ ์ ๋ณด๋ฅผ ์ ์งํ๋ ๊ฒ์ด ์ด ๊ฐ๋ ฅํ ์ปจํ ์ด๋ ์ค์ผ์คํธ๋ ์ด์ ํ๋ซํผ์ ์ด์ ์ ๊ทน๋ํํ๋ ๋ฐ ์ค์ํ ๊ฒ์ ๋๋ค. ์๊ท๋ชจ ๋ฐฐํฌ๋ถํฐ ์ฌ๋ฌ ๋๋ฅ์ ๊ฑธ์น ๋๊ท๋ชจ ๊ธฐ์ ํ๊ฒฝ์ ์ด๋ฅด๊ธฐ๊น์ง, CNI ํ๋ฌ๊ทธ์ธ์ ๋ง์คํฐํ๋ฉด ์ฟ ๋ฒ๋คํฐ์ค ๋คํธ์ํน์ ์ง์ ํ ์ ์ฌ๋ ฅ์ ๋ฐํํ ์ ์์ต๋๋ค.