Envoy๋กœ Cloud Service Mesh ์„ค์ • ์ค€๋น„

Cloud Service Mesh ์„ค์ •์—๋Š” ๋‹ค์Œ ๋‹จ๊ณ„๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

  1. Traffic Director API ์‚ฌ์šฉ ์„ค์ •๊ณผ Compute Engine ์‚ฌ์šฉ ์‹œ Cloud DNS ๊ตฌ์„ฑ์„ ์œ„ํ•œ ๊ถŒํ•œ ๋ถ€์—ฌ
  2. Envoy ํ”„๋ก์‹œ๋กœ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐฐํฌ
  3. ์„œ๋น„์Šค ๋ฉ”์‹œ๋ฅผ ํ†ตํ•ด ํŠธ๋ž˜ํ”ฝ์ด ์ด๋™ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๊ฒฐ์ •ํ•˜๋Š” ์„œ๋น„์Šค ๋ฐ ๋ผ์šฐํŒ… ๊ทœ์น™ ๋งŒ๋“ค๊ธฐ

์ด ๋ฌธ์„œ๋Š” ์ฒซ ๋ฒˆ์งธ ๋‹จ๊ณ„์— ๋Œ€ํ•ด ์„ค๋ช…ํ•˜๋ฉฐ ์ด์ „ API๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ์— ์ ์šฉ๋ฉ๋‹ˆ๋‹ค. ๋‘ ๋ฒˆ์งธ ๋ฐ ์„ธ ๋ฒˆ์งธ ๋‹จ๊ณ„๋Š” ์ด ๋ฌธ์„œ์˜ ๋’ท๋ถ€๋ถ„์— ์žˆ๋Š” ์„ค์ • ํ”„๋กœ์„ธ์Šค ๊ณ„์†์— ๋‚˜์—ด๋œ ํ”Œ๋žซํผ๋ณ„ ๊ฐ€์ด๋“œ์—์„œ ์„ค๋ช…๋ฉ๋‹ˆ๋‹ค.

์ด ๊ฐ€์ด๋“œ๋ฅผ ์ฝ๊ธฐ ์ „์— Cloud Service Mesh ๊ฐœ์š”๋ฅผ ์ˆ™์ง€ํ•˜์„ธ์š”. ์„œ๋น„์Šค ๋ผ์šฐํŒ… API๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ์„œ๋น„์Šค ๋ผ์šฐํŒ… API ๊ฐœ์š”๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

๊ธฐ๋ณธ ์š”๊ฑด

Cloud Service Mesh๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ€์ƒ ๋จธ์‹ (VM) ์ธ์Šคํ„ด์Šค, ์ปจํ…Œ์ด๋„ˆ ๋˜๋Š” ๋‘˜ ๋‹ค์—์„œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ ํ•จ๊ป˜ ์‹คํ–‰๋˜๋Š” Envoy ํ”„๋ก์‹œ๋ฅผ ๊ตฌ์„ฑํ•˜๋ ค๋Š” ๊ฒฝ์šฐ ๋จผ์ € ๋‹ค์Œ ํƒœ์Šคํฌ๋ฅผ ์™„๋ฃŒํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  1. ๊ฒฐ์ œ๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  2. Envoy ์„ค์น˜ ๋ฐฉ๋ฒ• ๊ฒฐ์ •์„ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค.
  3. ํ•„์ˆ˜ ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•ฉ๋‹ˆ๋‹ค.
  4. ํ”„๋กœ์ ํŠธ์— Traffic Director API๋ฅผ ์‚ฌ์šฉ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  5. Compute Engine์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ Cloud DNS API๋ฅผ ์‚ฌ์šฉ ์„ค์ •ํ•˜๊ณ  Cloud DNS๋ฅผ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค.
  6. Envoy ํ”„๋ก์‹œ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ์„œ๋น„์Šค ๊ณ„์ •์— Traffic Director API์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ๋Š” ์ถฉ๋ถ„ํ•œ ๊ถŒํ•œ์ด ์žˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

