์ด๊ฑด ๋ด ์
๋ฐ์ดํธ์ผ
์ฐ์ Cilium ํ์ ๊ฐ์ฌ์ ๋ง์์ ์ ํ๊ณ ์ถ์ต๋๋ค. ์ด ํ์ ๋ฉํธ๋ฆญ ๋ชจ๋ํฐ๋ง ์คํฌ๋ฆฝํธ๋ฅผ ํ์ธํ๊ณ ์์ ํ๋ ๋ฐ ๋์์ ์ฃผ์์ต๋๋ค.
2018๋ XNUMX์ ์ดํ ๋ฌ๋ผ์ง ์
๊ทธ ์ดํ๋ก ๋ณ๊ฒฝ๋ ๋ด์ฉ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค(๊ด์ฌ ์๋ ๊ฒฝ์ฐ).
Flannel์ ๊ฐ์ฅ ๋น ๋ฅด๊ณ ๊ฐ๋จํ CNI ์ธํฐํ์ด์ค๋ก ๋จ์ ์์ง๋ง ์ฌ์ ํ ๋คํธ์ํฌ ์ ์ฑ ๋ฐ ์ํธํ๋ฅผ ์ง์ํ์ง ์์ต๋๋ค.
Romana๋ ๋ ์ด์ ์ง์๋์ง ์์ผ๋ฏ๋ก ๋ฒค์น๋งํฌ์์ ์ ๊ฑฐํ์ต๋๋ค.
WeaveNet์ ์ด์ Ingress ๋ฐ Egress์ ๋ํ ๋คํธ์ํฌ ์ ์ฑ ์ ์ง์ํฉ๋๋ค! ๊ทธ๋ฌ๋ ์์ฐ์ฑ์ ๊ฐ์ํ์ต๋๋ค.
Calico์์๋ ์ต์์ ์ฑ๋ฅ์ ์ํด ์ต๋ ํจํท ํฌ๊ธฐ(MTU)๋ฅผ ์๋์ผ๋ก ๊ตฌ์ฑํด์ผ ํฉ๋๋ค. Calico๋ CNI ์ค์น๋ฅผ ์ํ ๋ ๊ฐ์ง ์ต์ ์ ์ ๊ณตํ๋ฏ๋ก ๋ณ๋์ ETCD ์ ์ฅ์ ์์ด๋ ์ํํ ์ ์์ต๋๋ค.
- Kubernetes API์ ์ํ๋ฅผ ๋ฐ์ดํฐ ์ ์ฅ์๋ก ์ ์ฅํฉ๋๋ค(ํด๋ฌ์คํฐ ํฌ๊ธฐ < 50๊ฐ ๋ ธ๋).
- K8S API์ ๋ถํ๋ฅผ ์ํํ๊ธฐ ์ํด Typha ํ๋ก์๋ฅผ ์ฌ์ฉํ์ฌ Kubernetes API์ ์ํ๋ฅผ ๋ฐ์ดํฐ ์ ์ฅ์๋ก ์ ์ฅํฉ๋๋ค(ํด๋ฌ์คํฐ ํฌ๊ธฐ > 50๋ ธ๋).
Calico๋ ์ง์์ ๋ฐํํ์ต๋๋ค.
Cilium์ ์ด์ ์ํธํ๋ฅผ ์ง์ํฉ๋๋ค! Cilium์ IPSec ํฐ๋์ ํตํ ์ํธํ๋ฅผ ์ ๊ณตํ๊ณ ์ํธํ๋ WeaveNet ๋คํธ์ํฌ์ ๋ํ ๋์์ ์ ๊ณตํฉ๋๋ค. ๊ทธ๋ฌ๋ WeaveNet์ ์ํธํ๊ฐ ํ์ฑํ๋ Cilium๋ณด๋ค ๋น ๋ฆ ๋๋ค.
์ด์ ๋ด์ฅ๋ ETCD ์ฐ์ฐ์ ๋๋ถ์ Cilium์ ๋ฐฐํฌํ๊ธฐ๊ฐ ๋ ์ฌ์์ก์ต๋๋ค.
Cilium ํ์ ๋ฉ๋ชจ๋ฆฌ ์๋น์ CPU ๋น์ฉ์ ์ค์ฌ CNI์ ๋ฌด๊ฒ๋ฅผ ์ผ๋ถ ์ค์ด๋ ค๊ณ ๋ ธ๋ ฅํ์ง๋ง ๊ฒฝ์์ ์ฒด๋ ์ฌ์ ํ ๋ ๊ฐ๋ณ์ต๋๋ค.
๋ฒค์น๋งํฌ ์ปจํ ์คํธ
๋ฒค์น๋งํฌ๋ 10Gb Supermicro ์ค์์น๋ฅผ ๊ฐ์ถ ๊ฐ์ํ๋์ง ์์ Supermicro ์๋ฒ 9000๋์์ ์คํ๋์์ต๋๋ค. ์๋ฒ๋ ํจ์๋ธ DAC SFP+ ์ผ์ด๋ธ์ ํตํด ์ค์์น์ ์ง์ ์ฐ๊ฒฐ๋๋ฉฐ ์ ๋ณด ํ๋ ์(MTU XNUMX)์ ์ฌ์ฉํ์ฌ ๋์ผํ VLAN์ ๊ตฌ์ฑ๋ฉ๋๋ค.
Docker 1.14.0(์ด ๋ฆด๋ฆฌ์ค์ ๊ธฐ๋ณธ Docker ๋ฒ์ )๊ฐ ํฌํจ๋ Ubuntu 18.04 LTS์ ์ค์น๋ Kubernetes 18.09.2.
์ฌํ์ฑ์ ๋์ด๊ธฐ ์ํด ์ฐ๋ฆฌ๋ ํญ์ ์ฒซ ๋ฒ์งธ ๋ ธ๋์ ๋ง์คํฐ๋ฅผ ๊ตฌ์ฑํ๊ณ ๋ฒค์น๋งํฌ์ ์๋ฒ ๋ถ๋ถ์ ๋ ๋ฒ์งธ ์๋ฒ์ ๋ฐฐ์นํ๊ณ ํด๋ผ์ด์ธํธ ๋ถ๋ถ์ ์ธ ๋ฒ์งธ ์๋ฒ์ ๋ฐฐ์นํ๊ธฐ๋ก ๊ฒฐ์ ํ์ต๋๋ค. ์ด๋ฅผ ์ํด Kubernetes ๋ฐฐํฌ์์ NodeSelector๋ฅผ ์ฌ์ฉํฉ๋๋ค.
๋ฒค์น๋งํฌ ๊ฒฐ๊ณผ๋ฅผ ๋ค์๊ณผ ๊ฐ์ ๊ท๋ชจ๋ก ์ค๋ช ํ๊ฒ ์ต๋๋ค.
๋ฒค์น๋งํฌ๋ฅผ ์ํ CNI ์ ํ
์ด๋ ์น์
๋ชฉ๋ก์ CNI์ ๋ํ ๋ฒค์น๋งํฌ์
๋๋ค.
๋ค์ CNI๋ฅผ ๋น๊ตํด ๋ณด๊ฒ ์ต๋๋ค.
- ์ฅ์๋ชฉ v3.6
- Canal v3.6(๊ธฐ๋ณธ์ ์ผ๋ก ๋คํธ์ํน์ ์ํ Flannel + ๋ฐฉํ๋ฒฝ์ผ๋ก์์ Calico)
- ์ฌ๋ชจ 1.4.2
- ํ๋๋ฌ 0.11.0
- ํ๋ธ ๋ผ์ฐํฐ 0.2.5
- ์๋ธ๋ท 2.5.1
์ค์น
CNI ์ค์น๊ฐ ์ฌ์ธ์๋ก ์ฒซ์ธ์์ด ๋ ์ข์์ง ๊ฒ์ ๋๋ค. ๋ฒค์น๋งํฌ์ ๋ชจ๋ CNI๋ ์ค์น๊ฐ ๋งค์ฐ ์ฝ์ต๋๋ค(ํ๋ ๋๋ ๋ ๊ฐ์ ๋ช ๋ น ์ฌ์ฉ).
์์์ ๋งํ๋ฏ์ด ์๋ฒ์ ์ค์์น๋ ์ ๋ณด ํ๋ ์์ด ํ์ฑํ๋ ์ํ๋ก ๊ตฌ์ฑ๋ฉ๋๋ค(MTU๋ฅผ 9000์ผ๋ก ์ค์ ). CNI๊ฐ ์ด๋ํฐ ๊ตฌ์ฑ์ ๊ธฐ๋ฐ์ผ๋ก MTU๋ฅผ ์๋์ผ๋ก ๊ฒฐ์ ํ๋ค๋ฉด ๊ธฐ์๊ฒ ์ต๋๋ค. ๊ทธ๋ฌ๋ Cilium๊ณผ Flannel๋ง์ด ์ด๋ฅผ ๊ด๋ฆฌํ์ต๋๋ค. ๋๋จธ์ง CNI์๋ GitHub์ ์๋ MTU ๊ฒ์์ ์ถ๊ฐํ๋ผ๋ ์์ฒญ์ด ์์ง๋ง Calico, Canal ๋ฐ Kube-router์ ๋ํ ConfigMap์ ๋ณ๊ฒฝํ๊ฑฐ๋ WeaveNet์ ๋ํ ํ๊ฒฝ ๋ณ์๋ฅผ ์ ๋ฌํ์ฌ ์๋์ผ๋ก ๊ตฌ์ฑํ๊ฒ ์ต๋๋ค.
์๋ชป๋ MTU์ ๋ฌธ์ ์ ์ ๋ฌด์์ ๋๊น? ์ด ๋ค์ด์ด๊ทธ๋จ์ ๊ธฐ๋ณธ MTU๊ฐ ํ์ฑํ๋ WeaveNet๊ณผ ์ ๋ณด ํ๋ ์ ๊ฐ์ ์ฐจ์ด์ ์ ๋ณด์ฌ์ค๋๋ค.
MTU๋ ์ฒ๋ฆฌ๋์ ์ด๋ค ์ํฅ์ ๋ฏธ์น๋์?
MTU๊ฐ ์ฑ๋ฅ์ ์ผ๋ง๋ ์ค์ํ์ง ์ดํด๋ณด์์ต๋๋ค. ์ด์ CNI๊ฐ MTU๋ฅผ ์๋์ผ๋ก ๊ฒฐ์ ํ๋ ๋ฐฉ๋ฒ์ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
CNI๋ MTU๋ฅผ ์๋์ผ๋ก ๊ฐ์งํฉ๋๋ค.
๊ทธ๋ํ๋ ์ต์ ์ ์ฑ๋ฅ์ ์ํด Calico, Canal, Kube-router ๋ฐ WeaveNet์ ๋ํ MTU๋ฅผ ๊ตฌ์ฑํด์ผ ํจ์ ๋ณด์ฌ์ค๋๋ค. Cilium๊ณผ Flannel์ ์๋ฌด๋ฐ ์ค์ ์์ด๋ MTU ์์ฒด๋ฅผ ์ฌ๋ฐ๋ฅด๊ฒ ๊ฒฐ์ ํ ์ ์์์ต๋๋ค.
ะะตะทะพะฟะฐัะฝะพััั
์ ์ก๋ ๋ฐ์ดํฐ๋ฅผ ์ํธํํ๋ ๊ธฐ๋ฅ๊ณผ Kubernetes ๋คํธ์ํฌ ์ ์ฑ ๊ตฌํ(๋ฌธ์๊ฐ ์๋ ์ค์ ํ ์คํธ ๊ธฐ๋ฐ)์ด๋ผ๋ ๋ ๊ฐ์ง ์ธก๋ฉด์์ CNI ๋ณด์์ ๋น๊ตํ ๊ฒ์ ๋๋ค.
๋ ๊ฐ์ CNI๋ง์ด ๋ฐ์ดํฐ๋ฅผ ์ํธํํฉ๋๋ค: Cilium๊ณผ WeaveNet. ์ํธํ ์๋ธ๋ท ์ํธํ ๋น๋ฐ๋ฒํธ๋ฅผ CNI ํ๊ฒฝ ๋ณ์๋ก ์ค์ ํ์ฌ ํ์ฑํํฉ๋๋ค. ์์
๋คํธ์ํฌ ์ ์ฑ ๊ตฌํ์ ์์ด์๋ ์ฑ๊ณตํ์ต๋๋ค. Calico, Canal, Cilium ๋ฐ WeaveNet์์ ์์ ๋ฐ ์ก์ ๊ท์น์ ๊ตฌ์ฑํ ์ ์์ต๋๋ค. ์ ์ํ ํ๋ธ ๋ผ์ฐํฐ Ingress์๋ง ๊ท์น์ด ์์ต๋๋ค. ํ๋๋ฌ ๋คํธ์ํฌ ์ ์ฑ ์ด ์ ํ ์์ต๋๋ค.
์ ์ฒด ๊ฒฐ๊ณผ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
์์ ์ฑ๋ฅ ๋ฒค์น๋งํฌ ๊ฒฐ๊ณผ
ะัะพะธะทะฒะพะดะธัะตะปัะฝะพััั
์ด ๋ฒค์น๋งํฌ๋ ๊ฐ ํ ์คํธ๋ฅผ 3ํ ์ด์ ์คํํ๋ ๋์์ ํ๊ท ์ฒ๋ฆฌ๋์ ๋ณด์ฌ์ค๋๋ค. ์ฐ๋ฆฌ๋ TCP ๋ฐ UDP(iperfXNUMX ์ฌ์ฉ), HTTP(Nginx ๋ฐ ์ปฌ ์ฌ์ฉ) ๋๋ FTP(vsftpd ๋ฐ ์ปฌ ์ฌ์ฉ)์ ๊ฐ์ ์ค์ ์ ํ๋ฆฌ์ผ์ด์ , ๋ง์ง๋ง์ผ๋ก SCP ๊ธฐ๋ฐ ์ํธํ(ํด๋ผ์ด์ธํธ ๋ฐ ์๋ฒ OpenSSH ์ฌ์ฉ)๋ฅผ ์ฌ์ฉํ์ฌ ์ ํ๋ฆฌ์ผ์ด์ ์ฑ๋ฅ์ ํ ์คํธํฉ๋๋ค.
๋ชจ๋ ํ ์คํธ์ ๋ํด ๋ฒ ์ด๋ฉํ ๋ฒค์น๋งํฌ(๋ น์ ์ )๋ฅผ ์ํํ์ฌ CNI ์ฑ๋ฅ๊ณผ ๊ธฐ๋ณธ ๋คํธ์ํฌ ์ฑ๋ฅ์ ๋น๊ตํ์ต๋๋ค. ์ฌ๊ธฐ์๋ ๋์ผํ ์ค์ผ์ผ์ ์ฌ์ฉํ์ง๋ง ์์์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- ๋ ธ๋์ = ์์ฃผ ์ข์
- ์ฃผํฉ์ = ์ข์
- ํ๋์ = ๊ทธ์ ๊ทธ๋ ๋ค
- ๋นจ๊ฐ์ = ๋์จ
์๋ชป ๊ตฌ์ฑ๋ CNI๋ ์ฌ์ฉํ์ง ์์ผ๋ฉฐ ์ฌ๋ฐ๋ฅธ MTU๊ฐ ์๋ CNI์ ๋ํ ๊ฒฐ๊ณผ๋ง ํ์ํฉ๋๋ค. (์ฐธ๊ณ : Cilium์ ์ํธํ๋ฅผ ํ์ฑํํ ๊ฒฝ์ฐ MTU๋ฅผ ์ฌ๋ฐ๋ฅด๊ฒ ๊ณ์ฐํ์ง ์์ผ๋ฏ๋ก ๋ฒ์ 8900์์๋ MTU๋ฅผ ์๋์ผ๋ก 1.4์ผ๋ก ์ค์ฌ์ผ ํฉ๋๋ค. ๋ค์ ๋ฒ์ ์ธ 1.5์์๋ ์ด ์์ ์ ์๋์ผ๋ก ์ํํฉ๋๋ค.)
๊ฒฐ๊ณผ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
๋ชจ๋ CNI๋ TCP ๋ฒค์น๋งํฌ์์ ์ข์ ์ฑ๋ฅ์ ๋ณด์์ต๋๋ค. ์ํธํ๋ฅผ ์ฌ์ฉํ CNI๋ ์ํธํ ๋น์ฉ์ด ๋ง์ด ๋ค๊ธฐ ๋๋ฌธ์ ํจ์ฌ ๋ค์ฒ์ง๋๋ค.
์ฌ๊ธฐ์์๋ ๋ชจ๋ CNI๊ฐ ์ ์ง๋ด๊ณ ์์ต๋๋ค. ์ํธํ๋ฅผ ์ ์ฉํ CNI๋ ๊ฑฐ์ ๋์ผํ ๊ฒฐ๊ณผ๋ฅผ ๋ณด์ฌ์ฃผ์์ต๋๋ค. Cilium์ ๊ฒฝ์์ฌ์ ๋นํด ์กฐ๊ธ ๋ค์ณ์ง์ง๋ง ๋ฒ ์ด๋ฉํ ๋๋น 2,3%์ ๋ถ๊ณผํ๋ ๋์ ๊ฒฐ๊ณผ๋ ์๋๋๋ค. Cilium๊ณผ Flannel๋ง์ด MTU๋ฅผ ์ค์ค๋ก ์ฌ๋ฐ๋ฅด๊ฒ ๊ฒฐ์ ํ์ผ๋ฉฐ ์ด๋ ์ถ๊ฐ ๊ตฌ์ฑ ์์ด ์ป์ ๊ฒฐ๊ณผ๋ผ๋ ์ ์ ์์ง ๋ง์ญ์์ค.
์ค์ ์์ฉ ํ๋ก๊ทธ๋จ์ ์ด๋ป์ต๋๊น? ๋ณด์๋ค์ํผ HTTP์ ์ ๋ฐ์ ์ธ ์ฑ๋ฅ์ TCP๋ณด๋ค ์ฝ๊ฐ ๋ฎ์ต๋๋ค. TCP์ ํจ๊ป HTTP๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ์๋ HTTP ๋ฒค์น๋งํฌ์ ์ํฅ์ ๋ฏธ์น ์ ์๋ ๋๋ฆฐ ์์์ ๋ฐฉ์งํ๊ธฐ ์ํด TCP ๋ฒค์น๋งํฌ์์ iperf3์ ๊ตฌ์ฑํ์ต๋๋ค. ์ฌ๊ธฐ์ ๋ค๋ค ์๊ณ ํ์ จ์ด์. Kube-router๋ ๋ถ๋ช ํ ์ฅ์ ์ด ์์ง๋ง WeaveNet์ ๋ฒ ์ด๋ฉํ๋ณด๋ค ์ฝ 20% ์ ๋ ์ฑ๋ฅ์ด ์ข์ง ์์์ต๋๋ค. ์ํธํ ๊ธฐ๋ฅ์ ๊ฐ์ถ Cilium๊ณผ WeaveNet์ ์ ๋ง ์ํ๊น์ต๋๋ค.
๋ ๋ค๋ฅธ TCP ๊ธฐ๋ฐ ํ๋กํ ์ฝ์ธ FTP๋ฅผ ์ฌ์ฉํ๋ฉด ๊ฒฐ๊ณผ๊ฐ ๋ค์ํด์ง๋๋ค. Flannel๊ณผ Kube-router๊ฐ ์์ ์ ์ํํ์ง๋ง Calico, Canal ๋ฐ Cilium์ ์ฝ๊ฐ ๋ค์ณ์ ธ ์์ผ๋ฉฐ ๋ฒ ์ด ๋ฉํ๋ณด๋ค ์ฝ 10% ๋๋ฆฝ๋๋ค. WeaveNet์ 17%๋ ๋ค์ฒ์ ธ ์์ง๋ง ์ํธํ๋ WeaveNet์ ์ํธํ๋ Cilium๋ณด๋ค 40% ์์ ์์ต๋๋ค.
SCP๋ฅผ ์ฌ์ฉํ๋ฉด SSH ์ํธํ ๋น์ฉ์ด ์ผ๋ง๋ ๋๋์ง ์ฆ์ ํ์ธํ ์ ์์ต๋๋ค. ๊ฑฐ์ ๋ชจ๋ CNI๊ฐ ์ํ๊ณ ์์ง๋ง WeaveNet์ ๋ค์ ๋ค์ณ์ ธ ์์ต๋๋ค. ์ํธํ๋ฅผ ์ ์ฉํ Cilium๊ณผ WeaveNet์ ์ด์ค ์ํธํ(SSH+CNI)๋ก ์ธํด ์ต์ ์ด ์์๋ฉ๋๋ค.
๋ค์์ ๊ฒฐ๊ณผ๊ฐ ํฌํจ๋ ์์ฝ ํ์ ๋๋ค.
์์ ์๋น
์ด์ CNI๊ฐ ๊ณผ๋ถํ(TCP ์ ์ก ์ค, 10Gbps)์์ ๋ฆฌ์์ค๋ฅผ ์ด๋ป๊ฒ ์๋นํ๋์ง ๋น๊ตํด ๋ณด๊ฒ ์ต๋๋ค. ์ฑ๋ฅ ํ ์คํธ์์๋ CNI๋ฅผ ๋ฒ ์ด ๋ฉํ(๋ น์ ์ )๊ณผ ๋น๊ตํฉ๋๋ค. ๋ฆฌ์์ค ์๋น์ ๊ฒฝ์ฐ CNI๊ฐ ์๋ ์์ Kubernetes(๋ณด๋ผ์ ์ )๋ฅผ ํ์ํ๊ณ CNI๊ฐ ์๋นํ๋ ์ถ๊ฐ ๋ฆฌ์์ค ์๋ฅผ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
๊ธฐ์ต๋ถํฐ ์์ํด๋ณด์. ๋ค์์ ์ ์ก ์ค ๋ ธ๋ RAM(๋ฒํผ ๋ฐ ์บ์ ์ ์ธ)์ ํ๊ท ๊ฐ(MB)์ ๋๋ค.
Flannel๊ณผ Kube-router๋ 50MB์ ๋ถ๊ณผํ ๋ฐ์ด๋ ๊ฒฐ๊ณผ๋ฅผ ๋ณด์ฌ์ฃผ์์ต๋๋ค. Calico์ Canal์ ๊ฐ๊ฐ 70MB๋ฅผ ์ฌ์ฉํฉ๋๋ค. WeaveNet์ ๋ถ๋ช
ํ ๋ค๋ฅธ ๊ฒ๋ณด๋ค ๋ ๋ง์ 130MB๋ฅผ ์๋นํ๊ณ Cilium์ 400MB๋ฅผ ์ฌ์ฉํฉ๋๋ค.
์ด์ CPU ์๊ฐ ์๋น๋ฅผ ํ์ธํด ๋ณด๊ฒ ์ต๋๋ค. ์ฃผ๋ชฉํ ๋งํ: ๋ค์ด์ด๊ทธ๋จ์๋ ๋ฐฑ๋ถ์จ์ด ํ์๋์ด ์์ง ์์ง๋ง, "์์ฒ "์ ๊ฒฝ์ฐ ppm, ์ฆ 38ppm์ 3,8%์
๋๋ค. ๊ฒฐ๊ณผ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
Calico, Canal, Flannel ๋ฐ Kube-router๋ CPU ํจ์จ์ด ๋งค์ฐ ๋์ต๋๋ค. CNI๊ฐ ์๋ Kubernetes๋ณด๋ค 2%๋ง ๋ ๋์ต๋๋ค. WeaveNet์ ์ถ๊ฐ 5%๋ก ํจ์ฌ ๋ค์ณ์ ธ ์์ผ๋ฉฐ Cilium์ด 7%๋ก ๊ทธ ๋ค๋ฅผ ๋ฐ๋ฆ ๋๋ค.
๋ฆฌ์์ค ์๋น๋ฅผ ์์ฝํ๋ฉด ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
๊ฒฐ๊ณผ
๋ชจ๋ ๊ฒฐ๊ณผ๊ฐ ํฌํจ๋ ํ:
๊ฒฐ๋ก
๋ง์ง๋ง ๋ถ๋ถ์์๋ ๊ฒฐ๊ณผ์ ๋ํ ์ฃผ๊ด์ ์ธ ์๊ฒฌ์ ํํํ๊ฒ ์ต๋๋ค. ์ด ๋ฒค์น๋งํฌ๋ ๋งค์ฐ ์์ ํด๋ฌ์คํฐ(๋ ธ๋ 3๊ฐ)์์ ๋จ์ผ ์ฐ๊ฒฐ์ ์ฒ๋ฆฌ๋๋ง ํ ์คํธํ๋ค๋ ์ ์ ๊ธฐ์ตํ์ธ์. ๋๊ท๋ชจ ํด๋ฌ์คํฐ(๋ ธ๋ 50๊ฐ ๋ฏธ๋ง) ๋๋ ๋ณ๋ ฌ ์ฐ๊ฒฐ์๋ ์ ์ฉ๋์ง ์์ต๋๋ค.
์๋๋ฆฌ์ค์ ๋ฐ๋ผ ๋ค์ CNI๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
- ํด๋ฌ์คํฐ์ ์์ต๋๊น? ๋ฆฌ์์ค๊ฐ ๊ฑฐ์ ์๋ ๋ ธ๋ (์ GB RAM, ์ฌ๋ฌ ์ฝ์ด) ๋ณด์ ๊ธฐ๋ฅ์ด ํ์ํ์ง ์์ ๊ฒฝ์ฐ - ์ ํ ํ๋๋ฌ. ์ด๋ ๊ฐ์ฅ ๋น์ฉ ํจ์จ์ ์ธ CNI ์ค ํ๋์ ๋๋ค. ๋ํ ๋ค์ํ ์ํคํ ์ฒ(amd64, arm, arm64 ๋ฑ)์ ํธํ๋ฉ๋๋ค. ๋ํ ์ด๋ MTU๋ฅผ ์๋์ผ๋ก ๊ฒฐ์ ํ ์ ์๋ ๋ ๊ฐ์ง(๋ค๋ฅธ ํ๋๋ Cilium) CNI ์ค ํ๋์ด๋ฏ๋ก ์๋ฌด๊ฒ๋ ๊ตฌ์ฑํ ํ์๊ฐ ์์ต๋๋ค. Kube-router๋ ์ ํฉํ์ง๋ง ํ์ค์ด ์๋๋ฏ๋ก MTU๋ฅผ ์๋์ผ๋ก ๊ตฌ์ฑํด์ผ ํฉ๋๋ค.
- ํ์ํ ๊ฒฝ์ฐ ๋คํธ์ํฌ๋ฅผ ์ํธํํ๋ค ์์ ์ ์ํด ๊ฐ์ ธ๊ฐ์ธ์ ์๋ธ๋ท. ์ ๋ณด ํ๋ ์์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ MTU ํฌ๊ธฐ๋ฅผ ์ง์ ํ๊ณ ํ๊ฒฝ ๋ณ์๋ฅผ ํตํด ๋น๋ฐ๋ฒํธ๋ฅผ ์ง์ ํ์ฌ ์ํธํ๋ฅผ ํ์ฑํํ๋ ๊ฒ์ ์์ง ๋ง์ญ์์ค. ๊ทธ๋ฌ๋ ์ฑ๋ฅ์ ์์ด๋ฒ๋ฆฌ๋ ๊ฒ์ด ์ข์ต๋๋ค. ์ด๋ ์ํธํ ๋น์ฉ์ ๋๋ค.
- ์ ์ ์์ ์ธ ์ฌ์ฉ ๋๋ ์กฐ์ธํ๋ค ์ฅ์๋ชฉ. ์ด CNI๋ ๋ค์ํ Kubernetes ๋ฐฐํฌ ๋๊ตฌ(Kops, Kubespray, Rancher ๋ฑ)์์ ๋๋ฆฌ ์ฌ์ฉ๋ฉ๋๋ค. WeaveNet๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก ์ ๋ณด ํ๋ ์์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ConfigMap์์ MTU๋ฅผ ๊ตฌ์ฑํด์ผ ํฉ๋๋ค. ๋ฆฌ์์ค ์๋น, ์ฑ๋ฅ ๋ฐ ๋ณด์ ์ธก๋ฉด์์ ํจ์จ์ ์ธ ๋ค๊ธฐ๋ฅ ๋๊ตฌ์ ๋๋ค.
๋ง์ง๋ง์ผ๋ก ๊ฐ๋ฐ์ ๋ฐ๋ฅด๋ผ๊ณ ์กฐ์ธํฉ๋๋ค. ์ฌ๋ชจ. ์ด CNI์๋ ์ ํ(๊ธฐ๋ฅ, ๋ฆฌ์์ค ์ ์ฝ, ์ฑ๋ฅ, ๋ณด์, ํด๋ฌ์คํฐ๋ง...)์ ๋ํด ๋ง์ ์์ ์ ์ํํ๋ ๋งค์ฐ ํ๋์ ์ธ ํ์ด ์์ผ๋ฉฐ ๋งค์ฐ ํฅ๋ฏธ๋ก์ด ๊ณํ์ ๊ฐ์ง๊ณ ์์ต๋๋ค.
CNI ์ ํ์ ์ํ ์๊ฐ์ ๋ค์ด์ด๊ทธ๋จ
์ถ์ฒ : habr.com