ํ”„๋กœ๋•์…˜ ํ™˜๊ฒฝ์—์„œ Kubernetes๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Istio๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. 1 ๋ถ€

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

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

ํ”„๋กœ๋•์…˜ ํ™˜๊ฒฝ์—์„œ Kubernetes๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Istio๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. 1 ๋ถ€

์šด์˜ ์›์น™

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

ํ”„๋กœ๋•์…˜ ํ™˜๊ฒฝ์—์„œ Kubernetes๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Istio๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. 1 ๋ถ€

ํŒŒ์ผ๋Ÿฟ์€ ํด๋Ÿฌ์Šคํ„ฐ์— ์žˆ๋Š” ์„œ๋น„์Šค, ์—”๋“œํฌ์ธํŠธ ๋ฐ ๋ผ์šฐํŒ… ๊ทœ์น™(์˜ˆ: ์นด๋‚˜๋ฆฌ์•„ ๋ฐฐํฌ ๊ทœ์น™ ๋˜๋Š” ํšŒ๋กœ ์ฐจ๋‹จ๊ธฐ ๊ทœ์น™)์— ๋Œ€ํ•œ ๋ชจ๋“  ์ •๋ณด๋ฅผ ๋ฐฐํฌํ•˜๋Š” ์ฃผ์š” ์ œ์–ด ๊ตฌ์„ฑ ์š”์†Œ์ž…๋‹ˆ๋‹ค.

Mixer๋Š” ๋ฉ”ํŠธ๋ฆญ, ๋กœ๊ทธ ๋ฐ ๋„คํŠธ์›Œํฌ ์ƒํ˜ธ ์ž‘์šฉ์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์ˆ˜์ง‘ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š” ์„ ํƒ์  ์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ ๊ตฌ์„ฑ ์š”์†Œ์ž…๋‹ˆ๋‹ค. ๋˜ํ•œ ์ •์ฑ… ๊ทœ์น™ ์ค€์ˆ˜ ๋ฐ ์†๋„ ์ œํ•œ ์ค€์ˆ˜๋ฅผ ๋ชจ๋‹ˆํ„ฐ๋งํ•ฉ๋‹ˆ๋‹ค.

๋ฐ์ดํ„ฐ ํ‰๋ฉด์€ ์‚ฌ์ด๋“œ์นด ํ”„๋ก์‹œ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ตฌํ˜„๋ฉ๋‹ˆ๋‹ค. ๊ฐ•๋ ฅํ•จ์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์‚ฌ์ ˆ ๋Œ€๋ฆฌ์ธ. nginx(nginmesh)์™€ ๊ฐ™์€ ๋‹ค๋ฅธ ๊ตฌํ˜„์œผ๋กœ ๋Œ€์ฒดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Istio๊ฐ€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ์™„์ „ํžˆ ํˆฌ๋ช…ํ•˜๊ฒŒ ์ž‘๋™ํ•˜๊ธฐ ์œ„ํ•ด ์ž๋™ ์ฃผ์ž… ์‹œ์Šคํ…œ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ตœ์‹  ๊ตฌํ˜„์€ Kubernetes 1.9+ ๋ฒ„์ „(๋ณ€ํ˜• ํ—ˆ์šฉ ์›นํ›…)์— ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค. Kubernetes ๋ฒ„์ „ 1.7, 1.8์˜ ๊ฒฝ์šฐ Initializer๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์‚ฌ์ด๋“œ์นด ์ปจํ…Œ์ด๋„ˆ๋Š” ํด๋Ÿฌ์Šคํ„ฐ์—์„œ ๋ฐœ์ƒํ•˜๋Š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ์— ๋Œ€ํ•ด ํ‘ธ์‹œ ๋ชจ๋ธ์„ ์ตœ์ ํ™”ํ•  ์ˆ˜ ์žˆ๋Š” GRPC ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•˜์—ฌ ํŒŒ์ผ๋Ÿฟ์— ์—ฐ๊ฒฐ๋ฉ๋‹ˆ๋‹ค. GRPC๋Š” ๋ฒ„์ „ 1.6๋ถ€ํ„ฐ Envoy์—์„œ ์‚ฌ์šฉ๋˜์—ˆ๊ณ  Istio์—์„œ๋Š” ๋ฒ„์ „ 0.8๋ถ€ํ„ฐ ์‚ฌ์šฉ๋˜์—ˆ์œผ๋ฉฐ ์‹œ์ž‘ ์˜ต์…˜์„ ๊ตฌ์„ฑํ•˜๋Š” envoy์— ๋Œ€ํ•œ golang ๋ž˜ํผ์ธ ํŒŒ์ผ๋Ÿฟ ์—์ด์ „ํŠธ์ž…๋‹ˆ๋‹ค.

