Red Hat OpenShift์ Kubernetes์ ๊ฒฐํฉํ์ ๋ Istio Service Mesh์ ๋ค์ํ ๊ธฐ๋ฅ ์ค ์ผ๋ถ๋ฅผ ์๊ฐํ๋ ์ผ๋ จ์ ๊ฒ์๋ฌผ์ ์์ํ๊ณ ์์ต๋๋ค.

1๋ถ, ์ค๋์:
- Kubernetes ์ฌ์ด๋์นด ์ปจํ ์ด๋์ ๊ฐ๋ ์ ์ค๋ช ํ๊ณ ์ด ๊ฒ์๋ฌผ ์๋ฆฌ์ฆ์ ์ฃผ์ ๋ฅผ ์ ํด ๋ณด๊ฒ ์ต๋๋ค. "์ฝ๋์์ ์๋ฌด๊ฒ๋ ๋ณ๊ฒฝํ ํ์๊ฐ ์์ต๋๋ค".
- Istio์ ๊ธฐ๋ณธ์ธ ๋ผ์ฐํ ๊ท์น์ ์๊ฐํด๋๋ฆฌ๊ฒ ์ต๋๋ค. ๋ค๋ฅธ ๋ชจ๋ Istio ๊ธฐ๋ฅ์ ์ด๋ฌํ ๊ท์น์ ๊ธฐ๋ฐ์ผ๋ก ๊ตฌ์ถ๋์์ผ๋ฉฐ, ๊ท์น์ ํตํด ์๋น์ค ์ฝ๋ ์ธ๋ถ์ YAML ํ์ผ์ ์ฌ์ฉํ์ฌ ๋ง์ดํฌ๋ก์๋น์ค๋ก์ ํธ๋ํฝ์ ๋ผ์ฐํ ํ ์ ์์ต๋๋ค. ๋ํ Canary Deployment ๋ฐฐํฌ ๋ฐฉ์๋ ๊ณ ๋ คํฉ๋๋ค. ์ํด ๋ณด๋์ค - Istio์์ ๋ฐฐ์ฐ๋ 10๊ฐ์ง ๋ํํ ๋ ์จ
๊ณง ๊ณต๊ฐ๋ ๋ ๋ฒ์งธ ๋ถ๋ถ์์๋ ๋ค์๊ณผ ๊ฐ์ ๋ด์ฉ์ ์๋ ค๋๋ฆฝ๋๋ค.
- Istio๊ฐ Circuit Breaker์ ํจ๊ป Pool Ejection์ ๊ตฌํํ๋ ๋ฐฉ๋ฒ๊ณผ Istio๋ฅผ ์ฌ์ฉํ์ฌ ๋ถํ ๋ถ์ฐ ํ๋ก์์ ์๋ํ์ง ์๊ฑฐ๋ ์ฑ๋ฅ์ด ์ ํ๋ Pod๋ฅผ ์ ๊ฑฐํ๋ ๋ฐฉ๋ฒ์ ๋ณด์ฌ์ค๋๋ค.
- ๋ํ ์ฒซ ๋ฒ์งธ ๊ฒ์๋ฌผ์์ ๋ค๋ฃฌ Circuit Breaker ์ฃผ์ ๋ฅผ ์ดํด๋ณด๊ณ Istio๋ฅผ ์ฌ๊ธฐ์ ์ด๋ป๊ฒ ์ฌ์ฉํ ์ ์๋์ง ์์๋ณด๊ฒ ์ต๋๋ค. YAML ๊ตฌ์ฑ ํ์ผ๊ณผ ํฐ๋ฏธ๋ ๋ช ๋ น์ ์ฌ์ฉํ์ฌ ์๋น์ค ์ฝ๋๋ฅผ ๋ณ๊ฒฝํ์ง ์๊ณ ๋ ํธ๋ํฝ์ ๋ผ์ฐํ ํ๊ณ ๋คํธ์ํฌ ์ค๋ฅ๋ฅผ ์ฒ๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ๋ณด์ฌ๋๋ฆฌ๊ฒ ์ต๋๋ค.
์ธ ๋ฒ์งธ ๋ถ๋ถ:
- Istio์ ๋ด์ฅ๋์ด ์๊ฑฐ๋ ์ฝ๊ฒ ์ถ๊ฐ๋๋ ์ถ์ ๋ฐ ๋ชจ๋ํฐ๋ง ๊ธฐ๋ฅ์ ์ดํด๋ณด๊ฒ ์ต๋๋ค. Prometheus, Jaeger, Grafana์ ๊ฐ์ ๋๊ตฌ๋ฅผ OpenShift ํ์ฅ๊ณผ ํจ๊ป ์ฌ์ฉํ์ฌ ๋ง์ดํฌ๋ก์๋น์ค ์ํคํ ์ฒ๋ฅผ ์์ฝ๊ฒ ๊ด๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ๋ณด์ฌ๋๋ฆฌ๊ฒ ์ต๋๋ค.
- ์ฐ๋ฆฌ๋ ์ค๋ฅ๋ฅผ ๋ชจ๋ํฐ๋งํ๊ณ ์ฒ๋ฆฌํ๋ ๊ฒ์์ ๋ฒ์ด๋ ์๋์ ์ผ๋ก ์์คํ ์ ์ค๋ฅ๋ฅผ ๋์ ํ๋ ๋จ๊ณ๋ก ๋์ด๊ฐ๋๋ค. ๋ค์ ๋งํด, ์์ค ์ฝ๋๋ฅผ ๋ณ๊ฒฝํ์ง ์๊ณ ๋ ์ค๋ฅ ์ฃผ์ ์ ์ํํ๋ ๋ฐฉ๋ฒ์ ๋ฐฐ์ฐ๊ฒ ๋๋๋ฐ, ์ด๋ ํ ์คํธ ๊ด์ ์์ ๋งค์ฐ ์ค์ํฉ๋๋ค. ์ด๋ฅผ ์ํด ์ฝ๋ ์์ฒด๋ฅผ ๋ณ๊ฒฝํ๋ฉด ์ถ๊ฐ ์ค๋ฅ๊ฐ ๋ฐ์ํ ์ํ์ด ์๊ธฐ ๋๋ฌธ์ ๋๋ค.
๋ง์ง๋ง์ผ๋ก Istio Service Mesh์ ๋ํ ๋ง์ง๋ง ๊ฒ์๋ฌผ์ ๋๋ค.
- ๋คํฌ์ฌ์ด๋๋ก ๊ฐ๋ณด์. ๋ ์ ํํ ๋งํ๋ฉด, ์ฝ๋๊ฐ ํ๋ก๋์ ๋ฐ์ดํฐ์ ์ง์ ๋ฐฐํฌ๋๊ณ ํ ์คํธ๋์ง๋ง ์์คํ ์๋์๋ ์ด๋ค ์์ผ๋ก๋ ์ํฅ์ ๋ฏธ์น์ง ์๋ Dark Launch ๋ฐฉ์์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ๋ฐฐ์ฐ๊ฒ ๋ฉ๋๋ค. ์ฌ๊ธฐ์ Istio๊ฐ ํธ๋ํฝ์ ๋ถ๋ฆฌํ๋ ๊ธฐ๋ฅ์ด ๋งค์ฐ ์ ์ฉํ๊ฒ ํ์ฉ๋ฉ๋๋ค. ๋ผ์ด๋ธ ์์คํ ์ ์ด๋ค ์ํฅ๋ ๋ฏธ์น์ง ์๊ณ ๋ผ์ด๋ธ ํ๋ก๋์ ๋ฐ์ดํฐ์์ ํ ์คํธํ ์ ์๋ ๊ธฐ๋ฅ์ ๊ฐ์ฅ ๋งค๋ ฅ์ ์ธ ํ ์คํธ ๋ฐฉ๋ฒ์ ๋๋ค.
- Dark Launch๋ฅผ ๊ธฐ๋ฐ์ผ๋ก Canary ๋ฐฐํฌ ๋ชจ๋ธ์ ์ฌ์ฉํ์ฌ ์ํ์ ์ค์ด๊ณ ์ ์ฝ๋์ ๋ฐฐํฌ๋ฅผ ๊ฐ์ํํ๋ ๋ฐฉ๋ฒ์ ๋ณด์ฌ๋๋ฆฌ๊ฒ ์ต๋๋ค. Canary ๋ฐฐํฌ ์์ฒด๋ ์๋ก์ด ๊ฒ์ด ์๋์ง๋ง Istio๋ฅผ ์ฌ์ฉํ๋ฉด ๊ฐ๋จํ YAML ํ์ผ๋ง ์ฌ์ฉํ์ฌ ์ด ํจํด์ ๊ตฌํํ ์ ์์ต๋๋ค.
- ๋ง์ง๋ง์ผ๋ก Istio Egress๋ฅผ ์ฌ์ฉํ์ฌ ํด๋ฌ์คํฐ ์ธ๋ถ์ ์ฌ๋๋ค์๊ฒ ์๋น์ค๋ฅผ ๋ ธ์ถํ๋ ๋ฐฉ๋ฒ์ ๋ณด์ฌ๋๋ฆฌ๊ฒ ์ต๋๋ค. ์ด๋ฅผ ํตํด ์ธํฐ๋ท ์์ ์ Istio์ ํ์ ํ์ฉํ ์ ์์ต๋๋ค.
๊ทธ๋ผ, ์์ํด๋ณผ๊น์...
Istio ๋ชจ๋ํฐ๋ง ๋ฐ ๊ด๋ฆฌ ํดํท โ ์๋น์ค ๋ฉ์์์ ๋ง์ดํฌ๋ก์๋น์ค๋ฅผ ์กฐ์ ํ๋ ๋ฐ ํ์ํ ๋ชจ๋ ๊ฒ .
Istio Service Mesh๋ ๋ฌด์์ ๋๊น?
์๋น์ค ๋ฉ์๋ ํธ๋ํฝ ๋ชจ๋ํฐ๋ง, ์ก์ธ์ค ์ ์ด, ๊ฒ์, ๋ณด์, ์ฅ์ ํ์ฉ ๋ฐ ์๋น์ค ๊ทธ๋ฃน์ ๋ํ ๊ธฐํ ์ ์ฉํ ๊ธฐ๋ฅ์ ๊ตฌํํฉ๋๋ค. Istio๋ฅผ ์ฌ์ฉํ๋ฉด ์๋น์ค ์์ฒด์ ์ฝ๋๋ฅผ ๋ณ๊ฒฝํ์ง ์๊ณ ๋ ์ด ๋ชจ๋ ์์ ์ ์ํํ ์ ์์ต๋๋ค. ๋ง๋ฒ์ ๋น๊ฒฐ์ ๋ฌด์์ผ๊น? Istio๋ ์ฌ์ด๋์นด ์ปจํ ์ด๋(์ฌ์ด๋์นด๋ ์คํ ๋ฐ์ด ์ฌ์ด๋์นด์ ๋๋ค) ํํ๋ก ๊ฐ ์๋น์ค์ ํ๋ก์๋ฅผ ์ฐ๊ฒฐํฉ๋๋ค. ์ดํ ์ด ์๋น์ค๋ก์ ๋ชจ๋ ํธ๋ํฝ์ ํ๋ก์๋ฅผ ํต๊ณผํ๊ฒ ๋๋ฉฐ, ํ๋ก์๋ ์ง์ ๋ ์ ์ฑ ์ ๋ฐ๋ผ ํธ๋ํฝ์ด ์๋น์ค์ ๋๋ฌํด์ผ ํ๋์ง ์ฌ๋ถ, ๋ฐฉ๋ฒ, ์๊ธฐ๋ฅผ ๊ฒฐ์ ํฉ๋๋ค. Istio๋ ๋ํ ์นด๋๋ฆฌ์ ๋ฐฐํฌ, ํ๋ก ์ฐจ๋จ๊ธฐ, ์ค๋ฅ ์ฃผ์ ๋ฑ๊ณผ ๊ฐ์ ๊ณ ๊ธ DevOps ๊ธฐ์ ์ ์ง์ํฉ๋๋ค.
Istio๊ฐ ์ปจํ ์ด๋ ๋ฐ Kubernetes์ ํจ๊ป ์๋ํ๋ ๋ฐฉ์
Istio ์๋น์ค ๋ฉ์๋ ๋ชจ๋ํฐ๋ง, ์ถ์ , ํ๋ก ์ฐจ๋จ๊ธฐ, ๋ผ์ฐํ , ๋ถํ ๋ถ์ฐ, ์ค๋ฅ ์ฃผ์ , ์ฌ์๋, ์๊ฐ ์ด๊ณผ, ๋ฏธ๋ฌ๋ง, ์ก์ธ์ค ์ ์ด, ์๋ ์ ํ ๋ฑ ๋ง์ดํฌ๋ก์๋น์ค๋ฅผ ๊ตฌ์ถํ๊ณ ๊ด๋ฆฌํ๋ ๋ฐ ํ์ํ ๋ชจ๋ ๊ฒ์ ์ฌ์ด๋์นด๋ก ๊ตฌํํ ๊ฒ์ ๋๋ค. ์ค๋๋ ์๋ ์ด๋ฌํ ๊ธฐ๋ฅ์ ์ฝ๋์์ ์ง์ ๊ตฌํํ ์ ์๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ๋ง์ด ์์ง๋ง, Istio๋ฅผ ์ฌ์ฉํ๋ฉด ์ฝ๋๋ฅผ ์๋ฌด๊ฒ๋ ๋ณ๊ฒฝํ์ง ์๊ณ ๋ ๋์ผํ ๊ฒฐ๊ณผ๋ฅผ ์ป์ ์ ์์ต๋๋ค.
์ฌ์ด๋์นด ๋ชจ๋ธ์ ๋ฐ๋ฅด๋ฉด Istio๋ ๋ค์๊ณผ ๊ฐ์ด ์๋ํฉ๋๋ค. Linux- ํ ๊ณณ์ ์์นํ ์ปจํ ์ด๋ -pod๋ ์ ์ด๋ ์๋น์ค๋ฅผ ์ ๊ณตํ๊ณ , ์ฃผ์ด์ง ๊ตฌ์ฑ์ ๋ฐ๋ผ ๊ธฐ๋ฅ๊ณผ ์ ๋ณด๋ฅผ ์ฃผ์ ํ๊ณ ์ถ์ถํฉ๋๋ค. ๊ฐ์กฐํ์๋ฉด, ์ด๊ฒ์ ์ฌ๋ฌ๋ถ์ ๊ตฌ์ฑ์ด๋ฉฐ ์ฌ๋ฌ๋ถ์ ์ฝ๋ ์ธ๋ถ์ ์กด์ฌํฉ๋๋ค. ๊ทธ๋ฌ๋ฏ๋ก ์ฝ๋๊ฐ ํจ์ฌ ๊ฐ๋จํ๊ณ ์งง์์ง๋๋ค.
๋ํ ์ค์ํ ์ ์ ๋ง์ดํฌ๋ก์๋น์ค์ ์ด์ ๊ตฌ์ฑ ์์๊ฐ ์ฝ๋ ์์ฒด์ ์ ํ ์ฐ๊ฒฐ๋์ด ์์ง ์๋ค๋ ๊ฒ์ ๋๋ค. ์ฆ, ํด๋น ์ด์์ ์์ ํ๊ฒ IT ์ ๋ฌธ๊ฐ์๊ฒ ๋๊ธธ ์ ์๋ค๋ ๋ป์ ๋๋ค. ๊ทธ๋ ๋ค๋ฉด ๊ฐ๋ฐ์๊ฐ ํ๋ก ์ฐจ๋จ๊ธฐ์ ์ค๋ฅ ์ฃผ์ ์ ๋ํ ์ฑ ์์ ์ ธ์ผ ํ๋ ์ด์ ๋ ๋ฌด์์ผ๊น์? React๋ ๊ฐ๋ฅํ์ง๋ง, ์ฒ๋ฆฌํด์ ์์ฑํ ์๋ ์๋์? ์ด ๋ชจ๋ ๊ฒ์ ์ฝ๋์์ ์ ๊ฑฐํจ์ผ๋ก์จ ํ๋ก๊ทธ๋๋จธ๋ ์ ํ๋ฆฌ์ผ์ด์ ๊ธฐ๋ฅ์ ์จ์ ํ ์ง์คํ ์ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ฝ๋ ์์ฒด๋ ๋ ์งง๊ณ ๊ฐ๋จํด์ง ๊ฒ์ ๋๋ค.
์๋น์ค ๊ทธ๋ฆฌ๋
๋ง์ดํฌ๋ก์๋น์ค์ ๊ด๋ฆฌ ๊ธฐ๋ฅ์ ์ฝ๋ ์ธ๋ถ์์ ๊ตฌํํ๋ Istio๋ ์๋น์ค ๋ฉ์์ ๊ฐ๋ ์ ๋๋ค. ๋ค์ ๋งํด, ๋คํธ์ํฌ ๊ธฐ๋ฅ์ ๋ง์ฌ๋ฅผ ํ์ฑํ๋ ํ๋ ์ด์์ ๋ฐ์ด๋๋ฆฌ์ ์กฐ์ ๋ ๊ทธ๋ฃน์ ๋๋ค.
Istio๊ฐ ๋ง์ดํฌ๋ก์๋น์ค์ ํจ๊ป ์๋ํ๋ ๋ฐฉ์
์ฌ์ด๋์นด ์ปจํ ์ด๋๊ฐ ๋ค์๊ณผ ํจ๊ป ์๋ํ๋ ๋ฐฉ์์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. ะธ ์์์ ์๋๋ก ์ดํด๋ณด๋ฉด: Minishift ์ธ์คํด์ค๋ฅผ ์์ํ๊ณ , Istio๋ฅผ ์ํ ํ๋ก์ ํธ๋ฅผ ๋ง๋ค๊ณ (์ด๋ฅผ "istio-system"์ด๋ผ๊ณ ๋ถ๋ฅด๊ฒ ์ต๋๋ค), Istio์ ๊ด๋ จ๋ ๋ชจ๋ ๊ตฌ์ฑ ์์๋ฅผ ์ค์นํ๊ณ ์คํํฉ๋๋ค. ๊ทธ๋ฐ ๋ค์ ํ๋ก์ ํธ์ ํฌ๋๋ฅผ ๋ง๋ค ๋ ๋ฐฐํฌ์ ๊ตฌ์ฑ ์ ๋ณด๋ฅผ ์ถ๊ฐํ๋ฉด ํฌ๋๊ฐ Istio๋ฅผ ์ฌ์ฉํ๊ธฐ ์์ํฉ๋๋ค. ๋จ์ํ๋ ํํ๋ก ๋ค์ด์ด๊ทธ๋จ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.