๋‹ค์Œ ์„น์…˜์—์„œ๋Š” ๊ฐ ์ž‘์—…์— ๋Œ€ํ•œ ์•ˆ๋‚ด๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

๊ฒฐ์ œ ์‚ฌ์šฉ ์„ค์ •

Google Cloud ํ”„๋กœ์ ํŠธ์— ๊ฒฐ์ œ๊ฐ€ ์‚ฌ์šฉ ์„ค์ •๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ํ”„๋กœ์ ํŠธ์˜ ๊ฒฐ์ œ ์‚ฌ์šฉ ์„ค์ •, ์‚ฌ์šฉ ์ค‘์ง€, ๋ณ€๊ฒฝ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

Envoy ์„ค์น˜ ๋ฐฉ๋ฒ• ๊ฒฐ์ •

Cloud Service Mesh๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด Envoy ํ”„๋ก์‹œ๋ฅผ ์„ค์น˜ํ•˜๊ณ  ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ธํ”„๋ผ ๋ ˆ์ด์–ด๋ฅผ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • Compute Engine์—์„œ๋Š” VM์—์„œ ์‹คํ–‰๋˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— Envoy๋ฅผ ์ž๋™์œผ๋กœ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Envoy๋ฅผ ์„ค์น˜ํ•˜๋Š” VM ํ…œํ”Œ๋ฆฟ์„ ์‚ฌ์šฉํ•˜์—ฌ Cloud Service Mesh์— ์—ฐ๊ฒฐํ•˜๊ณ  VM์˜ ๋„คํŠธ์›Œํ‚น์„ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค.

  • Google Kubernetes Engine(GKE)์—์„œ๋Š” ์„œ๋น„์Šค์˜ ํฌ๋“œ์— Envoy ์‚ฌ์ด๋“œ์นด ํ”„๋ก์‹œ๋ฅผ ์ž๋™์œผ๋กœ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํด๋Ÿฌ์Šคํ„ฐ์— Envoy ์‚ฌ์ด๋“œ์นด ํ”„๋ก์‹œ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ  Cloud Service Mesh์— ์—ฐ๊ฒฐํ•˜๊ณ  ์ปจํ…Œ์ด๋„ˆ์˜ ๋„คํŠธ์›Œํ‚น์„ ๊ตฌ์„ฑํ•˜๋Š” Envoy ์‚ฌ์ด๋“œ์นด ์ธ์ ํ„ฐ๋ฅผ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.

๋งˆ์ง€๋ง‰์œผ๋กœ Cloud Service Mesh์™€ ํ•จ๊ป˜ ์„œ๋“œ ํŒŒํ‹ฐ ์ œ๊ณต์—…์ฒด์˜ Envoy ๋ฐฐํฌ ์†”๋ฃจ์…˜์„ ์‚ฌ์šฉํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์†”๋ฃจ์…˜์˜ ํ•œ ๊ฐ€์ง€ ์˜ˆ์‹œ๋กœ Envoy ํ”„๋ก์‹œ ์„ค์น˜ ๋ฐ ์—…๋ฐ์ดํŠธ์˜ ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž ๊ธฐ๋ฐ˜ ์ ‘๊ทผ ๋ฐฉ์‹์„ ์ œ๊ณตํ•˜๋Š” GetEnvoy๋ฅผ ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Envoy ๋ฒ„์ „ ๊ด€๋ฆฌ ์ •๋ณด

Cloud Service Mesh์— ์‚ฌ์šฉํ•˜๋ ค๋ฉด Envoy ๋ฒ„์ „์ด 1.9.1 ์ด์ƒ์ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์•Œ๋ ค์ง„ ๋ณด์•ˆ ์ทจ์•ฝ์ ์„ ์™„ํ™”ํ•˜๋ ค๋ฉด ํ•ญ์ƒ ์ตœ์‹  Envoy ๋ฒ„์ „์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