ํŒŒ์ผ๋Ÿฟ๊ณผ ๋ฏน์„œ๋Š” ์™„์ „ํžˆ ์ƒํƒœ ๋น„์ €์žฅ ๊ตฌ์„ฑ ์š”์†Œ์ด๋ฉฐ ๋ชจ๋“  ์ƒํƒœ๋Š” ๋ฉ”๋ชจ๋ฆฌ์— ๋ณด๊ด€๋ฉ๋‹ˆ๋‹ค. ์ด์— ๋Œ€ํ•œ ๊ตฌ์„ฑ์€ etcd์— ์ €์žฅ๋˜๋Š” Kubernetes ์‚ฌ์šฉ์ž ์ง€์ • ๋ฆฌ์†Œ์Šค ํ˜•์‹์œผ๋กœ ์„ค์ •๋ฉ๋‹ˆ๋‹ค.
Istio-agent๋Š” ํŒŒ์ผ๋Ÿฟ์˜ ์ฃผ์†Œ๋ฅผ ๊ฐ€์ ธ์™€ GRPC ์ŠคํŠธ๋ฆผ์„ ์—ฝ๋‹ˆ๋‹ค.

๋‚ด๊ฐ€ ๋งํ–ˆ๋“ฏ์ด Istio๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ์™„์ „ํžˆ ํˆฌ๋ช…ํ•œ ๋ชจ๋“  ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค. ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  1. ์ƒˆ ๋ฒ„์ „์˜ ์„œ๋น„์Šค๋ฅผ ๋ฐฐํฌํ•ฉ๋‹ˆ๋‹ค.
  2. ์‚ฌ์ด๋“œ์นด ์ปจํ…Œ์ด๋„ˆ ์ฃผ์ž… ๋ฐฉ์‹์— ๋”ฐ๋ผ ๊ตฌ์„ฑ ์ ์šฉ ๋‹จ๊ณ„์—์„œ istio-init ์ปจํ…Œ์ด๋„ˆ์™€ istio-agent ์ปจํ…Œ์ด๋„ˆ(envoy)๊ฐ€ ์ถ”๊ฐ€๋˜๊ฑฐ๋‚˜ ์ด๋ฏธ ์ˆ˜๋™์œผ๋กœ Kubernetes Pod ์—”ํ‹ฐํ‹ฐ์˜ ๋””์Šคํฌ๋ฆฝ์…˜์— ์‚ฝ์ž…๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  3. istio-init ์ปจํ…Œ์ด๋„ˆ๋Š” ํฌ๋“œ์— iptables ๊ทœ์น™์„ ์ ์šฉํ•˜๋Š” ์Šคํฌ๋ฆฝํŠธ์ž…๋‹ˆ๋‹ค. istio-agent ์ปจํ…Œ์ด๋„ˆ์—์„œ ๋ž˜ํ•‘ํ•  ํŠธ๋ž˜ํ”ฝ์„ ๊ตฌ์„ฑํ•˜๋Š” ๋‘ ๊ฐ€์ง€ ์˜ต์…˜์ด ์žˆ์Šต๋‹ˆ๋‹ค. iptables ๋ฆฌ๋””๋ ‰์…˜ ๊ทœ์น™ ์‚ฌ์šฉ ๋˜๋Š” ํŠธํ”„๋ก์‹œ. ์ž‘์„ฑ ๋‹น์‹œ ๊ธฐ๋ณธ ์ ‘๊ทผ ๋ฐฉ์‹์€ ๋ฆฌ๋””๋ ‰์…˜ ๊ทœ์น™์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. istio-init์—์„œ ๊ฐ€๋กœ์ฑ„์„œ istio-agent๋กœ ์ „์†กํ•ด์•ผ ํ•˜๋Š” ํŠธ๋ž˜ํ”ฝ์„ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๋“ค์–ด์˜ค๋Š” ๋ชจ๋“  ํŠธ๋ž˜ํ”ฝ๊ณผ ๋‚˜๊ฐ€๋Š” ๋ชจ๋“  ํŠธ๋ž˜ํ”ฝ์„ ๊ฐ€๋กœ์ฑ„๋ ค๋ฉด ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์„ค์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. -i ะธ -b ์˜๋ฏธ์ƒ *. ์ฐจ๋‹จํ•  ํŠน์ • ํฌํŠธ๋ฅผ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํŠน์ • ์„œ๋ธŒ๋„ท์„ ๊ฐ€๋กœ์ฑ„์ง€ ์•Š์œผ๋ ค๋ฉด ํ”Œ๋ž˜๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. -x.
  4. ์ดˆ๊ธฐํ™” ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์‹คํ–‰๋œ ํ›„ ํŒŒ์ผ๋Ÿฟ ์—์ด์ „ํŠธ(ํŠน์‚ฌ)๋ฅผ ํฌํ•จํ•˜์—ฌ ๊ธฐ๋ณธ ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค. GRPC๋ฅผ ํ†ตํ•ด ์ด๋ฏธ ๋ฐฐํฌ๋œ ํŒŒ์ผ๋Ÿฟ์— ์—ฐ๊ฒฐํ•˜๊ณ  ํด๋Ÿฌ์Šคํ„ฐ์˜ ๋ชจ๋“  ๊ธฐ์กด ์„œ๋น„์Šค ๋ฐ ๋ผ์šฐํŒ… ์ •์ฑ…์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ๋ฐ›์Šต๋‹ˆ๋‹ค. ๋ฐ›์€ ๋ฐ์ดํ„ฐ์— ๋”ฐ๋ผ ๊ทธ๋Š” ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ๊ตฌ์„ฑํ•˜๊ณ  ์ด๋ฅผ Kubernetes ํด๋Ÿฌ์Šคํ„ฐ์— ์žˆ๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์—”๋“œํฌ์ธํŠธ์— ์ง์ ‘ ํ• ๋‹นํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ์ค‘์š”ํ•œ ์ ์— ์œ ์˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. envoy๋Š” ์ˆ˜์‹ ์„ ์‹œ์ž‘ํ•˜๋Š” ์ˆ˜์‹ ๊ธฐ(IP, ํฌํŠธ ์Œ)๋ฅผ ๋™์ ์œผ๋กœ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์š”์ฒญ์ด ํŒŸ(Pod)์— ์ž…๋ ฅ๋˜๊ณ  ์‚ฌ์ด๋“œ์นด์˜ ๋ฆฌ๋””๋ ‰์…˜ iptables ๊ทœ์น™์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฆฌ๋””๋ ‰์…˜๋˜๋ฉด Envoy๋Š” ์ด๋ฏธ ์ด๋Ÿฌํ•œ ์—ฐ๊ฒฐ์„ ์„ฑ๊ณต์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๊ณ  ํŠธ๋ž˜ํ”ฝ์„ ์ถ”๊ฐ€๋กœ ํ”„๋ก์‹œํ•  ์œ„์น˜๋ฅผ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ์ด ๋‹จ๊ณ„์—์„œ๋Š” ๋‚˜์ค‘์— ์‚ดํŽด๋ณผ Mixer๋กœ ์ •๋ณด๊ฐ€ ์ „์†ก๋˜๊ณ  ์ถ”์  ์ŠคํŒฌ์ด ์ „์†ก๋ฉ๋‹ˆ๋‹ค.