์ด์ Istio ์ค์ ์ ๋ณ๊ฒฝํ์ฌ ์ค๋ฅ ์ฃผ์ ์ ํ์ฑํํ๊ฑฐ๋ ์ง์ํ ์ ์์ต๋๋ค. ๋๋ ๋ค๋ฅธ Istio ๊ธฐ๋ฅ์ ๋ชจ๋ ์ ํ๋ฆฌ์ผ์ด์ ์์ฒด์ ์ฝ๋์ ๊ฑด๋๋ฆฌ์ง ์๊ณ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, ๊ฐ์ฅ ํฐ ๊ณ ๊ฐ์ฌ(Foo Corporation)์ ์ฌ์ฉ์๋ก๋ถํฐ ๋ฐ์ํ๋ ๋ชจ๋ ์น ํธ๋ํฝ์ ์ฌ์ดํธ์ ์๋ก์ด ๋ฒ์ ์ผ๋ก ๋ฆฌ๋๋ ์ ํ๊ณ ์ถ๋ค๊ณ ๊ฐ์ ํด ๋ณด๊ฒ ์ต๋๋ค. ์ด๋ ๊ฒ ํ๋ ค๋ฉด ์ฌ์ฉ์ ID์์ @foocorporation.com์ ์ฐพ์ ๊ทธ์ ๋ฐ๋ผ ๋ฆฌ๋๋ ์ ํ๋ Istio ๋ผ์ฐํ ๊ท์น์ ๋ง๋ค๊ธฐ๋ง ํ๋ฉด ๋ฉ๋๋ค. ๋ค๋ฅธ ๋ชจ๋ ์ฌ์ฉ์์๊ฒ๋ ์๋ฌด๊ฒ๋ ๋ณํ์ง ์์ต๋๋ค. ๊ทธ๋์ ์ฌ๋ฌ๋ถ์ ์ฌ์ดํธ์ ์๋ก์ด ๋ฒ์ ์ ์ฐจ๋ถํ๊ฒ ํ ์คํธํด ๋ณด์ค ๊ฒ์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ฌ๊ธฐ์๋ ๊ฐ๋ฐ์๋ฅผ ์ฐธ์ฌ์ํฌ ํ์๊ฐ ์๋ค๋ ์ ์ ์ ์ํ์ธ์.
๊ทธ๋ฆฌ๊ณ ์ฐ๋ฆฌ๋ ์ด์ ๋ํด ๋น์ผ ๋๊ฐ๋ฅผ ์น๋ฌ์ผ ํ ๊น์?
๋ณ๋ง์์์. Istio๋ ๋งค์ฐ ๋น ๋ฅด๋ฉฐ ๋ค์๊ณผ ๊ฐ์ด ์์ฑ๋์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ค๋ฒํค๋๋ ๊ฑฐ์ ๋ฐ์ํ์ง ์์ต๋๋ค. ๋ํ, ์จ๋ผ์ธ ์์ฐ์ฑ์ ์์ค ๊ฐ๋ฅ์ฑ์ ๊ฐ๋ฐ์ ์์ฐ์ฑ์ ์ฆ๊ฐ๋ก ์์๋ฉ๋๋ค. ์ ์ด๋ ์ด๋ก ์์ผ๋ก๋ ๊ฐ๋ฐ์์ ์๊ฐ์ ์์คํ๋ค๋ ๊ฒ์ ๊ธฐ์ตํ์ธ์. ์ํํธ์จ์ด ๋น์ฉ ์ธก๋ฉด์์ Istio๋ ์คํ ์์ค ์ํํธ์จ์ด์ด๋ฏ๋ก ๋ฌด๋ฃ๋ก ๋ค์ด๋ก๋ํ์ฌ ์ฌ์ฉํ ์ ์์ต๋๋ค.
์ง์ ๋ง์คํฐํด๋ณด์ธ์
Red Hat Developer Experience Team์ ์ฌ์ธต์ ์ด๊ณ ์ค์ฉ์ ์ธ Istio์์ ๊ฐ๋ฐํ์ต๋๋ค(์์ด). ๋ค์์์ ์คํ๋ฉ๋๋ค. Linux๋งฅOS ๋ฐ Windowsํด๋น ์ฝ๋๋ Java ๋ฒ์ ๊ณผ Node.js ๋ฒ์ ์ผ๋ก ์ ๊ณต๋ฉ๋๋ค.
Istio์ ๋ํ 10๊ฐ์ง ๋ํํ ๋ ์จ
๋ธ๋ก 1 - ์ด๋ณด์์ฉ
์ด์คํฐ์ค ์๊ฐ
30 ๋ถ
Service Mesh์ ๋ํด ์์๋ณด๊ณ , OpenShift Kubernetes ํด๋ฌ์คํฐ์ Istio๋ฅผ ์ค์นํ๋ ๋ฐฉ๋ฒ์ ์์๋ด
๋๋ค.
Istio์์ ๋ง์ดํฌ๋ก์๋น์ค ๋ฐฐํฌ
30 ๋ถ
Spring Boot์ Vert.x๋ฅผ ์ฌ์ฉํ์ฌ Istio๋ฅผ ์ฌ์ฉํ์ฌ ์ธ ๊ฐ์ ๋ง์ดํฌ๋ก์๋น์ค๋ฅผ ๋ฐฐํฌํฉ๋๋ค.
๋ธ๋ก 2 โ ์ค๊ธ ์์ค
Istio์์์ ๋ชจ๋ํฐ๋ง ๋ฐ ์ถ์
60 ๋ถ
Prometheus์ Grafana๋ฅผ ํตํด Istio์ ๊ธฐ๋ณธ ๋ชจ๋ํฐ๋ง, ์ฌ์ฉ์ ์ ์ ๋ฉํธ๋ฆญ ๋ฐ OpenTracing์ ์ดํด๋ณด์ธ์.
Istio์์์ ๊ฐ๋จํ ๋ผ์ฐํ
60 ๋ถ
๊ฐ๋จํ ๊ท์น์ ์ฌ์ฉํ์ฌ Istio์์ ๋ผ์ฐํ
์ ๊ด๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ์์๋ณด์ธ์.
๊ณ ๊ธ ๋ผ์ฐํ
๊ท์น
60 ๋ถ
Istio์ ์ค๋งํธ ๋ผ์ฐํ
, ์ก์ธ์ค ์ ์ด, ๋ถํ ๋ถ์ฐ ๋ฐ ์๋ ์ ํ์ ๋ํ ์๊ฐ์
๋๋ค.
๋ธ๋ก 3 - ์๋ จ๋ ์ฌ์ฉ์
Istio์์์ ์ค๋ฅ ์ฃผ์
60 ๋ถ
๋ถ์ฐ ์ ํ๋ฆฌ์ผ์ด์
์์์ ์ฅ์ ์ฒ๋ฆฌ ์๋๋ฆฌ์ค๋ฅผ ์ฐ๊ตฌํ๊ณ , HTTP ์ค๋ฅ์ ๋คํธ์ํฌ ์ง์ฐ์ ๋ฐ์์ํค๋ ๋ฐฉ๋ฒ์ ์์๋ณด๋ฉฐ, ํผ๋ ์์ง๋์ด๋ง์ ์ ์ฉํ์ฌ ํ๊ฒฝ์ ๋ณต์ํ๋ ๋ฐฉ๋ฒ์ ์์๋ด
๋๋ค.
Istio์ ํ๋ก ์ฐจ๋จ๊ธฐ
30 ๋ถ
์น์ฌ์ดํธ ์คํธ๋ ์ค ํ
์คํธ๋ฅผ ์ํด Siege๋ฅผ ์ค์นํ๊ณ ์ฌ์๋, ํ๋ก ์ฐจ๋จ๊ธฐ, ํ ์ ๊ฑฐ๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐฑ์๋ ๋ณต์๋ ฅ์ ๋ณด์ฅํ๋ ๋ฐฉ๋ฒ์ ์์๋ด
๋๋ค.
ํ์ถ๊ณผ ์ด์คํฐ์ค
10 ๋ถ
Egress ๊ฒฝ๋ก๋ฅผ ์ฌ์ฉํ์ฌ ๋ด๋ถ ์๋น์ค์ ์ธ๋ถ API ๋ฐ ์๋น์ค ๊ฐ ์ํธ์์ฉ์ ๋ํ ๊ท์น์ ๋ง๋ญ๋๋ค.
์ด์คํฐ์ค์ ํค์๋ฆฌ
15 ๋ถ
Kiali๋ฅผ ์ฌ์ฉํ์ฌ ์๋น์ค ๋ฉ์์ ์ ๋ฐ์ ์ธ ์ํฉ์ ํ์
ํ๊ณ ์์ฒญ ๋ฐ ๋ฐ์ดํฐ ํ๋ฆ์ ์ดํด๋ณด๋ ๋ฐฉ๋ฒ์ ์์๋ณด์ธ์.
Istio์ ์ํธ TLS
15 ๋ถ
Istio Gateway์ VirtualService๋ฅผ ์์ฑํ ๋ค์, ์ํธ TLS(mTLS)์ ์ค์ ์ ์์ธํ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
๋ธ๋ก 3.1 - ์ฌ์ธต ๋ถ์: ๋ง์ดํฌ๋ก์๋น์ค๋ฅผ ์ํ Istio ์๋น์ค ๋ฉ์

