Envoy ๋ฐ ํ”„๋ก์‹œ๋ฆฌ์Šค ์›Œํฌ๋กœ๋“œ๋กœ ์„œ๋น„์Šค ๋ผ์šฐํŒ… API ์„ค์ • ์ค€๋น„

์ด ๋ฌธ์„œ์—์„œ๋Š” Envoy ํ”„๋ก์‹œ ๋˜๋Š” ํ”„๋ก์‹œ๋ฆฌ์Šค gRPC๋ฅผ ๋ฐ์ดํ„ฐ ํ”Œ๋ ˆ์ธ์œผ๋กœ ์‚ฌ์šฉํ•ด์„œ ์„œ๋น„์Šค ๋ผ์šฐํŒ… API๋กœ Cloud Service Mesh๋ฅผ ์„ค์ •ํ•˜๊ธฐ ์œ„ํ•œ ๊ธฐ๋ณธ ์š”๊ฑด ํƒœ์Šคํฌ์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

Cloud Service Mesh ์„ค์ •์—๋Š” ์—ฌ๋Ÿฌ ๋‹จ๊ณ„๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. ์ด ๋ฌธ์„œ์—์„œ๋Š” VM ์ธ์Šคํ„ด์Šค ๋˜๋Š” ํ”„๋ก์‹œ๋ฆฌ์Šค gRPC ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‚ฌ์šฉํ•˜์—ฌ Cloud Service Mesh ๊ตฌ์„ฑ์„ ์ค€๋น„ํ•˜๊ธฐ ์œ„ํ•œ ์•ˆ๋‚ด์ธ ์ฒซ ๋ฒˆ์งธ ๋‹จ๊ณ„์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ์ถ”๊ฐ€ ๋‹จ๊ณ„๋Š” ์ด ๋ฌธ์„œ์˜ ๋’ท๋ถ€๋ถ„์— ๋‚˜์˜ค๋Š” ์„ค์ • ํ”„๋กœ์„ธ์Šค ๊ณ„์†์— ๋‚˜์—ด๋œ ํ”Œ๋žซํผ๋ณ„ ๊ฐ€์ด๋“œ์—์„œ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

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

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

๋‹ค์Œ ์ž‘์—…์„ ์™„๋ฃŒํ•˜์—ฌ ํ™˜๊ฒฝ์„ ์ค€๋น„ํ•ฉ๋‹ˆ๋‹ค.

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

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

ํ”„๋กœ์ ํŠธ ์„ค์ •

ํ”„๋กœ์ ํŠธ๋ฅผ ์„ค์ •ํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๋ ค๋ฉด ํ”„๋กœ์ ํŠธ ๋งŒ๋“ค๊ธฐ ๋ฐ ๊ด€๋ฆฌ์™€ ๊ด€๋ จ ๋ฌธ์„œ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

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

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

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

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

๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ๋‹ค์Œ ํ‘œ์— ํ‘œ์‹œ๋œ ๋ชจ๋“  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)
์„œ๋น„์Šค ๊ณ„์ •์— ๋Œ€ํ•œ ์•ก์„ธ์Šค๋ฅผ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค. ์„œ๋น„์Šค ๊ณ„์ • ์‚ฌ์šฉ์ž
(roles/iam.serviceAccountUser)
ํ•„์š”ํ•œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋„๋ก ์„œ๋น„์Šค ๊ณ„์ •์„ ์‚ฌ์šฉ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ถŒํ•œ์€ xDS ๋ฐ์ดํ„ฐ ์˜์—ญ(Envoy ๋˜๋Š” ํ”„๋ก์‹œ๋ฆฌ์Šค gRPC)์ด ์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ์—์„œ xDS ๊ตฌ์„ฑ์„ ์ˆ˜์‹ ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. Traffic Director ํด๋ผ์ด์–ธํŠธ
(roles/trafficdirector.client)

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

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

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

Compute Engine VM์˜ ๊ฒฝ์šฐ xDS ํด๋ผ์ด์–ธํŠธ๋Š” VM์— ํ• ๋‹น๋œ ์„œ๋น„์Šค ๊ณ„์ •์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