๊ฒฐ๊ณผ์ ์œผ๋กœ ์šฐ๋ฆฌ๋Š” ํ•œ ์ง€์ (ํŒŒ์ผ๋Ÿฟ)์—์„œ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ๋Š” ์‚ฌ์ ˆ ํ”„๋ก์‹œ ์„œ๋ฒ„์˜ ์ „์ฒด ๋„คํŠธ์›Œํฌ๋ฅผ ์–ป์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  ์ธ๋ฐ”์šด๋“œ ๋ฐ ์•„์›ƒ๋ฐ”์šด๋“œ ์š”์ฒญ์€ ํŠน์‚ฌ๋ฅผ ๊ฑฐ์นฉ๋‹ˆ๋‹ค. ๋˜ํ•œ TCP ํŠธ๋ž˜ํ”ฝ๋งŒ ์ฐจ๋‹จ๋ฉ๋‹ˆ๋‹ค. ์ฆ‰, Kubernetes ์„œ๋น„์Šค IP๋Š” ๋ณ€๊ฒฝ ์—†์ด UDP๋ฅผ ํ†ตํ•ด kube-dns๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ™•์ธ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ํ•ด๊ฒฐ ํ›„ ๋‚˜๊ฐ€๋Š” ์š”์ฒญ์„ ๊ฐ€๋กœ์ฑ„์„œ envoy๊ฐ€ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค. envoy๋Š” ์ด๋ฏธ ์š”์ฒญ์„ ๋ณด๋‚ผ ๋์ ์„ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค(๋˜๋Š” ์•ก์„ธ์Šค ์ •์ฑ… ๋˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ํšŒ๋กœ ์ฐจ๋‹จ๊ธฐ์˜ ๊ฒฝ์šฐ ๋ณด๋‚ด์ง€ ์•Š์Œ).