์ด ์ฑ
์ ๋ฌด์์ ๊ดํ ์ฑ
์ธ๊ฐ์?
- ์๋น์ค ๋ฉ์๋ ๋ฌด์์ธ๊ฐ์?
- Istio์ ๋ง์ดํฌ๋ก์๋น์ค ์ํคํ ์ฒ์์์ ์ญํ
- Istio๋ฅผ ์ฌ์ฉํ์ฌ ๋ค์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํฉ๋๋ค.
- ๊ฒฐํจ ํ์ฉ;
- ๋ผ์ฐํ ;
- ํผ๋ ํ ์คํธ;
- ๋ณด์;
- ์ถ์ , ๋ฉํธ๋ฆญ ๋ฐ Grafana๋ฅผ ์ฌ์ฉํ ์๊ฒฉ ์ธก์ ์์ง.
์๋น์ค ๋ฉ์์ Istio ์๋ฆฌ์ฆ
์ง์ ํด๋ณด๊ธฐ
์ด ์๋ฆฌ์ฆ ๊ฒ์๋ฌผ์ Istio์ ์ธ๊ณ๋ฅผ ์ฌ์ธต์ ์ผ๋ก ๋ค๋ฃจ๋ ค๋ ๋ชฉ์ ์ด ์๋๋๋ค. ๋จ์ํ ๊ฐ๋ ์ ์๊ฐํ๊ณ ์ฌ๋ฌ๋ถ์ด ์ง์ Istio๋ฅผ ์ฌ์ฉํด ๋ณด๊ณ ์ถ๋๋ก ์๊ฐ์ ์ฃผ๋ ๊ฒ์ด ๋ชฉํ์ ๋๋ค. Istio๋ ์์ ํ ๋ฌด๋ฃ์ด๋ฉฐ, Red Hat์ OpenShift, Kubernetes์ ํจ๊ป ์์ํ๋ ๋ฐ ํ์ํ ๋ชจ๋ ๋๊ตฌ๋ฅผ ์ ๊ณตํฉ๋๋ค. Linux- ์ปจํ ์ด๋ ๋ฐ Istio, ๊ตฌ์ฒด์ ์ผ๋ก๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. , ๋ฐ ๊ธฐํ ๋ฆฌ์์ค . ์ง์ฒดํ์ง ๋ง๊ณ ์ค๋ ์์ํ์ธ์!
Istio ๋ผ์ฐํ ๊ท์น: ์๋น์ค ์์ฒญ์ ํ์ํ ๊ณณ์ผ๋ก ์ ๋ฌ
ะธ ํธ์๊ฐ ์ด๋ฃจ์ด์ง๋๋ก ํ๋ ๋ฐ ๋งค์ฐ ๋ฅ์ํฉ๋๋ค. ํ์ํ ํฌ๋๋ก ๋ผ์ฐํ ๋จ. ์ฟ ๋ฒ๋คํฐ์ค์ ๋ชฉ์ ์ค ํ๋๋ ๋ผ์ฐํ ๊ณผ ๋ถํ ๋ถ์ฐ์ ๋๋ค. ํ์ง๋ง ๋์ฑ ๋ฏธ๋ฌํ๊ณ ์ ๊ตํ ๋ผ์ฐํ ์ด ํ์ํ๋ค๋ฉด ์ด๋จ๊น์? ์๋ฅผ ๋ค์ด, ๋ง์ดํฌ๋ก์๋น์ค์ ๋ ๊ฐ์ง ๋ฒ์ ์ ๋์์ ์ฌ์ฉํ๋ ๊ฒ์ ๋๋ค. Istio Route Rules๊ฐ ์ด๋ป๊ฒ ๋์์ด ๋ ์ ์๋์?
๋ผ์ฐํ
๊ท์น์ ์ค์ ๋ก ๊ฒฝ๋ก ์ ํ์ ๊ฒฐ์ ํ๋ ๊ท์น์
๋๋ค. ์์คํ
์ ๋ณต์ก๋์ ๊ด๊ณ์์ด ์ด๋ฌํ ๊ท์น์ ์ผ๋ฐ์ ์ธ ์๋ ์์น์ ๊ฐ๋จํฉ๋๋ค. ์์ฒญ์ ํน์ ๋งค๊ฐ๋ณ์์ HTTP ํค๋ ๊ฐ์ ๋ฐ๋ผ ๋ผ์ฐํ
๋ฉ๋๋ค.
๋ช ๊ฐ์ง ์๋ฅผ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
์ฟ ๋ฒ๋คํฐ์ค ๊ธฐ๋ณธ๊ฐ: ์ฌ์ํ '50/50'
์ด ์์ ์์๋ OpenShift์์ ๋ง์ดํฌ๋ก์๋น์ค์ ๋ ๊ฐ์ง ๋ฒ์ ์ ๋์์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ๋ณด์ฌ๋๋ฆฌ๊ฒ ์ต๋๋ค. ์ด๋ฅผ v1๊ณผ v2๋ผ๊ณ ๋ถ๋ฅด๊ฒ ์ต๋๋ค. ๊ฐ ๋ฒ์ ์ ์์ฒด Kubernetes Pod์์ ์คํ๋๋ฉฐ ๊ธฐ๋ณธ์ ์ผ๋ก ๊ท ๋ฑํ๊ฒ ๊ท ํ ์กํ ๋ผ์ด๋ ๋ก๋น ๋ผ์ฐํ ์ ์ฌ์ฉํฉ๋๋ค. ๊ฐ ํฌ๋๋ ๋ง์ดํฌ๋ก์๋น์ค ์ธ์คํด์ค ๋๋ ๋ณต์ ๋ณธ์ ์์ ๋ฐ๋ผ ์์ฒญ์ ๊ณต์ ๋ฐ์ต๋๋ค. Istio๋ฅผ ์ฌ์ฉํ๋ฉด ์ด ์์ก์ ์๋์ผ๋ก ๋ณ๊ฒฝํ ์ ์์ต๋๋ค.
OpenShift์ recommendation-v1๊ณผ recommendation-v2๋ผ๋ ๋ ๊ฐ์ง ๋ฒ์ ์ ์ถ์ฒ ์๋น์ค๋ฅผ ๋ฐฐํฌํ๋ค๊ณ ๊ฐ์ ํด ๋ณด๊ฒ ์ต๋๋ค.
๊ทธ๋ฆผ 1์์ ๊ฐ ์๋น์ค๊ฐ ๋จ์ผ ์ธ์คํด์ค๋ก ํํ๋ ๋ ์์ฒญ์ด ์๋น์ค ๊ฐ์ ๊ท ๋ฑํ๊ฒ ๋ฒ๊ฐ์ ๋ํ๋๋ ๊ฒ์ ๋ณผ ์ ์์ต๋๋ค. 1-2-1-2-โฆ Kubernetes ๋ผ์ฐํ
์ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ค์๊ณผ ๊ฐ์ด ์๋ํฉ๋๋ค.