๊ตฌ์„ฑ์„ ์ˆ˜์ •ํ•˜์ง€ ์•Š์œผ๋ฉด Google Cloud ๋Š” Compute Engine ๊ธฐ๋ณธ ์„œ๋น„์Šค ๊ณ„์ •์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

์„œ๋น„์Šค ๊ณ„์ •์— Traffic Director API์— ๋Œ€ํ•œ ์•ก์„ธ์Šค ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•˜๋ ค๋ฉด ๋‹ค์Œ ์•ˆ๋‚ด๋ฅผ ๋”ฐ๋ฅด์„ธ์š”.

์ฝ˜์†”

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

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

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

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

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

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

  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: ์„œ๋น„์Šค ๊ณ„์ •๊ณผ ์—ฐ๊ฒฐ๋œ ์ด๋ฉ”์ผ์ž…๋‹ˆ๋‹ค.

ํ•„์š”ํ•œ API ์‚ฌ์šฉ ์„ค์ •

๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ•„์š”ํ•œ API๋ฅผ ์‚ฌ์šฉ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

  • osconfig.googleapis.com
  • trafficdirector.googleapis.com
  • compute.googleapis.com
  • networkservices.googleapis.com

ํ•„์š”ํ•œ API๋ฅผ ์‚ฌ์šฉ ์„ค์ •ํ•˜๋ ค๋ฉด ๋‹ค์Œ ์•ˆ๋‚ด๋ฅผ ๋”ฐ๋ฅด์„ธ์š”.

์ฝ˜์†”

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

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

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

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

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

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

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

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

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

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

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

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

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

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

gcloud

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

gcloud services enable osconfig.googleapis.com \
trafficdirector.googleapis.com \
compute.googleapis.com \
networkservices.googleapis.com

xDS ๋ฒ„์ „

์„œ๋น„์Šค ๋ผ์šฐํŒ… API๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด xDS v3๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. xDS v2์—์„œ xDS v3๋กœ ๋ฐฐํฌ๋ฅผ ์—…๋ฐ์ดํŠธํ•˜๋Š” ๋ฐฉ๋ฒ•์€ xDS ์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ API๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

Envoy ํ”„๋ก์‹œ์˜ ์ถ”๊ฐ€ ์š”๊ตฌ์‚ฌํ•ญ

์ด ์„น์…˜์—์„œ๋Š” ์„œ๋น„์Šค ๋ผ์šฐํŒ… API์™€ Envoy ํ”„๋ก์‹œ์— Cloud Service Mesh๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•œ ์ถ”๊ฐ€ ์š”๊ตฌ์‚ฌํ•ญ์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ํ”„๋ก์‹œ๋ฆฌ์Šค gRPC๋กœ ๋ฐฐํฌํ•˜๋Š” ๊ฒฝ์šฐ ํ”„๋ก์‹œ gRPC์˜ ์ถ”๊ฐ€ ์š”๊ตฌ์‚ฌํ•ญ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

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

Cloud Service Mesh ๋ฐฐํฌ ํ”„๋กœ์„ธ์Šค ์ค‘์— ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์‹คํ–‰๋˜๋Š” VM์— Envoy๋ฅผ ์ž๋™์œผ๋กœ ์„ค์น˜ํ•˜๋Š” VM ํ…œํ”Œ๋ฆฟ์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

Envoy ๋ฒ„์ „ ์ •๋ณด

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

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

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

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

ํ”„๋ก์‹œ๋ฆฌ์Šค gRPC์˜ ์ถ”๊ฐ€ ์š”๊ตฌ์‚ฌํ•ญ

์ด ์„น์…˜์—์„œ๋Š” ์„œ๋น„์Šค ๋ผ์šฐํŒ… API ๋ฐ ํ”„๋ก์‹œ๋ฆฌ์Šค gRPC์— Cloud Service Mesh๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•œ ์ถ”๊ฐ€ ์š”๊ตฌ์‚ฌํ•ญ์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. Envoy ํ”„๋ก์‹œ๋กœ ๋ฐฐํฌํ•˜๋Š” ๊ฒฝ์šฐ์—๋Š” Envoy ํ”„๋ก์‹œ์˜ ์ถ”๊ฐ€ ์š”๊ตฌ์‚ฌํ•ญ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

