Istio Service Mesh์— ๋Œ€ํ•œ ์ผ๋ จ์˜ ๊ฒŒ์‹œ๋ฌผ

์šฐ๋ฆฌ๋Š” Red Hat OpenShift ๋ฐ Kubernetes์™€ ๊ฒฐํ•ฉ๋œ Istio Service Mesh์˜ ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ ์ค‘ ์ผ๋ถ€๋ฅผ ๋ณด์—ฌ์ฃผ๋Š” ์ผ๋ จ์˜ ๊ฒŒ์‹œ๋ฌผ์„ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.

Istio Service Mesh์— ๋Œ€ํ•œ ์ผ๋ จ์˜ ๊ฒŒ์‹œ๋ฌผ

์˜ค๋Š˜ XNUMX๋ถ€:

  • Kubernetes ์‚ฌ์ด๋“œ์นด ์ปจํ…Œ์ด๋„ˆ์˜ ๊ฐœ๋…์„ ์„ค๋ช…ํ•˜๊ณ  ์ด ๊ฒŒ์‹œ๋ฌผ ์‹œ๋ฆฌ์ฆˆ์˜ ์ฃผ์š” ์ฃผ์ œ๋ฅผ ๊ณต์‹ํ™”ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. "์ฝ”๋“œ์—์„œ ์•„๋ฌด๊ฒƒ๋„ ๋ณ€๊ฒฝํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค".
  • Istio์˜ ๊ธฐ๋ณธ์ธ ๋ผ์šฐํŒ… ๊ทœ์น™์„ ์†Œ๊ฐœํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ๋ชจ๋“  Istio ๊ธฐ๋Šฅ์€ ์„œ๋น„์Šค ์ฝ”๋“œ ์™ธ๋ถ€์˜ YAML ํŒŒ์ผ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋กœ ํŠธ๋ž˜ํ”ฝ์„ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ๋Š” ๊ทœ์น™์ด๋ฏ€๋กœ ์ด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ตฌ์ถ•๋˜์—ˆ์Šต๋‹ˆ๋‹ค. Canary ๋ฐฐํฌ ๋ฐฐํฌ ๋ฐฉ์‹๋„ ๊ณ ๋ คํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ƒˆํ•ด ๋ณด๋„ˆ์Šค โ€“ Istio์— ๋Œ€ํ•œ 10๊ฐœ์˜ ๋Œ€ํ™”ํ˜• ๊ฐ•์˜


๊ณง ๊ณต๊ฐœ๋  XNUMX๋ถ€์—์„œ๋Š” ๋‹ค์Œ ๋‚ด์šฉ์„ ์•Œ๋ ค๋“œ๋ฆฝ๋‹ˆ๋‹ค.

  • Istio๊ฐ€ ํšŒ๋กœ ์ฐจ๋‹จ๊ธฐ์™€ ํ•จ๊ป˜ ํ’€ ๋ฐฐ์ถœ์„ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•๊ณผ Istio๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐธ๋Ÿฐ์‹ฑ ํšŒ๋กœ์—์„œ ์ž‘๋™ํ•˜์ง€ ์•Š๊ฑฐ๋‚˜ ์„ฑ๋Šฅ์ด ๋‚ฎ์€ ํฌ๋“œ๋ฅผ ์ œ๊ฑฐํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.
  • ๋˜ํ•œ ์ฒซ ๋ฒˆ์งธ ๊ฒŒ์‹œ๋ฌผ์˜ Circuit Breaker ์ฃผ์ œ๋ฅผ ์‚ดํŽด๋ณด๊ณ  ์—ฌ๊ธฐ์—์„œ Istio๋ฅผ ์–ด๋–ป๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์„œ๋น„์Šค ์ฝ”๋“œ๋ฅผ ์•ฝ๊ฐ„ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š๊ณ ๋„ YAML ๊ตฌ์„ฑ ํŒŒ์ผ๊ณผ ํ„ฐ๋ฏธ๋„ ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ ํŠธ๋ž˜ํ”ฝ์„ ๋ผ์šฐํŒ…ํ•˜๊ณ  ๋„คํŠธ์›Œํฌ ์˜ค๋ฅ˜๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ณด์—ฌ ๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค.

XNUMX๋ถ€:

  • Istio์— ์ด๋ฏธ ๋‚ด์žฅ๋˜์–ด ์žˆ๊ฑฐ๋‚˜ ์‰ฝ๊ฒŒ ์ถ”๊ฐ€๋˜๋Š” ์ถ”์  ๋ฐ ๋ชจ๋‹ˆํ„ฐ๋ง์— ๋Œ€ํ•œ ์ด์•ผ๊ธฐ์ž…๋‹ˆ๋‹ค. Prometheus, Jaeger, Grafana ๋“ฑ์˜ ๋„๊ตฌ๋ฅผ OpenShift ํ™•์žฅ๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜์—ฌ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์•„ํ‚คํ…์ฒ˜๋ฅผ ์†์‰ฝ๊ฒŒ ๊ด€๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ณด์—ฌ๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค.
  • ์šฐ๋ฆฌ๋Š” ์˜ค๋ฅ˜๋ฅผ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๊ณ  ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒƒ์—์„œ ์˜๋„์ ์œผ๋กœ ์˜ค๋ฅ˜๋ฅผ ์‹œ์Šคํ…œ์— ๋„์ž…ํ•˜๋Š” ๊ฒƒ์œผ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š๊ณ  ์˜ค๋ฅ˜ ์ฃผ์ž…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ฐฐ์›๋‹ˆ๋‹ค. ์ด๋Š” ํ…Œ์ŠคํŠธ ๊ด€์ ์—์„œ ๋งค์šฐ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด ์ฝ”๋“œ ์ž์ฒด๋ฅผ ๋ณ€๊ฒฝํ•˜๋ฉด ์ถ”๊ฐ€ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•  ์œ„ํ—˜์ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