๋ฒ์ ๊ฐ ๊ฐ์ค ๋ถํฌ
๊ทธ๋ฆผ 2๋ v2 ์๋น์ค์ ๋ณต์ ๋ณธ ์๋ฅผ 2๊ฐ์์ 2๊ฐ๋ก ๋๋ฆฌ๋ฉด ์ด๋ค ์ผ์ด ์ผ์ด๋๋์ง ๋ณด์ฌ์ค๋๋ค(oc scale --replicas=1 deployment/recommendation-v2 ๋ช ๋ น์ ์ฌ์ฉํ์ฌ ์ํ). ๋ณด์๋ค์ํผ, v1๊ณผ v2 ์ฌ์ด์ ์์ฒญ์ ์ด์ 2:1 ๋น์จ๋ก ๋๋ฉ๋๋ค: 2-2-XNUMX-XNUMX-XNUMX-XNUMX-โฆ:

Istio๋ฅผ ์ฌ์ฉํ์ฌ ๋ฒ์ ๋ฌด์
Istio๋ฅผ ์ฌ์ฉํ๋ฉด ์์ฒญ ๋ถํฌ๋ฅผ ์ํ๋ ๋๋ก ์ฝ๊ฒ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, ๋ค์ Istio yaml ํ์ผ์ ์ฌ์ฉํ์ฌ ๋ชจ๋ ํธ๋ํฝ์ recommendation-v1๋ก๋ง ๋ณด๋ ๋๋ค.