์šฐ๋ฆฌ๋Š” Pilot์„ ์•Œ์•„๋ƒˆ๊ณ  ์ด์ œ Mixer๊ฐ€ ์–ด๋–ป๊ฒŒ ์ž‘๋™ํ•˜๊ณ  ์™œ ํ•„์š”ํ•œ์ง€ ์ดํ•ดํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋‹น์‹ ์€ ๊ทธ๊ฒƒ์— ๋Œ€ํ•œ ๊ณต์‹ ๋ฌธ์„œ๋ฅผ ์ฝ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค ์—ฌ๊ธฐ์—.

ํ˜„์žฌ ํ˜•ํƒœ์˜ ๋ฏน์„œ๋Š” istio-telemetry, istio-policy(๋ฒ„์ „ 0.8 ์ด์ „์—๋Š” ํ•˜๋‚˜์˜ istio-mixer ๊ตฌ์„ฑ ์š”์†Œ์˜€์Šต๋‹ˆ๋‹ค)์˜ ๋‘ ๊ฐ€์ง€ ๊ตฌ์„ฑ ์š”์†Œ๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค. ๋‘˜ ๋‹ค ๋ฏน์„œ์ด๋ฉฐ ๊ฐ๊ฐ ์ž์ฒด ์ž‘์—…์„ ๋‹ด๋‹นํ•ฉ๋‹ˆ๋‹ค. Istio ์›๊ฒฉ ์ธก์ •์€ GRPC๋ฅผ ํ†ตํ•ด ์‚ฌ์ด๋“œ์นด ๋ณด๊ณ ์„œ ์ปจํ…Œ์ด๋„ˆ์—์„œ ๋ˆ„๊ฐ€ ์–ด๋–ค ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์–ด๋””๋กœ ๊ฐ€๋Š”์ง€์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์ˆ˜์‹ ํ•ฉ๋‹ˆ๋‹ค. Istio-policy๋Š” Policy ๊ทœ์น™์ด ์ถฉ์กฑ๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด Check ์š”์ฒญ์„ ์ˆ˜๋ฝํ•ฉ๋‹ˆ๋‹ค. ๋ฌผ๋ก  ์ •์ฑ… ๊ฒ€์‚ฌ๋Š” ๋ชจ๋“  ์š”์ฒญ์— โ€‹โ€‹๋Œ€ํ•ด ์ˆ˜ํ–‰๋˜์ง€๋Š” ์•Š์ง€๋งŒ ์ผ์ • ์‹œ๊ฐ„ ๋™์•ˆ ํด๋ผ์ด์–ธํŠธ(์‚ฌ์ด๋“œ์นด)์— ์บ์‹œ๋ฉ๋‹ˆ๋‹ค. ๋ณด๊ณ ์„œ ํ™•์ธ์€ ์ผ๊ด„ ์š”์ฒญ์œผ๋กœ ์ „์†ก๋ฉ๋‹ˆ๋‹ค. ๋‚˜์ค‘์— ๊ตฌ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•๊ณผ ์–ด๋–ค ๋งค๊ฐœ ๋ณ€์ˆ˜๋ฅผ ๋ณด๋‚ด์•ผ ํ•˜๋Š”์ง€ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

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