์ž๋™ํ™”๋œ ๋ฐฉ๋ฒ• ์ค‘ ํ•˜๋‚˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Envoy๋ฅผ ๋ฐฐํฌํ•˜๋Š” ๊ฒฝ์šฐ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ž‘์—…์„ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

  • Compute Engine VM์— ์ž๋™ Envoy ๋ฐฐํฌ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ์„ค์น˜๋œ Envoy ๋ฒ„์ „์€ Cloud Service Mesh์™€ ์ž‘๋™ํ•˜๋Š” ๊ฒƒ์œผ๋กœ ๊ฒ€์ฆ๋œ ๋ฒ„์ „์ž…๋‹ˆ๋‹ค. ์ธ์Šคํ„ด์Šค ํ…œํ”Œ๋ฆฟ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ƒˆ VM์ด ์ƒ์„ฑ๋˜๋ฉด VM์€ ๊ฒ€์ฆ๋œ ์ตœ์‹  ๋ฒ„์ „์„ ์ˆ˜์‹ ํ•ฉ๋‹ˆ๋‹ค. ์žฅ๊ธฐ ์‹คํ–‰ VM์ด ์žˆ๋Š” ๊ฒฝ์šฐ ์ˆœ์ฐจ์  ์—…๋ฐ์ดํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ธฐ์กด VM์„ ๋Œ€์ฒดํ•˜๊ณ  ์ตœ์‹  ๋ฒ„์ „์„ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • GKE์—์„œ Envoy ์‚ฌ์ด๋“œ์นด ์ธ์ ํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ์ธ์ ํ„ฐ๋Š” Google์ด Cloud Service Mesh์™€ ์ž‘๋™ํ•˜๋Š” ๊ฒƒ์œผ๋กœ ๊ฒ€์ฆํ•œ ์ตœ์‹  ๋ฒ„์ „์˜ Envoy๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค. ์‚ฌ์ด๋“œ์นด๊ฐ€ ์›Œํฌ๋กœ๋“œ ํฌ๋“œ์™€ ํ•จ๊ป˜ ์‚ฝ์ž…๋˜๋ฉด ์ด ๋ฒ„์ „์˜ Envoy๋ฅผ ์ˆ˜์‹ ํ•ฉ๋‹ˆ๋‹ค. ๋” ์ตœ์‹  ๋ฒ„์ „์˜ Envoy๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด Envoy ์‚ฌ์ด๋“œ์นด ์ธ์ ํ„ฐ๋ฅผ ์—…๋ฐ์ดํŠธํ•˜์„ธ์š”.

ํŠน์ • Envoy ๋ฒ„์ „์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๋ฒ„์ „ ๊ธฐ๋ก์„ ์ฐธ์กฐํ•˜์„ธ์š”. ๋ณด์•ˆ ์ทจ์•ฝ์ ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๋ณด์•ˆ ๊ถŒ๊ณ ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

ํ•„์ˆ˜ IAM ๊ถŒํ•œ ๋ถ€์—ฌ

VM ์ธ์Šคํ„ด์Šค๋ฅผ ๋งŒ๋“ค๊ณ  Cloud Service Mesh ๊ตฌ์„ฑ์„ ์œ„ํ•ด ๋„คํŠธ์›Œํฌ๋ฅผ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ๋Š” ์ถฉ๋ถ„ํ•œ Identity and Access Management(IAM) ๊ถŒํ•œ์ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. Cloud Service Mesh๋ฅผ ์‚ฌ์šฉ ์„ค์ •ํ•˜๋ ค๋Š” ํ”„๋กœ์ ํŠธ์— ์†Œ์œ ์ž ๋˜๋Š” ํŽธ์ง‘์ž ํ”„๋กœ์ ํŠธ ์—ญํ• (roles/owner ๋˜๋Š” roles/editor)์ด ์žˆ์œผ๋ฉด ์˜ฌ๋ฐ”๋ฅธ ๊ถŒํ•œ์ด ์ž๋™์œผ๋กœ ๋ถ€์—ฌ๋ฉ๋‹ˆ๋‹ค.

๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ๋‹ค์Œ ํ‘œ์— ํ‘œ์‹œ๋œ ๋ชจ๋“  Compute Engine IAM ์—ญํ• ์ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์—ญํ• ์ด ์žˆ๋Š” ๊ฒฝ์šฐ Compute Engine IAM ๋ฌธ์„œ์— ์„ค๋ช…๋œ ๋Œ€๋กœ ๊ด€๋ จ ๊ถŒํ•œ๋„ ๊ฐ–๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

์ž‘์—… ํ•„์š”ํ•œ ์—ญํ• 
์„œ๋น„์Šค ๊ณ„์ •์˜ IAM ์ •์ฑ… ์„ค์ • ์„œ๋น„์Šค ๊ณ„์ • ๊ด€๋ฆฌ์ž
(roles/iam.serviceAccountAdmin)
Cloud Service Mesh๋ฅผ ์‚ฌ์šฉ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ์„œ๋น„์Šค ์‚ฌ์šฉ๋Ÿ‰ ๊ด€๋ฆฌ์ž
(roles/serviceusage.serviceUsageAdmin)
๋„คํŠธ์›Œํฌ, ์„œ๋ธŒ๋„ท, ๋ถ€ํ•˜ ๋ถ„์‚ฐ๊ธฐ ๊ตฌ์„ฑ์š”์†Œ ๋งŒ๋“ค๊ธฐ Compute ๋„คํŠธ์›Œํฌ ๊ด€๋ฆฌ์ž
(roles/compute.networkAdmin)
๋ฐฉํ™”๋ฒฝ ๊ทœ์น™ ์ถ”๊ฐ€ ๋ฐ ์‚ญ์ œ Compute ๋ณด์•ˆ ๊ด€๋ฆฌ์ž
(roles/compute.securityAdmin)
์ธ์Šคํ„ด์Šค ๋งŒ๋“ค๊ธฐ Compute ์ธ์Šคํ„ด์Šค ๊ด€๋ฆฌ์ž
(roles/compute.instanceAdmin)

GKE ๋…ธ๋“œ ํ’€ ๋˜๋Š” Compute Engine VM์—๋Š” https://www.googleapis.com/auth/cloud-platform ๋ฒ”์œ„๊ฐ€ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ Envoy๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฐํฌ ๋ฌธ์ œ ํ•ด๊ฒฐ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

xDS v3๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Cloud Service Mesh Envoy ํด๋ผ์ด์–ธํŠธ์— ์‚ฌ์šฉ๋˜๋Š” ์„œ๋น„์Šค ๊ณ„์ •์— roles/trafficdirector.client ์—ญํ• ์„ ๋ถ€์—ฌํ•ฉ๋‹ˆ๋‹ค.

Traffic Director API ์‚ฌ์šฉ ์„ค์ •

์ฝ˜์†”

  1. Google Cloud ์ฝ˜์†”์—์„œ ํ”„๋กœ์ ํŠธ์˜ API ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

    API ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ ์ด๋™

  2. API ๋ฐ ์„œ๋น„์Šค ๊ฒ€์ƒ‰ ํ•„๋“œ์— Traffic Director๋ฅผ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.

  3. ๊ฒ€์ƒ‰๊ฒฐ๊ณผ ๋ชฉ๋ก์—์„œ Traffic Director API๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค. Traffic Director API๊ฐ€ ํ‘œ์‹œ๋˜์ง€ ์•Š์œผ๋ฉด Traffic Director API๋ฅผ ์‚ฌ์šฉ ์„ค์ •ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ๊ถŒํ•œ์ด ์—†๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

  4. Traffic Director API ํŽ˜์ด์ง€์—์„œ ์‚ฌ์šฉ ์„ค์ •์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

gcloud

๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