๋งˆ์ง€๋ง‰์œผ๋กœ Istio Service Mesh์˜ ๋งˆ์ง€๋ง‰ ๊ฒŒ์‹œ๋ฌผ์—์„œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • ๋‹คํฌ์‚ฌ์ด๋“œ๋กœ ๊ฐ‘์‹œ๋‹ค. ๋ณด๋‹ค ์ •ํ™•ํ•˜๊ฒŒ๋Š” ์ฝ”๋“œ๊ฐ€ ํ”„๋กœ๋•์…˜ ๋ฐ์ดํ„ฐ์— ์ง์ ‘ ๋ฐฐํฌ๋˜๊ณ  ํ…Œ์ŠคํŠธ๋˜์ง€๋งŒ ์‹œ์Šคํ…œ ์ž‘๋™์—๋Š” ์–ด๋–ค ๋ฐฉ์‹์œผ๋กœ๋„ ์˜ํ–ฅ์„ ๋ฏธ์น˜์ง€ ์•Š๋Š” Dark Launch ๊ตฌ์„ฑํ‘œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ฐฐ์›๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด Istio์˜ ํŠธ๋ž˜ํ”ฝ ๋ถ„ํ•  ๊ธฐ๋Šฅ์ด ์œ ์šฉํ•œ ๊ณณ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์–ด๋–ค ๋ฐฉ์‹์œผ๋กœ๋“  ์ „ํˆฌ ์‹œ์Šคํ…œ์˜ ์ž‘๋™์— ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š๊ณ  ์‹ค์‹œ๊ฐ„ ์ƒ์‚ฐ ๋ฐ์ดํ„ฐ๋ฅผ ํ…Œ์ŠคํŠธํ•  ์ˆ˜ ์žˆ๋Š” ๋Šฅ๋ ฅ์ด ๊ฐ€์žฅ ์„ค๋“๋ ฅ ์žˆ๋Š” ๊ฒ€์ฆ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.
  • Dark Launch๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ Canary ๋ฐฐํฌ ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•˜์—ฌ ์œ„ํ—˜์„ ์ค„์ด๊ณ  ์ƒˆ ์ฝ”๋“œ๋ฅผ ํ”„๋กœ๋•์…˜์— ๋” ์‰ฝ๊ฒŒ ์ ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ณด์—ฌ ๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค. Canary ๋ฐฐํฌ ์ž์ฒด๋Š” ์ƒˆ๋กœ์šด ๊ฒƒ์ด ์•„๋‹ˆ์ง€๋งŒ Istio๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๊ฐ„๋‹จํ•œ YAML ํŒŒ์ผ๋งŒ์œผ๋กœ ์ด ์ฒด๊ณ„๋ฅผ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋งˆ์ง€๋ง‰์œผ๋กœ, ์ธํ„ฐ๋„ท ์ž‘์—… ์‹œ Istio์˜ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก Istio Egress๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํด๋Ÿฌ์Šคํ„ฐ ์™ธ๋ถ€์— ์žˆ๋Š” ์‚ฌ์šฉ์ž์—๊ฒŒ ์„œ๋น„์Šค์— ๋Œ€ํ•œ ์•ก์„ธ์Šค ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ณด์—ฌ ๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค.

์ž, ์—ฌ๊ธฐ ๊ฐ‘๋‹ˆ๋‹ค...

Istio ๋ชจ๋‹ˆํ„ฐ๋ง ๋ฐ ๊ด€๋ฆฌ ๋„๊ตฌ - ์„œ๋น„์Šค ๋ฉ”์‹œ์—์„œ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋ฅผ ์กฐ์œจํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ๋ชจ๋“  ๊ฒƒ ์„œ๋น„์Šค ๋ฉ”์‹œ.

Istio ์„œ๋น„์Šค ๋ฉ”์‹œ๋ž€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

์„œ๋น„์Šค ๋ฉ”์‹œ๋Š” ํŠธ๋ž˜ํ”ฝ ๋ชจ๋‹ˆํ„ฐ๋ง, ์•ก์„ธ์Šค ์ œ์–ด, ๊ฒ€์ƒ‰, ๋ณด์•ˆ, ๋‚ด๊ฒฐํ•จ์„ฑ ๋ฐ ์„œ๋น„์Šค ๊ทธ๋ฃน์— ๋Œ€ํ•œ ๊ธฐํƒ€ ์œ ์šฉํ•œ ๊ธฐ๋Šฅ๊ณผ ๊ฐ™์€ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค. Istio๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์„œ๋น„์Šค ์ž์ฒด์˜ ์ฝ”๋“œ๋ฅผ ์กฐ๊ธˆ๋„ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š๊ณ ๋„ ์ด ๋ชจ๋“  ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋งˆ์ˆ ์˜ ๋น„๊ฒฐ์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? Istio๋Š” ์‚ฌ์ด๋“œ์นด ์ปจํ…Œ์ด๋„ˆ(์‚ฌ์ด๋“œ์นด๋Š” ์˜คํ† ๋ฐ”์ด ์‚ฌ์ด๋“œ์นด) ํ˜•ํƒœ๋กœ ๊ฐ ์„œ๋น„์Šค์— ์ž์ฒด ํ”„๋ก์‹œ๋ฅผ ์—ฐ๊ฒฐํ•œ ํ›„ ์ด ์„œ๋น„์Šค์— ๋Œ€ํ•œ ๋ชจ๋“  ํŠธ๋ž˜ํ”ฝ์ด ํ”„๋ก์‹œ๋ฅผ ํ†ต๊ณผํ•˜๋ฉฐ, ํ”„๋ก์‹œ๋Š” ์ง€์ •๋œ ์ •์ฑ…์— ๋”ฐ๋ผ ์ด ํŠธ๋ž˜ํ”ฝ์˜ ๋ฐฉ๋ฒ•, ์‹œ๊ธฐ ๋ฐ ์—ฌ๋ถ€๋ฅผ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค. ์„œ๋น„์Šค์— ์ „ํ˜€ ๋„๋‹ฌํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ Istio๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์นด๋‚˜๋ฆฌ์•„ ๋ฐฐํฌ, ํšŒ๋กœ ์ฐจ๋‹จ๊ธฐ, ๊ฒฐํ•จ ์ฃผ์ž… ๋“ฑ๊ณผ ๊ฐ™์€ ๊ณ ๊ธ‰ DevOps ๊ธฐ์ˆ ์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Istio๊ฐ€ ์ปจํ…Œ์ด๋„ˆ ๋ฐ Kubernetes์™€ ์ž‘๋™ํ•˜๋Š” ๋ฐฉ์‹