ํ”„๋ก์‹œ๋ฆฌ์Šค gRPC์˜ ์ „์ฒด ํ”„๋กœ์„ธ์Šค

์„œ๋น„์Šค ๋ฉ”์‹œ์—์„œ ํ”„๋ก์‹œ๋ฆฌ์Šค gRPC ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์„ค์ •ํ•˜๋Š” ๋‹ค์Œ ์ „์ฒด ์ ˆ์ฐจ๋ฅผ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค.

  1. gRPC ํด๋ผ์ด์–ธํŠธ๋ฅผ ์ตœ์‹  ํŒจ์น˜๊ฐ€ ์ ์šฉ๋œ ์ตœ์‹  ๋ฒ„์ „์˜ gRPC๋กœ ์—…๋ฐ์ดํŠธํ•ฉ๋‹ˆ๋‹ค.
  2. ์ฑ„๋„์„ ๋งŒ๋“ค๊ณ  Cloud Service Mesh ๋ถ€ํŠธ์ŠคํŠธ๋žฉ ํŒŒ์ผ์„ ์ง€์ •ํ•  ๋•Œ ํด๋ผ์ด์–ธํŠธ์˜ gRPC ์ด๋ฆ„ ๋ฆฌ์กธ๋ฒ„ ์Šคํ‚ด์„ ์—…๋ฐ์ดํŠธํ•ฉ๋‹ˆ๋‹ค.
  3. Cloud Service Mesh ๋ฐ Cloud Load Balancing ๋ฆฌ์†Œ์Šค๋ฅผ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค.

์ด ๋ฌธ์„œ์—์„œ๋Š” ์ฒ˜์Œ ๋‘ ๋‹จ๊ณ„๋ฅผ ์™„๋ฃŒํ•˜๊ธฐ ์œ„ํ•œ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. 3๋‹จ๊ณ„์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๊ตฌ์„ฑ ํ”„๋กœ์„ธ์Šค๋Š” ๋ฐฐํฌ์— Compute Engine VM์„ ์‚ฌ์šฉํ•˜๋Š”์ง€ ๋˜๋Š”GKE ๋„คํŠธ์›Œํฌ ์—”๋“œํฌ์ธํŠธ ๊ทธ๋ฃน(NEG)์„ ์‚ฌ์šฉํ•˜๋Š”์ง€์— ๋”ฐ๋ผ ๋‹ค๋ฆ…๋‹ˆ๋‹ค.

์ง€์›๋˜๋Š” gRPC ๋ฒ„์ „ ๋ฐ ์–ธ์–ด

gRPC๋Š” ์˜คํ”ˆ์†Œ์Šค ํ”„๋กœ์ ํŠธ์ด๋ฉฐ ์ถœ์‹œ ๋ฒ„์ „ ์ง€์›์€ gRPC FAQ์—์„œ ์„ค๋ช…๋ฉ๋‹ˆ๋‹ค. ์•Œ๋ ค์ง„ ๋ณด์•ˆ ์ทจ์•ฝ์ ์„ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋„๋ก ์ตœ์‹  gRPC ๋ฒ„์ „์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ๋˜ํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด Cloud Service Mesh์—์„œ ์ง€์›ํ•˜๋Š” ์ตœ์‹  ๊ธฐ๋Šฅ์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. gRPC์˜ ๋‹ค์–‘ํ•œ ๊ตฌํ˜„ ๋ฐ ๋ฒ„์ „์—์„œ ์ง€์›๋˜๋Š” ์„œ๋น„์Šค ๋ฉ”์‹œ ๊ธฐ๋Šฅ์ด GitHub์— ๋‚˜์—ด๋ฉ๋‹ˆ๋‹ค. Cloud Service Mesh ๋ฐ ํ”„๋ก์‹œ๋ฆฌ์Šค gRPC ์„œ๋น„์Šค์—์„œ ์ง€์›ํ•˜๋Š” gRPC ์–ธ์–ด ๋ฐ ๊ธฐ๋Šฅ์€ Cloud Service Mesh ๊ธฐ๋Šฅ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