gcloud services enable trafficdirector.googleapis.com

Cloud DNS API ์‚ฌ์šฉ ์„ค์ • ๋ฐ Cloud DNS ๊ตฌ์„ฑ

Compute Engine์—์„œ Cloud Service Mesh๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๊ฒฝ์šฐ ๋‹ค์Œ ์•ˆ๋‚ด๋ฅผ ๋”ฐ๋ฅด์„ธ์š”. Cloud DNS API๋ฅผ ์‚ฌ์šฉ ์„ค์ •ํ•˜๊ณ  DNS ์ด๋ฆ„ ๋ณ€ํ™˜์„ ์œ„ํ•ด Cloud DNS๋ฅผ ๊ตฌ์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

Cloud Service Mesh ๋ฐ DNS ๋ณ€ํ™˜์— ๋Œ€ํ•œ ๋ฐฐ๊ฒฝ ์ •๋ณด๋Š” Cloud Service Mesh ๋ฐ DNS ์ด๋ฆ„ ๋ณ€ํ™˜์„ ์ฐธ์กฐํ•˜์„ธ์š”.

๋จผ์ € ๋‹ค์Œ ์•ˆ๋‚ด์— ๋”ฐ๋ผ Cloud DNS API๋ฅผ ์‚ฌ์šฉ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

์ฝ˜์†”

  1. Google Cloud ์ฝ˜์†”์—์„œ ํ”„๋กœ์ ํŠธ์˜ API ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

    API ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ ์ด๋™

  2. API ๋ฐ ์„œ๋น„์Šค ๊ฒ€์ƒ‰ ํ•„๋“œ์— DNS๋ฅผ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.

  3. ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ ๋ชฉ๋ก์—์„œ Cloud DNS API๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค. Cloud DNS API๊ฐ€ ํ‘œ์‹œ๋˜์ง€ ์•Š์œผ๋ฉด Cloud DNS API ์‚ฌ์šฉ ์„ค์ •์— ํ•„์š”ํ•œ ๊ถŒํ•œ์ด ์—†๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

  4. Cloud DNS API ํŽ˜์ด์ง€์—์„œ ์‚ฌ์šฉ ์„ค์ •์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

gcloud

๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

gcloud services enable dns.googleapis.com

๊ทธ๋Ÿฐ ํ›„ Cloud DNS ๊ด€๋ฆฌํ˜• ๋น„๊ณต๊ฐœ ์˜์—ญ์„ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค. ๋น„๊ณต๊ฐœ ์˜์—ญ ๋งŒ๋“ค๊ธฐ์˜ ์•ˆ๋‚ด๋ฅผ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค.

Traffic Director API์— ์•ก์„ธ์Šคํ•˜๋„๋ก ์„œ๋น„์Šค ๊ณ„์ • ์‚ฌ์šฉ ์„ค์ •