Istio ์„œ๋น„์Šค ๋ฉ”์‹œ๋Š” ๋ชจ๋‹ˆํ„ฐ๋ง, ์ถ”์ , ํšŒ๋กœ ์ฐจ๋‹จ๊ธฐ, ๋ผ์šฐํŒ…, ๋กœ๋“œ ๋ฐธ๋Ÿฐ์‹ฑ, ๊ฒฐํ•จ ์ฃผ์ž…, ์žฌ์‹œ๋„, ์‹œ๊ฐ„ ์ดˆ๊ณผ, ๋ฏธ๋Ÿฌ๋ง, ์•ก์„ธ์Šค ์ œ์–ด, ์†๋„ ์ œํ•œ ๋“ฑ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ๋ชจ๋“  ๊ฒƒ์„ ์‚ฌ์ด๋“œ์นด๋กœ ๊ตฌํ˜„ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์˜ค๋Š˜๋‚  ์ด๋Ÿฌํ•œ ๊ธฐ๋Šฅ์„ ์ฝ”๋“œ์—์„œ ์ง์ ‘ ๊ตฌํ˜„ํ•˜๋Š” ์ˆ˜๋งŽ์€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์žˆ์ง€๋งŒ Istio๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ฝ”๋“œ์—์„œ ์•„๋ฌด๊ฒƒ๋„ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š๊ณ ๋„ ๋™์ผํ•œ ๊ธฐ๋Šฅ์„ ๋ชจ๋‘ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์‚ฌ์ด๋“œ์นด ๋ชจ๋ธ์— ๋”ฐ๋ฅด๋ฉด Istio๋Š” Linux ์ปจํ…Œ์ด๋„ˆ์—์„œ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. Kubernetes-Pod๋Š” ์ œ์–ด๋œ ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•˜๋ฉฐ ์ฃผ์–ด์ง„ ๊ตฌ์„ฑ์— ๋”ฐ๋ผ ๊ธฐ๋Šฅ๊ณผ ์ •๋ณด๋ฅผ ์ฃผ์ž…ํ•˜๊ณ  ์ถ”์ถœํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ์‚ฌ์šฉ์ž ๊ณ ์œ ์˜ ๊ตฌ์„ฑ์ด๋ฉฐ ์ฝ”๋“œ ์™ธ๋ถ€์— ์กด์žฌํ•œ๋‹ค๋Š” ์ ์„ ๊ฐ•์กฐํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ฝ”๋“œ๊ฐ€ ํ›จ์”ฌ ๊ฐ„๋‹จํ•ด์ง€๊ณ  ์งง์•„์ง‘๋‹ˆ๋‹ค.

๋˜ํ•œ ์ค‘์š”ํ•œ ์ ์€ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค์˜ ์šด์˜ ๊ตฌ์„ฑ ์š”์†Œ๊ฐ€ ์ฝ”๋“œ ์ž์ฒด์™€ ์ „ํ˜€ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ์ง€ ์•Š๋‹ค๋Š” ์ ์ž…๋‹ˆ๋‹ค. ์ด๋Š” ํ•ด๋‹น ์šด์˜์ด IT ์ „๋ฌธ๊ฐ€์—๊ฒŒ ์•ˆ์ „ํ•˜๊ฒŒ ์ด์ „๋  ์ˆ˜ ์žˆ์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ ๊ฐœ๋ฐœ์ž๊ฐ€ ํšŒ๋กœ ์ฐจ๋‹จ๊ธฐ์™€ ๊ฒฐํ•จ ์ฃผ์ž…์„ ๋‹ด๋‹นํ•ด์•ผ ํ•˜๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ์˜ˆ, ๋ฐ˜์‘ํ•˜์ง€๋งŒ ์ฒ˜๋ฆฌํ•˜๊ณ  ์ƒ์„ฑํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ? ์ฝ”๋“œ์—์„œ ์ด ๋ชจ๋“  ๊ฒƒ์„ ์ œ๊ฑฐํ•˜๋ฉด ํ”„๋กœ๊ทธ๋ž˜๋จธ๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ธฐ๋Šฅ์— ์ „์ ์œผ๋กœ ์ง‘์ค‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ฝ”๋“œ ์ž์ฒด๋„ ๋” ์งง์•„์ง€๊ณ  ๋‹จ์ˆœํ•ด์งˆ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์„œ๋น„์Šค ๋ฉ”์‹œ

์ฝ”๋“œ ์™ธ๋ถ€์—์„œ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ๊ด€๋ฆฌ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๋Š” Istio๋Š” Service Mesh์˜ ๊ฐœ๋…์ž…๋‹ˆ๋‹ค. ์ฆ‰, ๋„คํŠธ์›Œํฌ ๊ธฐ๋Šฅ์˜ ๋ฉ”์‹œ๋ฅผ ํ˜•์„ฑํ•˜๋Š” ํ•˜๋‚˜ ์ด์ƒ์˜ ๋ฐ”์ด๋„ˆ๋ฆฌ๋กœ ๊ตฌ์„ฑ๋œ ๊ทธ๋ฃน์ž…๋‹ˆ๋‹ค.

Istio๊ฐ€ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค์™€ ์ž‘๋™ํ•˜๋Š” ๋ฐฉ์‹

์‚ฌ์ด๋“œ์นด ์ปจํ…Œ์ด๋„ˆ์˜ ์ž‘์—…์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. Kubernetes ะธ ๋ฏธ๋‹ˆ์‹œํ”„ํŠธ ์กฐ๊ฐ๋„: Minishift ์ธ์Šคํ„ด์Šค๋ฅผ ์‹œ์ž‘ํ•˜๊ณ , Istio์šฉ ํ”„๋กœ์ ํŠธ("istio-system"์ด๋ผ๊ณ  ํ•จ)๋ฅผ ์ƒ์„ฑํ•˜๊ณ , ๋ชจ๋“  Istio ๊ด€๋ จ ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ์„ค์น˜ ๋ฐ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ํ”„๋กœ์ ํŠธ์™€ ํฌ๋“œ๋ฅผ ์ƒ์„ฑํ•  ๋•Œ ๋ฐฐํฌ์— ๊ตฌ์„ฑ ์ •๋ณด๋ฅผ ์ถ”๊ฐ€ํ•˜๋ฉด ํฌ๋“œ์—์„œ Istio๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค. ๋‹จ์ˆœํ™”๋œ ๋‹ค์ด์–ด๊ทธ๋žจ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