Cloud Service Mesh๋Š” Google Cloud Platform ์„œ๋น„์Šค ์•ฝ๊ด€์— ๋”ฐ๋ผ gRPC์˜ ํ˜„์žฌ ๋ฐ ์ง€์›๋˜๋Š” ๋ฒ„์ „๊ณผ์˜ ํ˜ธํ™˜์„ฑ์„ ์œ ์ง€ํ•˜๊ณ  1๋…„ ๋ฏธ๋งŒ์˜ gRPC ๋ฒ„์ „๊ณผ ํ˜ธํ™˜๋˜๋„๋ก ๋…ธ๋ ฅํ•ฉ๋‹ˆ๋‹ค.

gRPC ํด๋ผ์ด์–ธํŠธ ์—…๋ฐ์ดํŠธ

์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ gRPC ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ํ•„์š”ํ•œ ๊ธฐ๋Šฅ์„ ์ง€์›ํ•˜๋Š” ๋ฒ„์ „์œผ๋กœ ์—…๋ฐ์ดํŠธํ•ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์ด์ „ ์„น์…˜์„ ์ฐธ์กฐํ•˜์„ธ์š”.

xDS ์ด๋ฆ„ ๋ฆฌ์กธ๋ฒ„๋ฅผ gRPC ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ์ข…์† ํ•ญ๋ชฉ์œผ๋กœ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. Java ๋ฐ Go์˜ ์–ธ์–ด๋ณ„ ์š”๊ตฌ์‚ฌํ•ญ์€ ๋‹ค์Œ ์„น์…˜์— ๋‚˜์™€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ์–ธ์–ด์—๋Š” ์ถ”๊ฐ€์ ์ธ ์š”๊ตฌ์‚ฌํ•ญ์ด ์—†์Šต๋‹ˆ๋‹ค.

์ž๋ฐ” ์š”๊ตฌ์‚ฌํ•ญ

์ž๋ฐ”์—์„œ Gradle์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ grpc-xds ์ข…์† ํ•ญ๋ชฉ์„ build.gradle ํŒŒ์ผ์— ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. LATEST_GRPC_VERSION์„ gRPC์˜ ์ตœ์‹  ๋ฒ„์ „์œผ๋กœ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.

dependencies {
  runtimeOnly 'io.grpc:grpc-xds:LATEST_GRPC_VERSION'
}

Maven์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ pom.xml์˜ <dependencies> ์„น์…˜์— ๋‹ค์Œ์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. LATEST_GRPC_VERSION์„ gRPC์˜ ์ตœ์‹  ๋ฒ„์ „์œผ๋กœ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.

    <dependency>
      <groupId>io.grpc</groupId>
      <artifactId>grpc-xds</artifactId>
      <version>LATEST_GRPC_VERSION</version>
      <scope>runtime</scope>
    </dependency>

Go ์š”๊ตฌ์‚ฌํ•ญ

Go๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ xds Go ํŒจํ‚ค์ง€๋ฅผ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.

xds๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก gRPC ์ด๋ฆ„ ๋ฆฌ์กธ๋ฒ„ ์„ค์ •

DNS๋‚˜ ๋‹ค๋ฅธ ๋ฆฌ์กธ๋ฒ„ ์Šคํ‚ค๋งˆ๊ฐ€ ์•„๋‹Œ ๋Œ€์ƒ URI์—์„œ xds ์ด๋ฆ„ ๋ณ€ํ™˜ ์Šคํ‚ด์„ ์‚ฌ์šฉํ•˜๋„๋ก gRPC ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์„ค์ •ํ•˜๊ฑฐ๋‚˜ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ ค๋ฉด gRPC ์ฑ„๋„์„ ๋งŒ๋“ค ๋•Œ ๋Œ€์ƒ ์ด๋ฆ„์— xds:/// ํ”„๋ฆฌํ”ฝ์Šค๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. gRPC ํด๋ผ์ด์–ธํŠธ์˜ ๋ถ€ํ•˜ ๋ถ„์‚ฐ์€ ์ฑ„๋„ ๋‹จ์œ„๋กœ ์ด๋ฃจ์–ด์ง‘๋‹ˆ๋‹ค.