ํ”„๋กœ๋•์…˜ ํ™˜๊ฒฝ์—์„œ Kubernetes๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Istio๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. 1 ๋ถ€

์š”์•ฝํ•˜๋ฉด istio-telemetry ์ž‘์—… ๋ฐฉ์‹์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  1. ์„œ๋น„์Šค 1์€ ์„œ๋น„์Šค 2์— ์š”์ฒญ์„ ๋ณด๋ƒ…๋‹ˆ๋‹ค.
  2. ์„œ๋น„์Šค 1์„ ๋– ๋‚  ๋•Œ ์š”์ฒญ์€ ์ž์ฒด ์‚ฌ์ด๋“œ์นด์— ๋ž˜ํ•‘๋ฉ๋‹ˆ๋‹ค.
  3. Sidecar envoy๋Š” ์š”์ฒญ์ด ์„œ๋น„์Šค 2๋กœ ์–ด๋–ป๊ฒŒ ๊ฐ€๋Š”์ง€ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๊ณ  ํ•„์š”ํ•œ ์ •๋ณด๋ฅผ ์ค€๋น„ํ•ฉ๋‹ˆ๋‹ค.
  4. ๊ทธ๋Ÿฐ ๋‹ค์Œ ๋ณด๊ณ  ์š”์ฒญ์„ ์‚ฌ์šฉํ•˜์—ฌ istio-telemetry๋กœ ๋ณด๋ƒ…๋‹ˆ๋‹ค.
  5. Istio-telemetry๋Š” ์ด ๋ณด๊ณ ์„œ๋ฅผ ๋ฐฑ์—”๋“œ๋กœ ๋ณด๋‚ผ์ง€ ์—ฌ๋ถ€, ๋ณด๋‚ผ ๋ฐ์ดํ„ฐ ๋ฐ ๋ณด๋‚ผ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค.
  6. Istio-telemetry๋Š” ํ•„์š”ํ•œ ๊ฒฝ์šฐ ๋ณด๊ณ ์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐฑ์—”๋“œ๋กœ ๋ณด๋ƒ…๋‹ˆ๋‹ค.

์ด์ œ ์ฃผ์š” ๊ตฌ์„ฑ ์š”์†Œ(ํŒŒ์ผ๋Ÿฟ ๋ฐ ์‚ฌ์ด๋“œ์นด ํŠน์‚ฌ)๋กœ๋งŒ ๊ตฌ์„ฑ๋œ Istio๋ฅผ ์‹œ์Šคํ…œ์— ๋ฐฐํฌํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

๋จผ์ € ํŒŒ์ผ๋Ÿฟ์ด ์ฝ๋Š” ๊ธฐ๋ณธ ๊ตฌ์„ฑ(๋ฉ”์‹œ)์„ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

apiVersion: v1
kind: ConfigMap
metadata:
  name: istio
  namespace: istio-system
  labels:
    app: istio
    service: istio