Istio Service Mesh์— ๋Œ€ํ•œ ์ผ๋ จ์˜ ๊ฒŒ์‹œ๋ฌผ

์ด์ œ ๊ฒฐํ•จ ์ฃผ์ž…, ์ง€์› ๋“ฑ์„ ๊ตฌ์„ฑํ•˜๊ธฐ ์œ„ํ•ด Istio ์„ค์ •์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์นด๋‚˜๋ฆฌ์•„ ๋ฐฐํฌ ๋˜๋Š” ๊ธฐํƒ€ Istio ๊ธฐ๋Šฅ - ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ž์ฒด์˜ ์ฝ”๋“œ๋ฅผ ๊ฑด๋“œ๋ฆฌ์ง€ ์•Š๊ณ ๋„ ์ด ๋ชจ๋“  ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ€์žฅ ํฐ ํด๋ผ์ด์–ธํŠธ(Foo Corporation) ์‚ฌ์šฉ์ž์˜ ๋ชจ๋“  ์›น ํŠธ๋ž˜ํ”ฝ์„ ์‚ฌ์ดํŠธ์˜ ์ƒˆ ๋ฒ„์ „์œผ๋กœ ๋ฆฌ๋””๋ ‰์…˜ํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ ค๋ฉด ์‚ฌ์šฉ์ž ID์—์„œ @foocorporation.com์„ ์ฐพ์•„ ๊ทธ์— ๋”ฐ๋ผ ๋ฆฌ๋””๋ ‰์…˜ํ•˜๋Š” Istio ๋ผ์šฐํŒ… ๊ทœ์น™์„ ์ƒ์„ฑํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ๋ชจ๋“  ์‚ฌ์šฉ์ž์—๊ฒŒ๋Š” ์•„๋ฌด ๊ฒƒ๋„ ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ทธ๋™์•ˆ ๊ท€ํ•˜๋Š” ์‚ฌ์ดํŠธ์˜ ์ƒˆ ๋ฒ„์ „์„ ์นจ์ฐฉํ•˜๊ฒŒ ํ…Œ์ŠคํŠธํ•˜๊ฒŒ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด๋ฅผ ์œ„ํ•ด ๊ฐœ๋ฐœ์ž๋ฅผ ์ „ํ˜€ ์ฐธ์—ฌ์‹œํ‚ฌ ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ๊ทธ์— ๋Œ€ํ•œ ๋Œ€๊ฐ€๋ฅผ ์น˜๋Ÿฌ์•ผ ํ•ฉ๋‹ˆ๊นŒ?

๋ณ„๋ง์”€์„์š”. Istio๋Š” ๋งค์šฐ ๋น ๋ฅด๋ฉฐ ๋‹ค์Œ ์–ธ์–ด๋กœ ์ž‘์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. Go ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ๊ฑฐ์˜ ๋ฐœ์ƒํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ์˜จ๋ผ์ธ ์ƒ์‚ฐ์„ฑ ์†์‹ค ๊ฐ€๋Šฅ์„ฑ์€ ๊ฐœ๋ฐœ์ž ์ƒ์‚ฐ์„ฑ ์ฆ๊ฐ€๋กœ ์ƒ์‡„๋ฉ๋‹ˆ๋‹ค. ์ ์–ด๋„ ์ด๋ก ์ƒ์œผ๋กœ๋Š” ๊ฐœ๋ฐœ์ž์˜ ์‹œ๊ฐ„์ด ์†Œ์ค‘ํ•˜๋‹ค๋Š” ์ ์„ ์žŠ์ง€ ๋งˆ์‹ญ์‹œ์˜ค. ์†Œํ”„ํŠธ์›จ์–ด ๋น„์šฉ์— ๊ด€ํ•ด์„œ๋Š” Istio๋Š” ์˜คํ”ˆ ์†Œ์Šค ์†Œํ”„ํŠธ์›จ์–ด์ด๋ฏ€๋กœ ๋ฌด๋ฃŒ๋กœ ๋‹ค์šด๋กœ๋“œํ•˜์—ฌ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์Šค์Šค๋กœ ๋งˆ์Šคํ„ฐํ•˜์„ธ์š”

Red Hat ๊ฐœ๋ฐœ์ž ๊ฒฝํ—˜ ํŒ€์€ ์‹ฌ์ธต์ ์ธ ์‹ค์Šต์„ ๊ฐœ๋ฐœํ–ˆ์Šต๋‹ˆ๋‹ค. ์ง€๋„๋ ฅ Istio(์˜์–ด)๋กœ. Linux, MacOS ๋ฐ Windows์—์„œ ์‹คํ–‰๋˜๋ฉฐ ์ฝ”๋“œ๋Š” Java ๋ฐ Node.js๋กœ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค.

Istio์— ๋Œ€ํ•œ 10๊ฐ€์ง€ ๋Œ€ํ™”ํ˜• ๊ฐ•์˜

๋ธ”๋ก 1 - ์ดˆ๋ณด์ž์šฉ

Istio ์†Œ๊ฐœ
30 ๋ถ„
Service Mesh์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ณ  OpenShift Kubernetes ํด๋Ÿฌ์Šคํ„ฐ์— Istio๋ฅผ ์„ค์น˜ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ณด์„ธ์š”.
๊ฒŒ์‹œ

Istio์— ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ๋ฐฐํฌ
30 ๋ถ„
์šฐ๋ฆฌ๋Š” Istio๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Spring Boot ๋ฐ Vert.x์™€ ํ•จ๊ป˜ ์„ธ ๊ฐ€์ง€ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋ฅผ ๋ฐฐํฌํ•ฉ๋‹ˆ๋‹ค.
๊ฒŒ์‹œ

๋ธ”๋ก 2 โ€“ ์ค‘๊ธ‰ ์ˆ˜์ค€

Istio์˜ ๋ชจ๋‹ˆํ„ฐ๋ง ๋ฐ ์ถ”์ 
60 ๋ถ„
Istio์˜ ๊ธฐ๋ณธ ์ œ๊ณต ๋ชจ๋‹ˆํ„ฐ๋ง ๋„๊ตฌ, ์‚ฌ์šฉ์ž ์ •์˜ ์ธก์ •ํ•ญ๋ชฉ, Prometheus ๋ฐ Grafana๋ฅผ ํ†ตํ•œ OpenTracing์„ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.
๊ฒŒ์‹œ

Istio์˜ ๊ฐ„๋‹จํ•œ ๋ผ์šฐํŒ…
60 ๋ถ„
๊ฐ„๋‹จํ•œ ๊ทœ์น™์„ ์‚ฌ์šฉํ•˜์—ฌ Istio์—์„œ ๋ผ์šฐํŒ…์„ ๊ด€๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ณด์„ธ์š”.
๊ฒŒ์‹œ

๊ณ ๊ธ‰ ๋ผ์šฐํŒ… ๊ทœ์น™
60 ๋ถ„
Istio์˜ ์Šค๋งˆํŠธ ๋ผ์šฐํŒ…, ์•ก์„ธ์Šค ์ œ์–ด, ๋กœ๋“œ ๋ฐธ๋Ÿฐ์‹ฑ ๋ฐ ์†๋„ ์ œํ•œ์„ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.
๊ฒŒ์‹œ

๋ธ”๋ก 3 โ€“ ๊ณ ๊ธ‰ ์‚ฌ์šฉ์ž

Istio์˜ ์˜ค๋ฅ˜ ์ฃผ์ž…
60 ๋ถ„
๋ถ„์‚ฐ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ ์‹œ๋‚˜๋ฆฌ์˜ค, HTTP ์˜ค๋ฅ˜ ๋ฐ ๋„คํŠธ์›Œํฌ ์ง€์—ฐ ์ƒ์„ฑ์„ ์—ฐ๊ตฌํ•˜๊ณ  ์นด์˜ค์Šค ์—”์ง€๋‹ˆ์–ด๋ง์„ ์‚ฌ์šฉํ•˜์—ฌ ํ™˜๊ฒฝ์„ ๋ณต์›ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ฐฐ์›๋‹ˆ๋‹ค.
๊ฒŒ์‹œ

Istio์˜ ํšŒ๋กœ ์ฐจ๋‹จ๊ธฐ
30 ๋ถ„
์ŠคํŠธ๋ ˆ์Šค ํ…Œ์ŠคํŠธ ์‚ฌ์ดํŠธ๋ฅผ ์œ„ํ•ด Siege๋ฅผ ์„ค์น˜ํ•˜๊ณ  ์žฌ์ƒ, ํšŒ๋กœ ์ฐจ๋‹จ๊ธฐ ๋ฐ ํ’€ ๋ฐฐ์ถœ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐฑ์—”๋“œ ๋‚ด๊ฒฐํ•จ์„ฑ์„ ๋ณด์žฅํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ฐฐ์›๋‹ˆ๋‹ค.
๊ฒŒ์‹œ

์†ก์‹  ๋ฐ Istio
10 ๋ถ„
์šฐ๋ฆฌ๋Š” Egress ๊ฒฝ๋กœ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋‚ด๋ถ€ ์„œ๋น„์Šค์™€ ์™ธ๋ถ€ API ๋ฐ ์„œ๋น„์Šค์˜ ์ƒํ˜ธ ์ž‘์šฉ์— ๋Œ€ํ•œ ๊ทœ์น™์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.
๊ฒŒ์‹œ

์ด์Šคํ‹ฐ์˜ค์™€ ํ‚ค์•Œ๋ฆฌ
15 ๋ถ„
Kiali๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์„œ๋น„์Šค ๋ฉ”์‹œ ๊ฐœ์š”๋ฅผ ํ™•์ธํ•˜๊ณ  ์š”์ฒญ ๋ฐ ๋ฐ์ดํ„ฐ ํ๋ฆ„์„ ํƒ์ƒ‰ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ณด์„ธ์š”.
๊ฒŒ์‹œ

Istio์˜ ์ƒํ˜ธ TLS
15 ๋ถ„
Istio Gateway์™€ VirtualService๋ฅผ ๋งŒ๋“  ๋‹ค์Œ ์ƒํ˜ธ TLS(mTLS)์™€ ํ•ด๋‹น ์„ค์ •์„ ์ž์„ธํžˆ ์—ฐ๊ตฌํ•ฉ๋‹ˆ๋‹ค.
๊ฒŒ์‹œ

๋ธ”๋ก 3.1 - ์‹ฌ์ธต ๋ถ„์„: ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค์šฉ Istio Service Mesh

Istio Service Mesh์— ๋Œ€ํ•œ ์ผ๋ จ์˜ ๊ฒŒ์‹œ๋ฌผ
๊ทธ ์ฑ… ๋ฌด์Šจ ๋‚ด์šฉ์ด์•ผ:

  • ์„œ๋น„์Šค ๋ฉ”์‹œ๋ž€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?
  • Istio ์‹œ์Šคํ…œ๊ณผ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์•„ํ‚คํ…์ฒ˜์—์„œ์˜ ์—ญํ• 
  • Istio๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋‹ค์Œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ฉ๋‹ˆ๋‹ค.
    • ๊ฒฐํ•จ ํ—ˆ์šฉ;
    • ๋ผ์šฐํŒ…;
    • ์นด์˜ค์Šค ํ…Œ์ŠคํŠธ;
    • ๋ณด์•ˆ;
    • ์ถ”์ , ์ธก์ •ํ•ญ๋ชฉ ๋ฐ Grafana๋ฅผ ์‚ฌ์šฉํ•œ ์›๊ฒฉ ๋ถ„์„ ์ˆ˜์ง‘.

์ฑ… ๋‹ค์šด๋กœ๋“œ

์„œ๋น„์Šค ๋ฉ”์‹œ ๋ฐ Istio์— ๊ด€ํ•œ ๊ธฐ์‚ฌ ์‹œ๋ฆฌ์ฆˆ

์ง์ ‘ ํ•ด๋ณด๊ธฐ