์ฃผ์ํด์ผ ํ ์ ์ ํฌ๋๊ฐ ๋ผ๋ฒจ์ ๋ฐ๋ผ ์ ํ๋๋ค๋ ๊ฒ์ ๋๋ค. ์ฐ๋ฆฌ์ ์์์๋ v1 ๋ ์ด๋ธ์ด ์ฌ์ฉ๋์์ต๋๋ค. "๊ฐ์ค์น: 100" ๋งค๊ฐ๋ณ์๋ ํธ๋ํฝ์ 100%๊ฐ v1 ๋ ์ด๋ธ์ด ์๋ ๋ชจ๋ ์๋น์ค ํฌ๋๋ก ๋ผ์ฐํ ๋จ์ ์๋ฏธํฉ๋๋ค.
๋ฒ์ ๊ฐ ์ง์์ด ๋ฐฐํฌ(Canary ๋ฐฐํฌ)
๋ค์์ผ๋ก, ๊ฐ์ค์น ๋งค๊ฐ๋ณ์๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ ํฌ๋์์ ์คํ๋๋ ๋ง์ดํฌ๋ก์๋น์ค ์ธ์คํด์ค ์๋ฅผ ๋ฌด์ํ๊ณ ๋ ํฌ๋ ๋ชจ๋์ ํธ๋ํฝ์ ์ ๋ฌํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, ์ฌ๊ธฐ์๋ ํธ๋ํฝ์ 90%๋ฅผ v1๋ก, 10%๋ฅผ v2๋ก ๋ณด๋ ๋๋ค.

