Istio ์„œ๋น„์Šค ๋ฉ”์‹œ ์‹œ๋ฆฌ์ฆˆ ๊ฒŒ์‹œ๋ฌผ

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

Istio ์„œ๋น„์Šค ๋ฉ”์‹œ ์‹œ๋ฆฌ์ฆˆ ๊ฒŒ์‹œ๋ฌผ

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- ํ•œ ๊ณณ์— ์œ„์น˜ํ•œ ์ปจํ…Œ์ด๋„ˆ Kubernetes-pod๋Š” ์ œ์–ด๋œ ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•˜๊ณ , ์ฃผ์–ด์ง„ ๊ตฌ์„ฑ์— ๋”ฐ๋ผ ๊ธฐ๋Šฅ๊ณผ ์ •๋ณด๋ฅผ ์ฃผ์ž…ํ•˜๊ณ  ์ถ”์ถœํ•ฉ๋‹ˆ๋‹ค. ๊ฐ•์กฐํ•˜์ž๋ฉด, ์ด๊ฒƒ์€ ์—ฌ๋Ÿฌ๋ถ„์˜ ๊ตฌ์„ฑ์ด๋ฉฐ ์—ฌ๋Ÿฌ๋ถ„์˜ ์ฝ”๋“œ ์™ธ๋ถ€์— ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ ์ฝ”๋“œ๊ฐ€ ํ›จ์”ฌ ๊ฐ„๋‹จํ•˜๊ณ  ์งง์•„์ง‘๋‹ˆ๋‹ค.

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

์„œ๋น„์Šค ๊ทธ๋ฆฌ๋“œ

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

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

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

Istio ์„œ๋น„์Šค ๋ฉ”์‹œ ์‹œ๋ฆฌ์ฆˆ ๊ฒŒ์‹œ๋ฌผ

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

๊ทธ๋ฆฌ๊ณ  ์šฐ๋ฆฌ๋Š” ์ด์— ๋Œ€ํ•ด ๋น„์‹ผ ๋Œ€๊ฐ€๋ฅผ ์น˜๋Ÿฌ์•ผ ํ• ๊นŒ์š”?

๋ณ„๋ง์”€์„์š”. Istio๋Š” ๋งค์šฐ ๋น ๋ฅด๋ฉฐ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ž‘์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. Go ๊ทธ๋ฆฌ๊ณ  ์˜ค๋ฒ„ํ—ค๋“œ๋„ ๊ฑฐ์˜ ๋ฐœ์ƒํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ, ์˜จ๋ผ์ธ ์ƒ์‚ฐ์„ฑ์˜ ์†์‹ค ๊ฐ€๋Šฅ์„ฑ์€ ๊ฐœ๋ฐœ์ž ์ƒ์‚ฐ์„ฑ์˜ ์ฆ๊ฐ€๋กœ ์ƒ์‡„๋ฉ๋‹ˆ๋‹ค. ์ ์–ด๋„ ์ด๋ก ์ƒ์œผ๋กœ๋Š” ๊ฐœ๋ฐœ์ž์˜ ์‹œ๊ฐ„์€ ์†Œ์ค‘ํ•˜๋‹ค๋Š” ๊ฒƒ์„ ๊ธฐ์–ตํ•˜์„ธ์š”. ์†Œํ”„ํŠธ์›จ์–ด ๋น„์šฉ ์ธก๋ฉด์—์„œ 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์™€ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์•„ํ‚คํ…์ฒ˜์—์„œ์˜ ์—ญํ• 
  • Istio๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋‹ค์Œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ฉ๋‹ˆ๋‹ค.
    • ๊ฒฐํ•จ ํ—ˆ์šฉ;
    • ๋ผ์šฐํŒ…;
    • ํ˜ผ๋ˆ ํ…Œ์ŠคํŠธ;
    • ๋ณด์•ˆ;
    • ์ถ”์ , ๋ฉ”ํŠธ๋ฆญ ๋ฐ Grafana๋ฅผ ์‚ฌ์šฉํ•œ ์›๊ฒฉ ์ธก์ • ์ˆ˜์ง‘.

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

์„œ๋น„์Šค ๋ฉ”์‹œ์™€ Istio ์‹œ๋ฆฌ์ฆˆ

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

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

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

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

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

์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ๊ธฐ๋ณธ๊ฐ’: ์‚ฌ์†Œํ•œ '50/50'

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

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

Istio ์„œ๋น„์Šค ๋ฉ”์‹œ ์‹œ๋ฆฌ์ฆˆ ๊ฒŒ์‹œ๋ฌผ

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

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

Istio ์„œ๋น„์Šค ๋ฉ”์‹œ ์‹œ๋ฆฌ์ฆˆ ๊ฒŒ์‹œ๋ฌผ

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

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

Istio ์„œ๋น„์Šค ๋ฉ”์‹œ ์‹œ๋ฆฌ์ฆˆ ๊ฒŒ์‹œ๋ฌผ

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

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

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

Istio ์„œ๋น„์Šค ๋ฉ”์‹œ ์‹œ๋ฆฌ์ฆˆ ๊ฒŒ์‹œ๋ฌผ

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

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

Istio ์„œ๋น„์Šค ๋ฉ”์‹œ ์‹œ๋ฆฌ์ฆˆ ๊ฒŒ์‹œ๋ฌผ

์ด์ œ ๋„ˆ

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

๊ทธ๋ฆฌ๊ณ  ๊ธฐ์–ตํ•˜์„ธ์š”, Ops์ด์ง€ Dev๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค.

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

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

์ƒ์ƒ๋ ฅ์„ ์ผœ์„ธ์š”

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

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

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

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

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

์ถœ์ฒ˜ : habr.com

DDoS ๋ณดํ˜ธ, VPS VDS ์„œ๋ฒ„๊ฐ€ ์žˆ๋Š” ์‚ฌ์ดํŠธ๋ฅผ ์œ„ํ•œ ์•ˆ์ •์ ์ธ ํ˜ธ์ŠคํŒ… ๊ตฌ์ž… ๐Ÿ”ฅ DDoS ๊ณต๊ฒฉ ๋ฐฉ์ง€ ๊ธฐ๋Šฅ์ด ํƒ‘์žฌ๋œ ์•ˆ์ •์ ์ธ ์›น์‚ฌ์ดํŠธ ํ˜ธ์ŠคํŒ…, VPS ๋ฐ VDS ์„œ๋ฒ„๋ฅผ ๊ตฌ๋งคํ•˜์„ธ์š” | ProHoster