์ด ๊ฒŒ์‹œ๋ฌผ ์‹œ๋ฆฌ์ฆˆ๋Š” Istio์˜ ์„ธ๊ณ„์— ๋Œ€ํ•œ ์‹ฌ์ธต์ ์ธ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•œ ๊ฒƒ์ด ์•„๋‹™๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์—ฌ๋Ÿฌ๋ถ„์—๊ฒŒ ๊ฐœ๋…์„ ์†Œ๊ฐœํ•˜๊ณ  Istio๋ฅผ ์ง์ ‘ ์‚ฌ์šฉํ•ด ๋ณด๋„๋ก ์˜๊ฐ์„ ์ฃผ๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ์™„์ „ํžˆ ๋ฌด๋ฃŒ์ด๋ฉฐ Red Hat์€ ๋‹ค์Œ์„ ํฌํ•จํ•˜์—ฌ OpenShift, Kubernetes, Linux ์ปจํ…Œ์ด๋„ˆ ๋ฐ Istio๋ฅผ ์‹œ์ž‘ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ๋ชจ๋“  ๋„๊ตฌ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. Red Hat ๊ฐœ๋ฐœ์ž OpenShift ์ปจํ…Œ์ด๋„ˆ ํ”Œ๋žซํผ, Istio ๊ฐ€์ด๋“œ ๊ทธ๋ฆฌ๊ณ  ์šฐ๋ฆฌ์˜ ๋‹ค๋ฅธ ์ž์› Service Mesh์˜ ๋งˆ์ดํฌ๋กœ ์‚ฌ์ดํŠธ. ๋ฏธ๋ฃจ์ง€ ๋ง๊ณ  ์˜ค๋Š˜๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜์„ธ์š”!

Istio ๋ผ์šฐํŒ… ๊ทœ์น™: ์„œ๋น„์Šค ์š”์ฒญ์ด ํ•„์š”ํ•œ ๊ณณ์œผ๋กœ ์ „๋‹ฌ

์˜คํ”ˆ์‹œํ”„ํŠธ ะธ Kubernetes ์—ฐ์„ค์„ ํ›Œ๋ฅญํ•˜๊ฒŒ ํ•ด๋‚ด๋‹ค ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ํ•„์š”ํ•œ ํฌ๋“œ๋กœ ๋ผ์šฐํŒ…๋ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์˜ ์กด์žฌ ์ด์œ  ์ค‘ ํ•˜๋‚˜์ธ ๋ผ์šฐํŒ…๊ณผ ๋กœ๋“œ ๋ฐธ๋Ÿฐ์‹ฑ์ž…๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ข€ ๋” ๋ฏธ๋ฌ˜ํ•˜๊ณ  ์ •๊ตํ•œ ๋ผ์šฐํŒ…์ด ํ•„์š”ํ•˜๋‹ค๋ฉด ์–ด๋–จ๊นŒ์š”? ์˜ˆ๋ฅผ ๋“ค์–ด ๋‘ ๊ฐ€์ง€ ๋ฒ„์ „์˜ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋ฅผ ๋™์‹œ์— ์‚ฌ์šฉํ•˜๋ ค๋Š” ๊ฒฝ์šฐ์ž…๋‹ˆ๋‹ค. Istio ๊ฒฝ๋กœ ๊ทœ์น™์ด ์—ฌ๊ธฐ์„œ ์–ด๋–ป๊ฒŒ ๋„์›€์ด ๋  ์ˆ˜ ์žˆ๋‚˜์š”?

๋ผ์šฐํŒ… ๊ทœ์น™์€ ์‹ค์ œ๋กœ ๊ฒฝ๋กœ ์„ ํƒ์„ ๊ฒฐ์ •ํ•˜๋Š” ๊ทœ์น™์ž…๋‹ˆ๋‹ค. ์‹œ์Šคํ…œ ๋ณต์žก์„ฑ ์ˆ˜์ค€์— ๊ด€๊ณ„์—†์ด ์ด๋Ÿฌํ•œ ๊ทœ์น™์˜ ์ผ๋ฐ˜์ ์ธ ์ž‘๋™ ์›๋ฆฌ๋Š” ๊ฐ„๋‹จํ•ฉ๋‹ˆ๋‹ค. ์š”์ฒญ์€ ํŠน์ • ๋งค๊ฐœ๋ณ€์ˆ˜ ๋ฐ HTTP ํ—ค๋” ๊ฐ’์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๋ผ์šฐํŒ…๋ฉ๋‹ˆ๋‹ค.
์˜ˆ๋ฅผ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค:

Kubernetes ๊ธฐ๋ณธ๊ฐ’: ์‚ฌ์†Œํ•œ "50/50"

์ด ์˜ˆ์—์„œ๋Š” OpenShift์—์„œ ๋‘ ๊ฐ€์ง€ ๋ฒ„์ „์˜ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋ฅผ ๋™์‹œ์— ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. ์ด๋ฅผ v1๊ณผ v2๋ผ๊ณ  ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ฐ ๋ฒ„์ „์€ ์ž์ฒด Kubernetes Pod์—์„œ ์‹คํ–‰๋˜๋ฉฐ ๊ธฐ๋ณธ์ ์œผ๋กœ ๊ท ๋“ฑํ•˜๊ฒŒ ๊ท ํ˜• ์žกํžŒ ๋ผ์šด๋“œ ๋กœ๋นˆ ๋ผ์šฐํŒ…์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ ํฌ๋“œ๋Š” ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์ธ์Šคํ„ด์Šค, ์ฆ‰ ๋ณต์ œ๋ณธ ์ˆ˜๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์š”์ฒญ ๊ณต์œ ๋ฅผ ๋ฐ›์Šต๋‹ˆ๋‹ค. Istio๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ด ์ž”์•ก์„ ์ˆ˜๋™์œผ๋กœ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

OpenShift์— ์ถ”์ฒœ ์„œ๋น„์Šค์˜ ๋‘ ๊ฐ€์ง€ ๋ฒ„์ „์ธ Recommendation-v1๊ณผ Recommendation-v2๋ฅผ ๋ฐฐํฌํ–ˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.
๊ทธ๋ฆผ์—์„œ. ๊ทธ๋ฆผ 1์€ ๊ฐ ์„œ๋น„์Šค๊ฐ€ ํ•˜๋‚˜์˜ ์ธ์Šคํ„ด์Šค์— ํ‘œ์‹œ๋  ๋•Œ ์š”์ฒญ์ด ์„œ๋น„์Šค ๊ฐ„์— ๊ท ๋“ฑํ•˜๊ฒŒ ๋ฒˆ๊ฐˆ์•„ ๋‚˜ํƒ€๋‚˜๋Š” ๊ฒƒ์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. 1-2-1-2-... ์ด๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ Kubernetes ๋ผ์šฐํŒ…์ด ์ž‘๋™ํ•˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค.

Istio Service Mesh์— ๋Œ€ํ•œ ์ผ๋ จ์˜ ๊ฒŒ์‹œ๋ฌผ

๋ฒ„์ „ ๊ฐ„ ๊ฐ€์ค‘์น˜ ๋ถ„ํฌ

๊ทธ๋ฆผ์—์„œ. ๊ทธ๋ฆผ 2๋Š” v2 ์„œ๋น„์Šค ๋ณต์ œ๋ณธ ์ˆ˜๋ฅผ 2์—์„œ 2๋กœ ๋Š˜๋ฆฌ๋ฉด ์–ด๋–ค ์ผ์ด ๋ฐœ์ƒํ•˜๋Š”์ง€ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค(oc scale โ€”replicas=1 development/recommendation-v2 ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ ์ˆ˜ํ–‰๋จ). ๋ณด์‹œ๋‹ค์‹œํ”ผ, v1๊ณผ v2 ์‚ฌ์ด์˜ ์š”์ฒญ์€ ์ด์ œ 2:1 ๋น„์œจ(2-2-XNUMX-XNUMX-XNUMX-XNUMX-โ€ฆ)๋กœ ๋‚˜๋‰ฉ๋‹ˆ๋‹ค.

Istio Service Mesh์— ๋Œ€ํ•œ ์ผ๋ จ์˜ ๊ฒŒ์‹œ๋ฌผ

Istio๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฒ„์ „ ๋ฌด์‹œ

Istio๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ํ•„์š”ํ•œ ๋ฐฉ์‹์œผ๋กœ ์š”์ฒญ ๋ฐฐํฌ๋ฅผ ์‰ฝ๊ฒŒ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๋‹ค์Œ Istio yaml ํŒŒ์ผ์„ ์‚ฌ์šฉํ•˜์—ฌ Recommendation-v1์—๋งŒ ๋ชจ๋“  ํŠธ๋ž˜ํ”ฝ์„ ๋ณด๋ƒ…๋‹ˆ๋‹ค.

Istio Service Mesh์— ๋Œ€ํ•œ ์ผ๋ จ์˜ ๊ฒŒ์‹œ๋ฌผ

์—ฌ๊ธฐ์„œ ์ฃผ์˜ํ•  ์ ์€ ๋ผ๋ฒจ์— ๋”ฐ๋ผ ํฌ๋“œ๊ฐ€ ์„ ํƒ๋œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด ์˜ˆ์—์„œ๋Š” ๋ ˆ์ด๋ธ” v1์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. "weight: 100" ๋งค๊ฐœ๋ณ€์ˆ˜๋Š” ํŠธ๋ž˜ํ”ฝ์˜ 100%๊ฐ€ v1 ๋ ˆ์ด๋ธ”์ด ์žˆ๋Š” ๋ชจ๋“  ์„œ๋น„์Šค ํฌ๋“œ๋กœ ๋ผ์šฐํŒ…๋œ๋‹ค๋Š” ์˜๋ฏธ์ž…๋‹ˆ๋‹ค.

๋ฒ„์ „ ๊ฐ„ ์ง€์‹œ๋ฌธ ๋ฐฐํฌ(Canary ๋ฐฐํฌ)

๋‹ค์Œ์œผ๋กœ, ๊ฐ€์ค‘์น˜ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๊ฐ ํฌ๋“œ์—์„œ ์‹คํ–‰ ์ค‘์ธ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์ธ์Šคํ„ด์Šค ์ˆ˜๋ฅผ ๋ฌด์‹œํ•˜๊ณ  ๋‘ ํฌ๋“œ ๋ชจ๋‘์— ํŠธ๋ž˜ํ”ฝ์„ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์—ฌ๊ธฐ์—์„œ๋Š” ํŠธ๋ž˜ํ”ฝ์˜ 90%๋ฅผ v1๋กœ ๋ณด๋‚ด๊ณ  10%๋ฅผ v2๋กœ ๋ณด๋ƒ…๋‹ˆ๋‹ค.

Istio Service Mesh์— ๋Œ€ํ•œ ์ผ๋ จ์˜ ๊ฒŒ์‹œ๋ฌผ

๋ชจ๋ฐ”์ผ ์‚ฌ์šฉ์ž๋ฅผ ์œ„ํ•œ ๋ณ„๋„์˜ ๋ผ์šฐํŒ…

๊ฒฐ๋ก ์ ์œผ๋กœ ๋ชจ๋ฐ”์ผ ์‚ฌ์šฉ์ž ํŠธ๋ž˜ํ”ฝ์„ ๊ฐ•์ œ๋กœ ์„œ๋น„์Šค v2๋กœ ๋ผ์šฐํŒ…ํ•˜๊ณ  ๋‹ค๋ฅธ ๋ชจ๋“  ์‚ฌ์šฉ์ž๋Š” v1๋กœ ๋ผ์šฐํŒ…ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ณด์—ฌ ๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด ์ •๊ทœ์‹์„ ์‚ฌ์šฉํ•˜์—ฌ ์š”์ฒญ ํ—ค๋”์˜ ์‚ฌ์šฉ์ž ์—์ด์ „ํŠธ ๊ฐ’์„ ๋ถ„์„ํ•ฉ๋‹ˆ๋‹ค.

Istio Service Mesh์— ๋Œ€ํ•œ ์ผ๋ จ์˜ ๊ฒŒ์‹œ๋ฌผ

์ด์ œ ๋„ˆ

ํ—ค๋” ๊ตฌ๋ฌธ ๋ถ„์„์„ ์œ„ํ•œ ์ •๊ทœ ํ‘œํ˜„์‹์˜ ์˜ˆ๋Š” ์—ฌ๋Ÿฌ๋ถ„์ด Istio ๋ผ์šฐํŒ… ๊ทœ์น™์„ ์ž์‹ ๋งŒ์˜ ์šฉ๋„๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋™๊ธฐ๋ฅผ ๋ถ€์—ฌํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ฒŒ๋‹ค๊ฐ€ ํ—ค๋” ๊ฐ’์ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์†Œ์Šค ์ฝ”๋“œ์—์„œ ํ˜•์„ฑ๋  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์—ฌ๊ธฐ์„œ ๊ฐ€๋Šฅ์„ฑ์€ ๋งค์šฐ ๊ด‘๋ฒ”์œ„ํ•ฉ๋‹ˆ๋‹ค.