Cloud Service Mesh ๊ตฌ์„ฑ์—์„œ ๋Œ€์ƒ URI์— ์‚ฌ์šฉ๋˜๋Š” ์„œ๋น„์Šค ์ด๋ฆ„์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด Java์—์„œ๋Š” ์„œ๋น„์Šค ์ด๋ฆ„์ด helloworld์ธ ์ด ๊ตฌ์กฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ฑ„๋„์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

ManagedChannelBuilder.forTarget("xds:///helloworld[:PORT_NUMBER]")

๋ถ€ํŠธ์ŠคํŠธ๋žฉ ํŒŒ์ผ ๋งŒ๋“ค๊ธฐ ๋ฐ ๊ตฌ์„ฑ

xds ๋ฆฌ์กธ๋ฒ„ ์Šคํ‚ด์€ gRPC ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— Cloud Service Mesh์— ์—ฐ๊ฒฐํ•˜์—ฌ ๋Œ€์ƒ ์„œ๋น„์Šค์˜ ๊ตฌ์„ฑ ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์˜ค๋„๋ก ์ง€์‹œํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•˜์„ธ์š”.

  • ๋‹ค์Œ ์ƒ˜ํ”Œ์—์„œ์™€ ๊ฐ™์ด ๋ถ€ํŠธ์ŠคํŠธ๋žฉ ํŒŒ์ผ์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ์ด ํŒŒ์ผ์€ gRPC์— xDS ์„œ๋ฒ„(Cloud Service Mesh)์— ์—ฐ๊ฒฐํ•˜์—ฌ ํŠน์ • ์„œ๋น„์Šค์˜ ๊ตฌ์„ฑ์„ ๊ฐ€์ ธ์˜ค๋„๋ก ์ง€์‹œํ•ฉ๋‹ˆ๋‹ค.
  • ๋ถ€ํŠธ์ŠคํŠธ๋žฉ ํŒŒ์ผ ์ด๋ฆ„์„ ํ™˜๊ฒฝ ๋ณ€์ˆ˜์˜ ๊ฐ’์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” GRPC_XDS_BOOTSTRAP์ด๋ผ๋Š” ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.

์„ค์ • ์•ˆ๋‚ด์—๋Š” ๋ถ€ํŠธ์ŠคํŠธ๋žฉ ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ณด์—ฌ์ฃผ๋Š” ์˜ˆ์‹œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ํŽธ์˜๋ฅผ ์œ„ํ•ด ์ตœ์‹  ๋ฒ„์ „์˜ Cloud Service Mesh gRPC ๋ถ€ํŠธ์ŠคํŠธ๋žฉ ์ƒ์„ฑ๊ธฐ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Cloud Service Mesh์— ์—ฐ๊ฒฐํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ์ •๋ณด๊ฐ€ ๋“ค์–ด ์žˆ๋Š” ๋ถ€ํŠธ์ŠคํŠธ๋žฉ ํŒŒ์ผ์€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ ํ•จ๊ป˜ ํฌํ•จ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ƒ˜ํ”Œ ๋ถ€ํŠธ์ŠคํŠธ๋žฉ ํŒŒ์ผ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

{
  "xds_servers": [
    {
      "server_uri": "trafficdirector.googleapis.com:443",
      "channel_creds": [
        {
          "type": "google_default"
        }
      ],
      "server_features": ["xds_v3"]
    }
  ],
  "node": {
    "id": "projects/123456789012/networks/default/nodes/b7f9c818-fb46-43ca-8662-d3bdbcf7ec18",
    "metadata": {
      "TRAFFICDIRECTOR_NETWORK_NAME": "default"
    },
    "locality": {
      "zone": "us-central1-a"
    }
  }
}