๋ชจ๋ฐ์ผ ์ฌ์ฉ์๋ฅผ ์ํ ๋ณ๋ ๋ผ์ฐํ
๋ง์ง๋ง์ผ๋ก, ๋ชจ๋ฐ์ผ ์ฌ์ฉ์์ ํธ๋ํฝ์ ์๋น์ค v2๋ก ๋ผ์ฐํ ํ๊ณ , ๊ทธ ์ธ ๋ชจ๋ ์ฌ์ฉ์์ ํธ๋ํฝ์ v1๋ก ๋ผ์ฐํ ํ๋ ๋ฐฉ๋ฒ์ ๋ณด์ฌ๋๋ฆฌ๊ฒ ์ต๋๋ค. ์ด๋ฅผ ์ํด ์ ๊ท ํํ์์ ์ฌ์ฉํ์ฌ ์์ฒญ ํค๋์ ์ฌ์ฉ์ ์์ด์ ํธ ๊ฐ์ ๋ถ์ํฉ๋๋ค.

์ด์ ๋
ํค๋ ๊ตฌ๋ฌธ ๋ถ์์ ์ํ ์ ๊ท ํํ์์ ์ฌ์ฉํ ์๋ Istio ๋ผ์ฐํ ๊ท์น์ ๋ํ ๊ณ ์ ํ ์ฌ์ฉ ์ฌ๋ก๋ฅผ ์ฐพ๋ ๋ฐ ๋์์ด ๋ ๊ฒ์ ๋๋ค. ๊ฒ๋ค๊ฐ ํค๋ ๊ฐ์ด ์ ํ๋ฆฌ์ผ์ด์ ์ ์์ค ์ฝ๋์์ ํ์ฑ๋ ์ ์๊ธฐ ๋๋ฌธ์ ๊ฐ๋ฅ์ฑ์ ๋งค์ฐ ๊ด๋ฒ์ํฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ ๊ธฐ์ตํ์ธ์, Ops์ด์ง Dev๊ฐ ์๋๋๋ค.
์์ ์์์์ ๋ณด์ฌ์ค ๋ชจ๋ ๋ด์ฉ์ ํน๋ณํ ์์ฒญ ํค๋๋ฅผ ํ์ฑํด์ผ ํ๋ ๊ฒฝ์ฐ๋ฅผ ์ ์ธํ๊ณ ๋ ์์ค ์ฝ๋๋ฅผ ์กฐ๊ธ๋ ๋ณ๊ฒฝํ์ง ์๊ณ ์ํ๋์์ต๋๋ค. Istio๋ ํ ์คํธ ๋จ๊ณ์์ ํ์ฉํ ์ ์๋ ๊ฐ๋ฐ์์ ์ด์ ๋จ๊ณ์์ ํฐ ์ด์ ์ ์ป์ ์ ์๋ IT ์์คํ ์ด์ ์ ๋ฌธ๊ฐ ๋ชจ๋์๊ฒ ์ ์ฉํฉ๋๋ค.
๊ทธ๋ฌ๋ ์ด ๊ธ ์๋ฆฌ์ฆ์ ์ฃผ์ ๋ฅผ ๋ฐ๋ณตํด ๋ณด๊ฒ ์ต๋๋ค. ์ฝ๋์์ ์๋ฌด๊ฒ๋ ๋ณ๊ฒฝํ ํ์๊ฐ ์์ต๋๋ค. ์๋ก์ด ์ด๋ฏธ์ง๋ฅผ ๋น๋ํ๊ฑฐ๋ ์๋ก์ด ์ปจํ ์ด๋๋ฅผ ์คํํ ํ์๊ฐ ์์ต๋๋ค. ์ด ๋ชจ๋ ๊ฒ์ ์ฝ๋ ์ธ๋ถ์์ ๊ตฌํ๋ฉ๋๋ค.
์์๋ ฅ์ ์ผ์ธ์
์ ๊ท ํํ์์ ์ฌ์ฉํ์ฌ ํค๋๋ผ์ธ์ ๋ถ์ํ๋ฉด ์ผ๋ง๋ ๋ง์ ๊ฐ๋ฅ์ฑ์ด ์ด๋ฆด ์ ์๋์ง ์์ํด๋ณด์ธ์. ๊ฐ์ฅ ํฐ ๊ณ ๊ฐ์ ํน๋ณํ ๋ฒ์ ์ผ๋ก ๋ฆฌ๋๋ ์ ํ๊ณ ์ถ์ผ์ ๊ฐ์? ? ์์ฃผ ์ฌ์์! Chrome ๋ธ๋ผ์ฐ์ ์ ๋ํ ๋ณ๋ ๋ฒ์ ์ด ํ์ํ์ ๊ฐ์? ๊ด์ฐฎ์์! ๊ฑฐ์ ๋ชจ๋ ํน์ฑ์ ๋ฐ๋ผ ํธ๋ํฝ์ ๋ผ์ฐํ ํ ์ ์์ต๋๋ค.
์ง์ ํด๋ณด๊ธฐ
Istio, Kubernetes, OpenShift์ ๋ํด ์ฝ๋ ๊ฒ๋ ์ค์ํ์ง๋ง, ๋ชจ๋ ๊ฒ์ ์ง์ ์์ผ๋ก ๋ง์ ธ๋ณด๋ ๊ฑด ์ด๋จ๊น์? ํ ์ด ๊ธฐ์ ๋ค์ ์ต๋ํ ๋นจ๋ฆฌ ์ตํ๋ ๋ฐ ๋์์ด ๋ ์์ธํ ๊ฐ์ด๋(์๋ฌธ)๋ฅผ ์ค๋นํ์ต๋๋ค. ์ด ๊ฐ์ด๋๋ 100% ์คํ ์์ค์ด๋ฏ๋ก ๋๊ตฌ๋ ์ด์ฉํ ์ ์์ต๋๋ค. ํด๋น ํ์ผ์ ๋ค์ ํ๊ฒฝ์์ ์คํ๋ฉ๋๋ค. macOS, Linux ะธ Windows์์ค ์ฝ๋๋ Java ๋ฐ Node.js ๋ฒ์ ์ผ๋ก ์ ๊ณต๋ฉ๋๋ค(๋ค๋ฅธ ์ธ์ด ๋ฒ์ ์ ๊ณง ์ ๊ณต๋ ์์ ์ ๋๋ค). ๋ธ๋ผ์ฐ์ ์์ ํด๋น Git ์ ์ฅ์๋ฅผ ์ด์ด๋ณด์ธ์. .
๋ค์ ๊ฒ์๋ฌผ: ๋ฌธ์ ๋ฅผ ์๋ฆ๋ต๊ฒ ํด๊ฒฐํ๋ ๋ฐฉ๋ฒ
์ค๋์ Istio ๋ผ์ฐํ
๊ท์น์ด ๋ฌด์์ ํ ์ ์๋์ง ์ดํด๋ณด์์ต๋๋ค. ์ด์ ์ค๋ฅ ์ฒ๋ฆฌ์ ๊ด๋ จํด์๋ง ๊ฐ์ ๊ฒ์ ์์ํด ๋ณด์ธ์. ๋ค์ ๊ธ์์๋ ๋ฐ๋ก ์ด์ ๋ํด ์ด์ผ๊ธฐํ๊ฒ ์ต๋๋ค.
์ถ์ฒ : habr.com