Dev๊ฐ€ ์•„๋‹ˆ๋ผ Ops๋ผ๋Š” ์ ์„ ๊ธฐ์–ตํ•˜์„ธ์š”.

์œ„์˜ ์˜ˆ์—์„œ ๋ณด์—ฌ์ค€ ๋ชจ๋“  ๊ฒƒ์€ ํŠน๋ณ„ํ•œ ์š”์ฒญ ํ—ค๋”๋ฅผ ์ƒ์„ฑํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ๋ฅผ ์ œ์™ธํ•˜๊ณ ๋Š” ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ์กฐ๊ธˆ๋„ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š๊ณ  ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค. Istio๋Š” ์˜ˆ๋ฅผ ๋“ค์–ด ํ…Œ์ŠคํŠธ ๋‹จ๊ณ„์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐœ๋ฐœ์ž์™€ ํ”„๋กœ๋•์…˜์— ํฐ ๋„์›€์ด ๋˜๋Š” IT ์‹œ์Šคํ…œ ์šด์˜ ์ „๋ฌธ๊ฐ€ ๋ชจ๋‘์—๊ฒŒ ์œ ์šฉํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ ์ด ์ผ๋ จ์˜ ๊ฒŒ์‹œ๋ฌผ์˜ ์ฃผ์š” ์ฃผ์ œ๋ฅผ ๋ฐ˜๋ณตํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์ฝ”๋“œ์—์„œ ์•„๋ฌด๊ฒƒ๋„ ๋ณ€๊ฒฝํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ์ƒˆ ์ด๋ฏธ์ง€๋ฅผ ๋นŒ๋“œํ•˜๊ฑฐ๋‚˜ ์ƒˆ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹œ์ž‘ํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ์ด ๋ชจ๋“  ๊ฒƒ์€ ์ฝ”๋“œ ์™ธ๋ถ€์—์„œ ๊ตฌํ˜„๋ฉ๋‹ˆ๋‹ค.

๋„ˆ์˜ ์ƒ์ƒ๋ ฅ์„ ์‚ฌ์šฉํ•ด๋ผ

์ •๊ทœ์‹์„ ์‚ฌ์šฉํ•œ ํ—ค๋” ๋ถ„์„์˜ ๊ฐ€๋Šฅ์„ฑ์„ ์ƒ์ƒํ•ด ๋ณด์‹ญ์‹œ์˜ค. ๊ฐ€์žฅ ํฐ ๊ณ ๊ฐ์„ ๊ท€ํ•˜์˜ ํŠน๋ณ„ ๋ฒ„์ „์œผ๋กœ ๋ฆฌ๋””๋ ‰์…˜ํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค? ์šฉ์ดํ•˜๊ฒŒ! Chrome ๋ธŒ๋ผ์šฐ์ €์šฉ ๋ณ„๋„ ๋ฒ„์ „์ด ํ•„์š”ํ•ฉ๋‹ˆ๊นŒ? ๊ดœ์ฐฎ์•„์š”! ๊ฑฐ์˜ ๋ชจ๋“  ํŠน์„ฑ์— ๋”ฐ๋ผ ํŠธ๋ž˜ํ”ฝ์„ ๋ผ์šฐํŒ…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ง์ ‘ ํ•ด๋ณด๊ธฐ

Istio, Kubernetes ๋ฐ OpenShift์— ๋Œ€ํ•ด ์ฝ๋Š” ๊ฒƒ๋„ ์ค‘์š”ํ•˜์ง€๋งŒ ๋ชจ๋“  ๊ฒƒ์„ ์ง์ ‘ ๋งŒ์ ธ๋ณด๋Š” ๊ฒƒ์€ ์–ด๋–จ๊นŒ์š”? ํŒ€ Red Hat ๊ฐœ๋ฐœ์ž ํ”„๋กœ๊ทธ๋žจ ์ด๋Ÿฌํ•œ ๊ธฐ์ˆ ์„ ์ตœ๋Œ€ํ•œ ๋นจ๋ฆฌ ์ตํžˆ๋Š” ๋ฐ ๋„์›€์ด ๋˜๋Š” ์ž์„ธํ•œ ๊ฐ€์ด๋“œ(์˜๋ฌธ)๋ฅผ ์ค€๋น„ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋งค๋‰ด์–ผ ์—ญ์‹œ 100% ์˜คํ”ˆ์†Œ์Šค์ด๋ฏ€๋กœ ํผ๋ธ”๋ฆญ ๋„๋ฉ”์ธ์— ๊ฒŒ์‹œ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ํŒŒ์ผ์€ macOS, Linux ๋ฐ Windows์—์„œ ์ž‘๋™ํ•˜๋ฉฐ ์†Œ์Šค ์ฝ”๋“œ๋Š” Java ๋ฐ node.js ๋ฒ„์ „์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(๋‹ค๋ฅธ ์–ธ์–ด ๋ฒ„์ „๋„ ๊ณง ์ถœ์‹œ ์˜ˆ์ •). ๋ธŒ๋ผ์šฐ์ €์—์„œ ํ•ด๋‹น Git ์ €์žฅ์†Œ๋ฅผ ์—ฝ๋‹ˆ๋‹ค. Red Hat ๊ฐœ๋ฐœ์ž ๋ฐ๋ชจ.

๋‹ค์Œ ํฌ์ŠคํŠธ: ์šฐ๋ฆฌ๋Š” ๋ฌธ์ œ๋ฅผ ์•„๋ฆ„๋‹ต๊ฒŒ ํ•ด๊ฒฐํ•ฉ๋‹ˆ๋‹ค

์˜ค๋Š˜์€ Istio ๋ผ์šฐํŒ… ๊ทœ์น™์ด ๋ฌด์—‡์„ ํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ์‚ดํŽด๋ณด์•˜์Šต๋‹ˆ๋‹ค. ์ด์ œ ๋™์ผํ•œ ๊ฒƒ์„ ์ƒ์ƒํ•ด ๋ณด์‹ญ์‹œ์˜ค. ๋‹จ, ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ์™€ ๊ด€๋ จ๋œ ๊ฒฝ์šฐ์—๋งŒ ํ•ด๋‹น๋ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ๋ฐ”๋กœ ๋‹ค์Œ ๊ฒŒ์‹œ๋ฌผ์—์„œ ์ด์•ผ๊ธฐํ•  ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : habr.com

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€