๋ฐ์ดํ„ฐ ์˜์—ญ์„ ์„ค์ •ํ•˜๊ณ  ์ด๋ฅผ Cloud Service Mesh์— ์—ฐ๊ฒฐํ•˜๋ฉด xDS ํด๋ผ์ด์–ธํŠธ(์˜ˆ: Envoy ํ”„๋ก์‹œ)๊ฐ€ trafficdirector.googleapis.com xDS ์„œ๋ฒ„์— ์—ฐ๊ฒฐ๋ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ xDS ํด๋ผ์ด์–ธํŠธ๋Š” xDS ์„œ๋ฒ„์— ์„œ๋น„์Šค ๊ณ„์ • ID๋ฅผ ์ œ๊ณตํ•˜์—ฌ ๋ฐ์ดํ„ฐ ์˜์—ญ๊ณผ ์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ ๊ฐ„์˜ ํ†ต์‹ ์ด ์ œ๋Œ€๋กœ ์Šน์ธ๋˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

  • Compute Engine VM์˜ ๊ฒฝ์šฐ xDS ํด๋ผ์ด์–ธํŠธ๋Š” VM์— ํ• ๋‹น๋œ ์„œ๋น„์Šค ๊ณ„์ •์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • GKE์˜ ๊ฒฝ์šฐ Workload Identity๊ฐ€ ์‚ฌ์šฉ ์„ค์ •๋˜์–ด ์žˆ์ง€ ์•Š์œผ๋ฉด xDS ํด๋ผ์ด์–ธํŠธ๋Š” ๊ธฐ๋ณธ GKE ๋…ธ๋“œ์— ํ• ๋‹น๋œ ์„œ๋น„์Šค ๊ณ„์ •์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • Workload Identity๊ฐ€ ์‚ฌ์šฉ ์„ค์ •๋˜์–ด ์žˆ์œผ๋ฉด xDS ํด๋ผ์ด์–ธํŠธ๋Š” ํฌ๋“œ์— ํ• ๋‹น๋œ Kubernetes ์„œ๋น„์Šค ๊ณ„์ •๊ณผ ๊ฒฐํ•ฉ๋˜๋Š” Google ์„œ๋น„์Šค ๊ณ„์ •์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

๋‹ค์Œ ๊ถŒํ•œ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. xDS v3๋งŒ ์ง€์›๋ฉ๋‹ˆ๋‹ค. xDS v2๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ xDS v3๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ xDS v2์—์„œ xDS v3๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์„ ์ฐธ์กฐํ•˜์„ธ์š”.

xDS v3์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ํด๋ผ์ด์–ธํŠธ์—์„œ ์‚ฌ์šฉ๋˜๋Š” ์„œ๋น„์Šค ๊ณ„์ •์— trafficdirector.networks.reportMetrics ๋ฐ trafficdirector.networks.getConfigs ๊ถŒํ•œ์ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋‘ ๊ถŒํ•œ์„ ๋ชจ๋‘ ํฌ๊ด„ํ•˜๋Š” IAM Cloud Service Mesh ํด๋ผ์ด์–ธํŠธ ์—ญํ• (roles/trafficdirector.client)์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ฝ˜์†”

  1. Google Cloud ์ฝ˜์†”์—์„œ IAM ๋ฐ ๊ด€๋ฆฌ์ž ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

    IAM ๋ฐ ๊ด€๋ฆฌ์ž๋กœ ์ด๋™

  2. ํ”„๋กœ์ ํŠธ๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

  3. ์—ญํ• ์„ ์ถ”๊ฐ€ํ•  ์„œ๋น„์Šค ๊ณ„์ •์„ ์ฐพ์Šต๋‹ˆ๋‹ค.

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

  5. ๊ธฐํƒ€ > Cloud Service Mesh ํด๋ผ์ด์–ธํŠธ ์—ญํ• ์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

  6. ์„œ๋น„์Šค ๊ณ„์ •์— ์—ญํ• ์„ ์ ์šฉํ•˜๋ ค๋ฉด ์ €์žฅ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

gcloud

๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

gcloud projects add-iam-policy-binding PROJECT \
    --member serviceAccount:SERVICE_ACCOUNT_EMAIL \
    --role=roles/trafficdirector.client

๋‹ค์Œ์„ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.

  • PROJECT: gcloud config get-value project๋ฅผ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.
  • SERVICE_ACCOUNT_EMAIL: ์„œ๋น„์Šค ๊ณ„์ •๊ณผ ์—ฐ๊ฒฐ๋œ ์ด๋ฉ”์ผ์ž…๋‹ˆ๋‹ค.

์„ค์ • ํ”„๋กœ์„ธ์Šค ๊ณ„์†ํ•˜๊ธฐ

์ด์ œ ๊ธฐ๋ณธ ์š”๊ฑด ๋‹จ๊ณ„๋ฅผ ์™„๋ฃŒํ–ˆ์œผ๋ฏ€๋กœ ์„œ๋น„์Šค ๋ฉ”์‹œ ์„ค์ •์„ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.