data:
  mesh: |-

    # ะฟะพะบะฐ ั‡ั‚ะพ ะฝะต ะฒะบะปัŽั‡ะฐะตะผ ะพั‚ะฟั€ะฐะฒะบัƒ tracing ะธะฝั„ะพั€ะผะฐั†ะธะธ (pilot ะฝะฐัั‚ั€ะพะธั‚ envoyโ€™ะธ ั‚ะฐะบะธะผ ะพะฑั€ะฐะทะพะผ, ั‡ั‚ะพ ะพั‚ะฟั€ะฐะฒะบะฐ ะฝะต ะฑัƒะดะตั‚ ะฟั€ะพะธัั…ะพะดะธั‚ัŒ)
    enableTracing: false

    # ะฟะพะบะฐ ั‡ั‚ะพ ะฝะต ัƒะบะฐะทั‹ะฒะฐะตะผ mixer endpointโ€™ั‹, ั‡ั‚ะพะฑั‹ sidecar ะบะพะฝั‚ะตะนะฝะตั€ั‹ ะฝะต ะพั‚ะฟั€ะฐะฒะปัะปะธ ะธะฝั„ะพั€ะผะฐั†ะธัŽ ั‚ัƒะดะฐ
    #mixerCheckServer: istio-policy.istio-system:15004
    #mixerReportServer: istio-telemetry.istio-system:15004

    # ัั‚ะฐะฒะธะผ ะฒั€ะตะผะตะฝะฝะพะน ะฟั€ะพะผะตะถัƒั‚ะพะบ, ั ะบะพั‚ะพั€ั‹ะผ ะฑัƒะดะตั‚ envoy ะฟะตั€ะตัะฟั€ะฐัˆะธะฒะฐั‚ัŒ Pilot (ัั‚ะพ ะดะปั ัั‚ะฐั€ะพะน ะฒะตั€ัะธะธ envoy proxy)
    rdsRefreshDelay: 5s

    # default ะบะพะฝั„ะธะณัƒั€ะฐั†ะธั ะดะปั envoy sidecar
    defaultConfig:
      # ะฐะฝะฐะปะพะณะธั‡ะฝะพ ะบะฐะบ rdsRefreshDelay
      discoveryRefreshDelay: 5s

      # ะพัั‚ะฐะฒะปัะตะผ ะฟะพ ัƒะผะพะปั‡ะฐะฝะธัŽ (ะฟัƒั‚ัŒ ะบ ะบะพะฝั„ะธะณัƒั€ะฐั†ะธะธ ะธ ะฑะธะฝะฐั€ัŽ envoy)
      configPath: "/etc/istio/proxy"
      binaryPath: "/usr/local/bin/envoy"

      # ะดะตั„ะพะปั‚ะฝะพะต ะธะผั ะทะฐะฟัƒั‰ะตะฝะฝะพะณะพ sidecar ะบะพะฝั‚ะตะนะฝะตั€ะฐ (ะธัะฟะพะปัŒะทัƒะตั‚ัั, ะฝะฐะฟั€ะธะผะตั€, ะฒ ะธะผะตะฝะฐั… ัะตั€ะฒะธัะฐ ะฟั€ะธ ะพั‚ะฟั€ะฐะฒะบะต tracing spanโ€™ะพะฒ)
      serviceCluster: istio-proxy

      # ะฒั€ะตะผั, ะบะพั‚ะพั€ะพะต ะฑัƒะดะตั‚ ะถะดะฐั‚ัŒ envoy ะดะพ ั‚ะพะณะพ, ะบะฐะบ ะพะฝ ะฟั€ะธะฝัƒะดะธั‚ะตะปัŒะฝะพ ะทะฐะฒะตั€ัˆะธั‚ ะฒัะต ัƒัั‚ะฐะฝะพะฒะปะตะฝะฝั‹ะต ัะพะตะดะธะฝะตะฝะธั
      drainDuration: 45s
      parentShutdownDuration: 1m0s

      # ะฟะพ ัƒะผะพะปั‡ะฐะฝะธัŽ ะธัะฟะพะปัŒะทัƒัŽั‚ัั REDIRECT ะฟั€ะฐะฒะธะปะฐ iptables. ะœะพะถะฝะพ ะธะทะผะตะฝะธั‚ัŒ ะฝะฐ TPROXY.
      #interceptionMode: REDIRECT

      # ะŸะพั€ั‚, ะฝะฐ ะบะพั‚ะพั€ะพะผ ะฑัƒะดะตั‚ ะทะฐะฟัƒั‰ะตะฝะฐ admin ะฟะฐะฝะตะปัŒ ะบะฐะถะดะพะณะพ sidecar ะบะพะฝั‚ะตะนะฝะตั€ะฐ (envoy)
      proxyAdminPort: 15000

      # ะฐะดั€ะตั, ะฟะพ ะบะพั‚ะพั€ะพะผัƒ ะฑัƒะดัƒั‚ ะพั‚ะฟั€ะฐะฒะปัั‚ัŒัั traceโ€™ั‹ ะฟะพ zipkin ะฟั€ะพั‚ะพะบะพะปัƒ (ะฒ ะฝะฐั‡ะฐะปะต ะผั‹ ะพั‚ะบะปัŽั‡ะธะปะธ ัะฐะผัƒ ะพั‚ะฟั€ะฐะฒะบัƒ, ะฟะพัั‚ะพะผัƒ ัั‚ะพ ะฟะพะปะต ัะตะนั‡ะฐั ะฝะต ะฑัƒะดะตั‚ ะธัะฟะพะปัŒะทะพะฒะฐั‚ัŒัั)
      zipkinAddress: tracing-collector.tracing:9411

      # statsd ะฐะดั€ะตั ะดะปั ะพั‚ะฟั€ะฐะฒะบะธ ะผะตั‚ั€ะธะบ envoy ะบะพะฝั‚ะตะนะฝะตั€ะพะฒ (ะพั‚ะบะปัŽั‡ะฐะตะผ)
      # statsdUdpAddress: aggregator:8126

      # ะฒั‹ะบะปัŽั‡ะฐะตะผ ะฟะพะดะดะตั€ะถะบัƒ ะพะฟั†ะธะธ Mutual TLS
      controlPlaneAuthPolicy: NONE

      # ะฐะดั€ะตั, ะฝะฐ ะบะพั‚ะพั€ะพะผ ะฑัƒะดะตั‚ ัะปัƒัˆะฐั‚ัŒ istio-pilot ะดะปั ั‚ะพะณะพ, ั‡ั‚ะพะฑั‹ ัะพะพะฑั‰ะฐั‚ัŒ ะธะฝั„ะพั€ะผะฐั†ะธัŽ ะพ service discovery ะฒัะตะผ sidecar ะบะพะฝั‚ะตะนะฝะตั€ะฐะผ
      discoveryAddress: istio-pilot.istio-system:15007