๋‹ค์Œ ํ‘œ์—์„œ ๋ถ€ํŠธ์ŠคํŠธ๋žฉ ํŒŒ์ผ์˜ ํ•„๋“œ๋ฅผ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

ํ•„๋“œ ๊ฐ’ ๋ฐ ์„ค๋ช…
xds_servers xDS ์„œ๋ฒ„ ๋ชฉ๋ก์ž…๋‹ˆ๋‹ค. gRPC๋Š” ๋ชฉ๋ก์˜ ์ฒซ ๋ฒˆ์งธ ํ•ญ๋ชฉ๋งŒ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
server_uri 1๊ฐœ ์ด์ƒ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. gRPC๋Š” xds_servers ๋ชฉ๋ก์˜ ์ฒซ ๋ฒˆ์งธ xDS ์„œ๋ฒ„์—๋งŒ ์—ฐ๊ฒฐ์„ ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’์€ trafficdirector.googleapis.com:443์ž…๋‹ˆ๋‹ค.
channel_creds xDS ์„œ๋ฒ„์—์„œ ์‚ฌ์šฉํ•  ์‚ฌ์šฉ์ž ์ธ์ฆ ์ •๋ณด์ž…๋‹ˆ๋‹ค.
type google_default ๊ฐ’์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž ์ธ์ฆ ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ธฐ๋ณธ ์‚ฌ์šฉ์ž ์ธ์ฆ ์ •๋ณด ์ž‘๋™ ๋ฐฉ์‹์„ ์ฐธ์กฐํ•˜์„ธ์š”.
server_features xDS v3 ์ง€์›๊ณผ ๊ฐ™์€ ์„œ๋ฒ„์—์„œ ์ง€์›ํ•˜๋Š” ๊ธฐ๋Šฅ์˜ ๋ชฉ๋ก์ž…๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’์€ ๋น„์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
node xDS ์„œ๋ฒ„์— ์—ฐ๊ฒฐํ•˜๋Š” ํด๋ผ์ด์–ธํŠธ์— ๋Œ€ํ•œ ์ •๋ณด์ž…๋‹ˆ๋‹ค.
id

id๋Š” ์ด์ „ ์˜ˆ์‹œ์™€ ๊ฐ™์ด ๋‹ค์Œ ํ˜•์‹์ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

projects/PROJECT_NUMBER/networks/NETWORK_NAME/nodes/ID

ID ๊ฐ’์œผ๋กœ ๊ณ ์œ  ๋ฌธ์ž์—ด์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” Cloud Service Mesh์— ์—ฐ๊ฒฐ๋˜๋Š” gRPC ํด๋ผ์ด์–ธํŠธ๋ฅผ ์‹๋ณ„ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.

metadata xDS ์„œ๋ฒ„ ๊ด€๋ จ ์ •๋ณด์ž…๋‹ˆ๋‹ค.
TRAFFICDIRECTOR_MESH_NAME ํ•„๋“œ๊ฐ€ ๋น„์–ด ์žˆ๊ฑฐ๋‚˜ ์ง€์ •๋˜์ง€ ์•Š์œผ๋ฉด ๊ฐ’์ด default๋กœ ์„ค์ •๋ฉ๋‹ˆ๋‹ค.
locality gRPC ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์‹คํ–‰๋˜๋Š” Google Cloud ์˜์—ญ์ž…๋‹ˆ๋‹ค.

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

์ด ๋ฌธ์„œ์— ์„ค๋ช…๋œ ๊ธฐ๋ณธ ์š”๊ฑด์„ ์™„๋ฃŒํ•œ ํ›„ ์„œ๋น„์Šค ๋ผ์šฐํŒ… API๋กœ Cloud Service Mesh๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๊ฒฝ์šฐ์—๋Š” ๊ณ„์†ํ•ด์„œ ๋‹ค์Œ ๋ฌธ์„œ ์ค‘ ํ•˜๋‚˜๋ฅผ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค.