Why choose Istio?
Last updated
Last updated
Istio๋ 2017๋ ์ถ์๋ ๋ ์ฌ์ด๋์นด ๊ธฐ๋ฐ ์๋น์ค ๋ฉ์์ ๊ฐ๋ ์ ์ ๋ํ์ต๋๋ค. ํ๋ก์ ํธ ์ด๊ธฐ๋ถํฐ ์ ๋ก ํธ๋ฌ์คํธ ๋คํธ์ํน์ ์ํ ํ์ค ๊ธฐ๋ฐ ์ํธ TLS, ์ค๋งํธ ํธ๋ํฝ ๋ผ์ฐํ , ๋ฉํธ๋ฆญ/๋ก๊ทธ/์ถ์ ์ ํตํ ๊ฐ์์ฑ ๋ฑ ์๋น์ค ๋ฉ์๋ฅผ ์ ์ํ๋ ๊ธฐ๋ฅ๋ค์ ํฌํจํ๊ณ ์์์ต๋๋ค.๊ทธ ์ดํ๋ก Istio ํ๋ก์ ํธ๋ ๋ฉํฐ ํด๋ฌ์คํฐ ๋ฐ ๋ฉํฐ ๋คํธ์ํฌ ํ ํด๋ก์ง, WebAssembly๋ฅผ ํตํ ํ์ฅ์ฑ, Kubernetes Gateway API ๊ฐ๋ฐ, ์ฐ๋น์ธํธ ๋ชจ๋๋ฅผ ํตํ ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ์๋ก๋ถํฐ์ ๋ฉ์ ์ธํ๋ผ ๋ถ๋ฆฌ ๋ฑ ๋ฉ์ ์์ญ์์์ ๋ฐ์ ์ ์ฃผ๋ํด ์์ต๋๋ค.๋ค์์ Istio๋ฅผ ์๋น์ค ๋ฉ์๋ก ์ฌ์ฉํด์ผ ํ๋ ๋ช ๊ฐ์ง ์ด์ ์ ๋๋ค.
์ฟ ๋ฒ๋คํฐ์ค์๋ ์๋ฐฑ ๊ฐ์ง ๊ธฐ๋ฅ๊ณผ ์์ญ ๊ฐ์ API๊ฐ ์์ง๋ง, ๋จ ํ๋์ ๋ช ๋ น์ผ๋ก ์์ํ ์ ์์ต๋๋ค. ์ฐ๋ฆฌ๋ Istio๋ ๊ฐ์ ๋ฐฉ์์ผ๋ก ๊ตฌ์ถํ์ต๋๋ค. ์ ์ง์ ๊ณต๊ฐ(Progressive disclosure) ๋ฐฉ์์ ํตํด ์์ API ์งํฉ์ ์ฌ์ฉํ ์ ์์ผ๋ฉฐ, ํ์ํ ๊ฒฝ์ฐ์๋ง ๋ ๊ฐ๋ ฅํ ๊ธฐ๋ฅ์ ์ผค ์ ์์ต๋๋ค. ๋ค๋ฅธ "๋จ์ํ" ์๋น์ค ๋ฉ์๋ค์ Istio๊ฐ ์ฒซ๋ ๋ถํฐ ๊ฐ์ง๊ณ ์๋ ๊ธฐ๋ฅ ์ธํธ๋ฅผ ๋ฐ๋ผ์ก๋ ๋ฐ ์๋ ์ด ๊ฑธ๋ ธ์ต๋๋ค.๊ธฐ๋ฅ์ด ์์ด๋ ํ์ํ์ง ์์ ๊ฒ์ด, ํ์ํ ๋ ์๋ ๊ฒ๋ณด๋ค ๋ซ์ต๋๋ค!
Istio๋ ์ฒ์๋ถํฐ Lyft์์ ์ด๊ธฐ์ ๊ตฌ์ถํ ๊ณ ์ฑ๋ฅ ์๋น์ค ํ๋ก์์ธ Envoy ํ๋ก์๋ก ๊ตฌ๋๋์์ต๋๋ค. Istio๋ Envoy๋ฅผ ์ฑํํ ์ต์ด์ ํ๋ก์ ํธ์์ผ๋ฉฐ, Istio ํ์ ์ต์ด์ ์ธ๋ถ ์ปค๋ฏธํฐ์์ต๋๋ค. Envoy๋ Google Cloud๋ฅผ ๊ตฌ๋ํ๋ ๋ก๋ ๋ฐธ๋ฐ์๋ฟ๋ง ์๋๋ผ ๊ฑฐ์ ๋ชจ๋ ๋ค๋ฅธ ์๋น์ค ๋ฉ์ ํ๋ซํผ์ ํ๋ก์๊ฐ ๋์์ต๋๋ค.Istio๋ Istio ํ์ ์ํด Envoy์์ ๊ฐ๋ฐ๋ WebAssembly๋ฅผ ์ฌ์ฉํ ์ธ๊ณ ์ต๊ณ ์์ค์ ํ์ฅ์ฑ์ ํฌํจํ์ฌ Envoy์ ๋ชจ๋ ํ๊ณผ ์ ์ฐ์ฑ์ ๊ณ์นํฉ๋๋ค.
Istio๋ ์ง์ ํ ์ปค๋ฎค๋ํฐ ํ๋ก์ ํธ์ ๋๋ค. 2023๋ ์๋ Istio์ 1,000๊ฐ ์ด์์ ๊ธฐ์ฌ๋ฅผ ํ 10๊ฐ ํ์ฌ๊ฐ ์์์ผ๋ฉฐ, ์ด๋ค ํ์ฌ๋ 25%๋ฅผ ๋์ง ์์์ต๋๋ค. (์ฌ๊ธฐ์์ ์ซ์๋ฅผ ํ์ธํ์ธ์)Istio๋งํผ ์ ๊ณ์ ํญ๋์ ์ง์์ ๋ฐ๋ ๋ค๋ฅธ ์๋น์ค ๋ฉ์ ํ๋ก์ ํธ๋ ์์ต๋๋ค.
์ฐ๋ฆฌ๋ ๋ชจ๋ ์ฌ๋์ด ์ฌ์ฉํ ์ ์๋ ์์ ์ ์ธ ๋ฐ์ด๋๋ฆฌ ๋ฆด๋ฆฌ์ค๋ฅผ ๋ชจ๋ ๋ฆด๋ฆฌ์ค์์ ์ ๊ณตํ๋ฉฐ, ๊ณ์ ๊ทธ๋ ๊ฒ ํ ๊ฒ์ ์ฝ์ํฉ๋๋ค. ์ฐ๋ฆฌ๋ ์ต์ ๋ฆด๋ฆฌ์ค์ ์ฌ๋ฌ ์ด์ ๋ฆด๋ฆฌ์ค์ ๋ํด ๋ฌด๋ฃ๋ก ์ ๊ธฐ์ ์ธ ๋ณด์ ํจ์น๋ฅผ ์ ๊ณตํฉ๋๋ค. ๋ง์ ๋ฒค๋๋ค์ด ์ด์ ๋ฒ์ ์ ์ง์ํ๊ฒ ์ง๋ง, ์์ ์ ์ธ ์คํ ์์ค ํ๋ก์ ํธ์์ ์์ ํ๊ธฐ ์ํด ๋ฒค๋์์ ๊ณ์ฝ์ด ํ์ ์๊ฑด์ด ๋์ด์๋ ์ ๋๋ค๊ณ ์๊ฐํฉ๋๋ค.
์ข์ ์ค๊ณ ๋ฌธ์์๋ ๊ณ ๋ ค๋์์ง๋ง ๊ถ๊ทน์ ์ผ๋ก ๊ฑฐ๋ถ๋ ๋์์ ๋ํ ์น์ ์ด ํฌํจ๋ฉ๋๋ค.
์ฐ๋ฆฌ๋ ์ ์ ํ ๊ณณ์์ eBPF๋ฅผ ์ฌ์ฉํฉ๋๋ค! Istio๋ eBPF๋ฅผ ์ฌ์ฉํ์ฌ ํฌ๋์์ ํ๋ก์๋ก ํธ๋ํฝ์ ๋ผ์ฐํ
ํ๋๋ก ๊ตฌ์ฑํ ์ ์์ต๋๋ค. ์ด๋ iptables
๋ฅผ ์ฌ์ฉํ๋ ๊ฒ๋ณด๋ค ์ฝ๊ฐ์ ์ฑ๋ฅ ํฅ์์ ๋ณด์ฌ์ค๋๋ค.๊ทธ๋ ๋ค๋ฉด ์ ๋ชจ๋ ๊ฒ์ eBPF๋ฅผ ์ฌ์ฉํ์ง ์์๊น์? ์๋ฌด๋ ๊ทธ๋ ๊ฒ ํ์ง ์์ต๋๋ค. ์๋ํ๋ฉด ์ค์ ๋ก๋ ์๋ฌด๋ ๊ทธ๋ ๊ฒ ํ ์ ์๊ธฐ ๋๋ฌธ์
๋๋ค.eBPF๋ Linux ์ปค๋ ๋ด๋ถ์์ ์คํ๋๋ ๊ฐ์ ๋จธ์ ์
๋๋ค. ์ด๋ ์ปค๋ ๋์์ ๋ถ์์ ํ๊ฒ ๋ง๋ค์ง ์๋๋ก ์ ํ๋ ๊ณ์ฐ ๋ฒ์ ๋ด์์ ์๋ฃ๋๋ ๊ฒ์ด ๋ณด์ฅ๋๋ ํจ์๋ฅผ ์ํด ์ค๊ณ๋์์ต๋๋ค. ์๋ฅผ ๋ค์ด ๋จ์ํ L3 ํธ๋ํฝ ๋ผ์ฐํ
์ด๋ ์ ํ๋ฆฌ์ผ์ด์
๊ด์ฐฐ ๊ธฐ๋ฅ ๋ฑ์ด ์์ต๋๋ค. Envoy์์ ๋ฐ๊ฒฌ๋๋ ๊ฒ๊ณผ ๊ฐ์ ์ฅ๊ธฐ ์คํ ๋๋ ๋ณต์กํ ๊ธฐ๋ฅ์ ์ํด ์ค๊ณ๋์ง ์์์ต๋๋ค. ๊ทธ๋์ ์ด์ ์ฒด์ ์๋ ์ฌ์ฉ์ ๊ณต๊ฐ์ด ์๋ ๊ฒ์
๋๋ค! eBPF ์ ์ง ๊ด๋ฆฌ์๋ค์ Envoy๋งํผ ๋ณต์กํ ํ๋ก๊ทธ๋จ์ ์คํํ๋๋ก ํ์ฅ๋ ์ ์๋ค๊ณ ์ด๋ก ํํ์ง๋ง, ์ด๋ ๊ณผํ ํ๋ก์ ํธ์ผ ๋ฟ ์ค์ ์ธ๊ณ์์ ์ค์ฉ์ฑ์ ๊ฐ๊ธฐ๋ ์ด๋ ค์ธ ๊ฒ์
๋๋ค."eBPF๋ฅผ ์ฌ์ฉํ๋ค"๊ณ ์ฃผ์ฅํ๋ ๋ค๋ฅธ ๋ฉ์๋ค์ ์ค์ ๋ก๋ ๋
ธ๋๋น Envoy ํ๋ก์๋ ๋ค๋ฅธ ์ฌ์ฉ์ ๊ณต๊ฐ ๋๊ตฌ๋ฅผ ๋๋ถ๋ถ์ ๊ธฐ๋ฅ์ ์ฌ์ฉํฉ๋๋ค.
Envoy๋ ๋ณธ์ง์ ์ผ๋ก ๋ฉํฐ ํ ๋ํธ๊ฐ ์๋๋๋ค. ๊ฒฐ๊ณผ์ ์ผ๋ก, ์ฐ๋ฆฌ๋ ์ ์ฝ์ด ์๋ ์ฌ๋ฌ ํ ๋ํธ์ L7 ํธ๋ํฝ์ ๋ํ ๋ณต์กํ ์ฒ๋ฆฌ ๊ท์น์ ๊ณต์ ์ธ์คํด์ค์ ํผํฉํ๋ ๊ฒ์ ๋ํด ์ฃผ์ํ ๋ณด์ ๋ฐ ์์ ์ฑ ๋ฌธ์ ๋ฅผ ๊ฐ๊ณ ์์ต๋๋ค. Kubernetes๋ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ชจ๋ ๋ค์์คํ์ด์ค์ ํฌ๋๋ฅผ ๋ชจ๋ ๋ ธ๋์ ์ค์ผ์ค๋งํ ์ ์์ผ๋ฏ๋ก ๋ ธ๋๋ ์ ์ ํ ํ ๋์ ๊ฒฝ๊ณ๊ฐ ์๋๋๋ค. ์์ฐ ์ฑ ์ ๋ฐ ๋น์ฉ ํ ๋น๋ ์ฃผ์ ์ด์์ธ๋ฐ, L7 ์ฒ๋ฆฌ ๋น์ฉ์ด L4๋ณด๋ค ํจ์ฌ ๋ ๋ง์ด ๋ค๊ธฐ ๋๋ฌธ์ ๋๋ค.์ฐ๋น์ธํธ ๋ชจ๋์์๋ ztunnel ํ๋ก์๋ฅผ Linux ์ปค๋๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก ์๊ฒฉํ๊ฒ L4 ์ฒ๋ฆฌ๋ก ์ ํํฉ๋๋ค. ์ด๋ ์ทจ์ฝ์ ๋ ธ์ถ ์์ญ์ ํฌ๊ฒ ์ค์ด๊ณ ๊ณต์ ๊ตฌ์ฑ ์์๋ฅผ ์์ ํ๊ฒ ์ด์ํ ์ ์๊ฒ ํด์ค๋๋ค. ๊ทธ๋ฐ ๋ค์ ํธ๋ํฝ์ ๋ค์์คํ์ด์ค๋ณ๋ก ์๋ํ๋ Envoy ํ๋ก์๋ก ์ ๋ฌ๋์ด ์ด๋ค Envoy ํ๋ก์๋ ๋ฉํฐ ํ ๋ํธ๊ฐ ๋์ง ์๋๋ก ํฉ๋๋ค.
์ค๋๋ ์ผ๋ถ CNI ํ๋ฌ๊ทธ์ธ์ ์์ฒด CNI ๊ตฌํ ์์ ์๋น์ค ๋ฉ์์ ์ ์ฌํ ๊ธฐ๋ฅ์ ์ถ๊ฐ ๊ธฐ๋ฅ์ผ๋ก ์ ๊ณตํ๊ธฐ ์์ํ์ต๋๋ค. ์๋ฅผ ๋ค์ด, ๋ ธ๋๋ ํฌ๋ ๊ฐ ํธ๋ํฝ์ ๋ํ ์์ฒด ์ํธํ ์ฒด๊ณ, ์ํฌ๋ก๋ ID๋ฅผ ๊ตฌํํ๊ฑฐ๋ ํธ๋ํฝ์ L7 ํ๋ก์๋ก ๋ฆฌ๋๋ ์ ํ์ฌ ์ผ์ ์์ค์ ์ ์ก ๊ณ์ธต ์ ์ฑ ์ ์ง์ํ ์ ์์ต๋๋ค. ์ด๋ฌํ ์๋น์ค ๋ฉ์ ์ถ๊ฐ ๊ธฐ๋ฅ์ ๋นํ์ค์ด๋ฏ๋ก ํด๋น ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ CNI ์์์๋ง ์๋ํ ์ ์์ต๋๋ค. ๋ํ ๋ค์ํ ๊ธฐ๋ฅ ์ธํธ๋ฅผ ์ ๊ณตํฉ๋๋ค. ์๋ฅผ ๋ค์ด Wireguard ์์ ๊ตฌ์ถ๋ ์๋ฃจ์ ์ FIPS ์ค์๋ก ๋ง๋ค ์ ์์ต๋๋ค.์ด๋ฌํ ์ด์ ๋ก Istio๋ ์ ๋ก ํธ๋ฌ์คํธ ํฐ๋(ztunnel) ๊ตฌ์ฑ ์์๋ฅผ ๊ตฌํํ์ต๋๋ค. ์ด๋ ์ ์ฆ๋ ์ ๊ณ ํ์ค ์ํธํ ํ๋กํ ์ฝ์ ์ฌ์ฉํ์ฌ ์ด๋ฌํ ๊ธฐ๋ฅ์ ํฌ๋ช ํ๊ณ ํจ์จ์ ์ผ๋ก ์ ๊ณตํฉ๋๋ค. ztunnel์ ๋ํด ์์ธํ ์์๋ณด์ธ์.Istio๋ ๋ชจ๋ ํ๊ฒฝ, ๋ชจ๋ CNI์์, ๋๋ ์ฌ์ง์ด ์๋ก ๋ค๋ฅธ CNI๋ฅผ ๊ฐ์ง ํด๋ฌ์คํฐ์์๋ ๊ฐ๋ ฅํ L7 ์ ์ฑ ์ธํธ, ํ๋ซํผ์ ๊ตฌ์ ๋ฐ์ง ์๋ ์ํฌ๋ก๋ ID, ์ ๊ณ์์ ๊ฒ์ฆ๋ mTLS ํ๋กํ ์ฝ์ ์ฌ์ฉํ์ฌ ์ผ๊ด๋๊ณ ๋งค์ฐ ์์ ํ๋ฉฐ ํจ์จ์ ์ด๊ณ ํ์ค ์ค์ํ๋ ์๋น์ค ๋ฉ์ ๊ตฌํ์ ์ ๊ณตํ๋ ์๋น์ค ๋ฉ์๋ก ์ค๊ณ๋์์ต๋๋ค