๋ชจ๋“  ์ฃผ์š” ์ œ์–ด ๊ตฌ์„ฑ ์š”์†Œ(์ œ์–ด ํ‰๋ฉด)๋Š” Kubernetes์˜ ๋„ค์ž„์ŠคํŽ˜์ด์Šค istio-system์— ์žˆ์Šต๋‹ˆ๋‹ค.

์ตœ์†Œํ•œ ํŒŒ์ผ๋Ÿฟ๋งŒ ๋ฐฐํฌํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด ์šฐ๋ฆฌ๋Š” ๊ทธ๋Ÿฐ ๊ตฌ์„ฑ.

๊ทธ๋ฆฌ๊ณ  ์ปจํ…Œ์ด๋„ˆ์˜ ์ฃผ์ž… ์‚ฌ์ด๋“œ์นด๋ฅผ ์ˆ˜๋™์œผ๋กœ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค.

์ปจํ…Œ์ด๋„ˆ ์ดˆ๊ธฐํ™”:

initContainers:
 - name: istio-init
   args:
   - -p
   - "15001"
   - -u
   - "1337"
   - -m
   - REDIRECT
   - -i
   - '*'
   - -b
   - '*'
   - -d
   - ""
   image: istio/proxy_init:1.0.0
   imagePullPolicy: IfNotPresent
   resources:
     limits:
       memory: 128Mi
   securityContext:
     capabilities:
       add:
       - NET_ADMIN

๊ทธ๋ฆฌ๊ณ  ์‚ฌ์ด๋“œ์นด:

       name: istio-proxy
       args:
         - "bash"
         - "-c"
         - |
           exec /usr/local/bin/pilot-agent proxy sidecar 
           --configPath 
           /etc/istio/proxy 
           --binaryPath 
           /usr/local/bin/envoy 
           --serviceCluster 
           service-name 
           --drainDuration 
           45s 
           --parentShutdownDuration 
           1m0s 
           --discoveryAddress 
           istio-pilot.istio-system:15007 
           --discoveryRefreshDelay 
           1s 
           --connectTimeout 
           10s 
           --proxyAdminPort 
           "15000" 
           --controlPlaneAuthPolicy 
           NONE
         env:
         - name: POD_NAME
           valueFrom:
             fieldRef:
               fieldPath: metadata.name
         - name: POD_NAMESPACE
           valueFrom:
             fieldRef:
               fieldPath: metadata.namespace
         - name: INSTANCE_IP
           valueFrom:
             fieldRef:
               fieldPath: status.podIP
         - name: ISTIO_META_POD_NAME
           valueFrom:
             fieldRef:
               fieldPath: metadata.name
         - name: ISTIO_META_INTERCEPTION_MODE
           value: REDIRECT
         image: istio/proxyv2:1.0.0
         imagePullPolicy: IfNotPresent
         resources:
           requests:
             cpu: 100m
             memory: 128Mi
           limits:
             memory: 2048Mi
         securityContext:
           privileged: false
           readOnlyRootFilesystem: true
           runAsUser: 1337
         volumeMounts:
         - mountPath: /etc/istio/proxy
           name: istio-envoy

๋ชจ๋“  ๊ฒƒ์„ ์„ฑ๊ณต์ ์œผ๋กœ ์‹œ์ž‘ํ•˜๋ ค๋ฉด ServiceAccount, ClusterRole, ClusterRoleBinding, CRD for Pilot์„ ์ƒ์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด์— ๋Œ€ํ•œ ์„ค๋ช…์€ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—.

๊ฒฐ๊ณผ์ ์œผ๋กœ ์‚ฌ์ด๋“œ์นด์— envoy๋ฅผ ์‚ฝ์ž…ํ•œ ์„œ๋น„์Šค๊ฐ€ ์„ฑ๊ณต์ ์œผ๋กœ ์‹œ์ž‘๋˜๊ณ  ํŒŒ์ผ๋Ÿฟ์œผ๋กœ๋ถ€ํ„ฐ ๋ชจ๋“  ๊ฒ€์ƒ‰์„ ์ˆ˜์‹ ํ•˜๊ณ  ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

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

๋˜ํ•œ Istio(์•„์ง ์‹คํ—˜์ )์—๋Š” ํด๋Ÿฌ์Šคํ„ฐ ์™ธ๋ถ€์—์„œ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ๊ณผ ์—ฌ๋Ÿฌ Kubernetes ํด๋Ÿฌ์Šคํ„ฐ ๊ฐ„์— ์„œ๋น„์Šค ๊ฒ€์ƒ‰์„ ๊ฐ์‹œํ•˜๊ณ  ๋”๋“ฌ๋Š” ๊ธฐ๋Šฅ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์— ๋Œ€ํ•ด ๋” ์ฝ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค ์—ฌ๊ธฐ์—.

๋‹ค์ค‘ ํด๋Ÿฌ์Šคํ„ฐ ์„ค์น˜์˜ ๊ฒฝ์šฐ ๋‹ค์Œ ์ œํ•œ ์‚ฌํ•ญ์— ์œ ์˜ํ•˜์‹ญ์‹œ์˜ค.

  1. ํฌ๋“œ CIDR ๋ฐ ์„œ๋น„์Šค CIDR์€ ๋ชจ๋“  ํด๋Ÿฌ์Šคํ„ฐ์—์„œ ๊ณ ์œ ํ•ด์•ผ ํ•˜๋ฉฐ ๊ฒน์น˜์ง€ ์•Š์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  2. ๋ชจ๋“  CIDR ํฌ๋“œ๋Š” ํด๋Ÿฌ์Šคํ„ฐ ๊ฐ„์˜ ๋ชจ๋“  CIDR ํฌ๋“œ์—์„œ ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  3. ๋ชจ๋“  Kubernetes API ์„œ๋ฒ„๋Š” ์„œ๋กœ ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

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

์ถœ์ฒ˜ : habr.com

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