Cloud Service Mesh(๊ด€๋ฆฌํ˜•)์˜ VPC ์„œ๋น„์Šค ์ œ์–ด

Cloud Service Mesh(๊ด€๋ฆฌํ˜•)๋Š” ์ƒˆ ์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ์˜ ์ •์‹ ๋ฒ„์ „(GA) ๊ธฐ๋Šฅ์œผ๋กœ VPC ์„œ๋น„์Šค ์ œ์–ด๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ์ด VPC ์„œ๋น„์Šค ์ œ์–ด GA๋ฅผ ์ง€์›ํ•˜๋Š”์ง€ ํ™•์ธํ•˜๋ ค๋ฉด VPCSC_GA_SUPPORTED ์กฐ๊ฑด์— ๋Œ€ํ•œ ๋ฉค๋ฒ„์‹ญ์˜ ๋ฉ”์‹œ ๊ธฐ๋Šฅ ์ƒํƒœ๋ฅผ ํ™•์ธํ•˜์„ธ์š”.

gcloud container fleet mesh describe --project FLEET_PROJECT_ID

์ถœ๋ ฅ์€ ๋‹ค์Œ๊ณผ ๋น„์Šทํ•ฉ๋‹ˆ๋‹ค.

(...)
membershipStates:
  projects/FLEET_PROJECT_NUMBER/locations/MEMBERSHIP_LOCATION/memberships/MEMBERSHIP_ID:
    servicemesh:
      conditions:
      - code: VPCSC_GA_SUPPORTED
        details: This control plane supports VPC Service Controls GA.
        documentationLink: http://cloud.google.com/service-mesh/docs/managed/VPC Service Controls
        severity: INFO
(...)

VPCSC_GA_SUPPORTED ์กฐ๊ฑด์„ ๋ณด๊ณ ํ•˜์ง€ ์•Š๋Š” ๊ธฐ์กด ์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ์ด ์žˆ๊ณ  VPC ์„œ๋น„์Šค ์ œ์–ด๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ์ง€์›ํŒ€์— ๋ฌธ์˜ํ•˜์„ธ์š”.

์‹œ์ž‘ํ•˜๊ธฐ ์ „์—

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

VPC ์„œ๋น„์Šค ์ œ์–ด ์„œ๋น„์Šค ๊ฒฝ๊ณ„ ์„ค์ •

์„œ๋น„์Šค ๊ฒฝ๊ณ„๋ฅผ ๋งŒ๋“ค๊ฑฐ๋‚˜ ์—…๋ฐ์ดํŠธํ•ฉ๋‹ˆ๋‹ค.

  1. ์„œ๋น„์Šค ๊ฒฝ๊ณ„์— ํด๋Ÿฌ์Šคํ„ฐ ํ”„๋กœ์ ํŠธ ๋ฐ Fleet ํ”„๋กœ์ ํŠธ๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ VPC ์„œ๋น„์Šค ์ œ์–ด ๊ฒฝ๊ณ„์— ์„œ๋น„์Šค ๋ฉ”์‹œ๋ฅผ ๋ถ„์‚ฐํ•˜๋Š” ๊ฒƒ์€ ์ง€์›๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

  2. ์„œ๋น„์Šค ๊ฒฝ๊ณ„์— ์ œํ•œ๋œ ์„œ๋น„์Šค๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

    Cloud Service Mesh ํด๋Ÿฌ์Šคํ„ฐ์—์„œ ์„œ๋น„์Šค ๊ฒฝ๊ณ„์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ๋„๋ก ํŠน์ • ์„œ๋น„์Šค๋ฅผ ์„œ๋น„์Šค ๊ฒฝ๊ณ„์˜ ํ—ˆ์šฉ ๋ฐ ์ œํ•œ๋œ ์„œ๋น„์Šค ๋ชฉ๋ก์— ์ถ”๊ฐ€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์„œ๋น„์Šค์— ๋Œ€ํ•œ ์•ก์„ธ์Šค๋Š” ํด๋Ÿฌ์Šคํ„ฐ์˜ Virtual Private Cloud(VPC) ๋„คํŠธ์›Œํฌ ๋‚ด์—์„œ๋„ ์ œํ•œ๋ฉ๋‹ˆ๋‹ค.

    ์ด๋Ÿฌํ•œ ์„œ๋น„์Šค๋ฅผ ์ถ”๊ฐ€ํ•˜์ง€ ์•Š์œผ๋ฉด Cloud Service Mesh ์„ค์น˜๊ฐ€ ์‹คํŒจํ•˜๊ฑฐ๋‚˜ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ž‘๋™ํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด Mesh Configuration API๋ฅผ ์„œ๋น„์Šค ๊ฒฝ๊ณ„์— ์ถ”๊ฐ€ํ•˜์ง€ ์•Š์œผ๋ฉด ์„ค์น˜๊ฐ€ ์‹คํŒจํ•˜๊ณ  ์›Œํฌ๋กœ๋“œ๋Š” ๊ด€๋ฆฌํ˜• ์ œ์–ด ์˜์—ญ์—์„œ Envoy ๊ตฌ์„ฑ์„ ์ˆ˜์‹ ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

    ์ฝ˜์†”

    1. ์„œ๋น„์Šค ๊ฒฝ๊ณ„ ์—…๋ฐ์ดํŠธ์˜ ๋‹จ๊ณ„์— ๋”ฐ๋ผ ๊ฒฝ๊ณ„๋ฅผ ์ˆ˜์ •ํ•ฉ๋‹ˆ๋‹ค.
    2. VPC ์„œ๋น„์Šค ๊ฒฝ๊ณ„ ์ˆ˜์ • ํŽ˜์ด์ง€๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.
    3. ์ œํ•œ๋œ ์„œ๋น„์Šค, ๋ณดํ˜ธํ•  ์„œ๋น„์Šค์—์„œ ์„œ๋น„์Šค ์ถ”๊ฐ€๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.
    4. ์ œํ•œํ•  ์„œ๋น„์Šค ์ง€์ • ๋Œ€ํ™”์ƒ์ž์—์„œ ์„œ๋น„์Šค ํ•„ํ„ฐ๋ง์„ ํด๋ฆญํ•˜๊ณ  Mesh Configuration API๋ฅผ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.
    5. ์„œ๋น„์Šค ์ฒดํฌ๋ฐ•์Šค๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
    6. Mesh Configuration API ์ถ”๊ฐ€๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.
    7. c~f๋‹จ๊ณ„๋ฅผ ๋ฐ˜๋ณตํ•˜์—ฌ ๋‹ค์Œ์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.
      • Cloud Service Mesh Certificate Authority API
      • GKE Hub API
      • Cloud IAM API
      • Cloud Monitoring API
      • Cloud Trace API
      • Cloud Monitoring API
      • Google Cloud Resource Manager API
      • Google Compute Engine API
      • Google Container Registry API
      • Artifact Registry API
      • Google Cloud Storage API
      • Cloud Logging API
      • ๋ณด์•ˆ ํ† ํฐ ์„œ๋น„์Šค API
    8. ์ €์žฅ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

    gcloud

    ์ œํ•œ๋œ ์„œ๋น„์Šค ๋ชฉ๋ก์„ ์—…๋ฐ์ดํŠธํ•˜๋ ค๋ฉด update ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์‰ผํ‘œ๋กœ ๊ตฌ๋ถ„๋œ ๋ชฉ๋ก์œผ๋กœ ์ถ”๊ฐ€ํ•  ์„œ๋น„์Šค๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

    gcloud access-context-manager perimeters update PERIMETER_NAME \
      --add-restricted-services=meshconfig.googleapis.com,meshca.googleapis.com,gkehub.googleapis.com,iam.googleapis.com,monitoring.googleapis.com,cloudtrace.googleapis.com,monitoring.googleapis.com,cloudresourcemanager.googleapis.com,compute.googleapis.com,containerregistry.googleapis.com,artifactregistry.googleapis.com,storage.googleapis.com,logging.googleapis.com,sts.googleapis.com \
      --policy=POLICY_NAME

    ๊ฐ ํ•ญ๋ชฉ์˜ ์˜๋ฏธ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

    • PERIMETER_NAME: ์—…๋ฐ์ดํŠธํ•  ์„œ๋น„์Šค ๊ฒฝ๊ณ„์˜ ์ด๋ฆ„

    • POLICY_NAME: ์กฐ์ง์˜ ์•ก์„ธ์Šค ์ •์ฑ…์˜ ์ˆซ์ž ์ด๋ฆ„. ์˜ˆ๋ฅผ ๋“ค๋ฉด 330193482019์ž…๋‹ˆ๋‹ค.

  3. VPC ์•ก์„ธ์Šค ๊ฐ€๋Šฅ ์„œ๋น„์Šค๋ฅผ ํด๋ฆญํ•˜๊ณ  '์ œํ•œ๋œ ๋ชจ๋“  ์„œ๋น„์Šค'๋กœ ์„ค์ •ํ•˜๋ฉด ์œ„ ๋‹จ๊ณ„์—์„œ ์ œํ•œ๋œ ์„œ๋น„์Šค๊ฐ€ VPC ์„œ๋น„์Šค ์ œ์–ด ๊ฒฝ๊ณ„ ๋‚ด์—์„œ ๊ณ„์† ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  4. ๊ฒฝ๊ณ„ ๋„คํŠธ์›Œํฌ์—์„œ Cloud Service Mesh๋ฅผ ์„ค์น˜ํ•˜์ง€ ์•Š๋Š” ํ•œ asmcli ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜๋Š” ID๊ฐ€ ์„œ๋น„์Šค ๊ฒฝ๊ณ„์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ๋„๋ก ์ธ๊ทธ๋ ˆ์Šค ๊ทœ์น™์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

    ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์„œ๋น„์Šค ๊ฒฝ๊ณ„ ์—…๋ฐ์ดํŠธ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

VPC ์„œ๋น„์Šค ์ œ์–ด ๊ฒฝ๊ณ„์— ๊ด€๋ฆฌํ˜• Cloud Service Mesh ์„ค์น˜

๊ด€๋ฆฌํ˜• Cloud Service Mesh ๊ตฌ์„ฑ ํŽ˜์ด์ง€์˜ ๋‹จ๊ณ„๋ฅผ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ์ด ์„ฑ๊ณต์ ์œผ๋กœ ํ”„๋กœ๋น„์ €๋‹๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•˜๊ณ  VPC ์„œ๋น„์Šค ์ œ์–ด ๊ด€๋ จ ์˜ค๋ฅ˜๊ฐ€ ์—†๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

๋ฌธ์ œ ํ•ด๊ฒฐ

์ตœ์‹  GKE 1.22 ์ด๋ฏธ์ง€๋กœ ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

VPC ์„œ๋น„์Šค ์ œ์–ด ์ œํ•œ ํ™˜๊ฒฝ์—์„œ ์ตœ์‹  1.22 ์ด๋ฏธ์ง€๋กœ ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ๋งŒ๋“ค์ง€ ๋ชปํ•˜๊ฒŒ ํ•˜๋Š” ์•Œ๋ ค์ง„ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์€ ๋จผ์ € ๊ธฐ๋ณธ GKE ์ฑ„๋„ ์ด๋ฏธ์ง€๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ด ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ๋งŒ๋“  ํ›„ ์ด๋ฏธ์ง€๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

gcloud container clusters create CLUSTER \
  --region REGION \
  --release-channel=rapid \
  --workload-pool=PROJECT_ID.svc.id.goog \
  --project PROJECT_ID
gcloud container clusters upgrade CLUSTER \
  --region REGION \
  --master --cluster-version 1.22 \
  --project PROJECT_ID

์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์ด๋ฏธ์ง€๋ฅผ ๋‹ค์šด๋กœ๋“œํ•  ์ˆ˜ ์—†์Œ

์ด๋ฏธ์ง€๊ฐ€ ์„œ๋น„์Šค ๊ฒฝ๊ณ„ ์™ธ๋ถ€์— ์žˆ์œผ๋ฉด ์ด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฏธ์ง€๋ฅผ ๊ฒฝ๊ณ„ ๋‚ด์— ์žˆ๋Š” ๋ฒ„ํ‚ท์œผ๋กœ ์ด๋™ํ•˜๊ฑฐ๋‚˜ ๊ฒฝ๊ณ„๋ฅผ ์—…๋ฐ์ดํŠธํ•˜์—ฌ ์ด๊ทธ๋ ˆ์Šค ๊ทœ์น™์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ์ด๊ทธ๋ ˆ์Šค ๊ทœ์น™์€ ์„ ํƒํ•œ ID์—์„œ Container Registry API, Artifact Registry API, Cloud Storage API์— ์•ก์„ธ์Šคํ•˜๋„๋ก ํ—ˆ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ControlPlaneRevision CRD์˜ ์ƒํƒœ ํ•„๋“œ์— VPC ์„œ๋น„์Šค ์ œ์–ด ์˜ค๋ฅ˜๊ฐ€ ํ‘œ์‹œ๋จ

๋˜๋Š” ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ์˜ค๋ฅ˜์— ๋Œ€ํ•œ ์ž์„ธํ•œ ์ •๋ณด๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

gcloud logging read --project=PROJECT_ID \
'protoPayload.metadata.@type=type.googleapis.com/google.cloud.audit.VpcServiceControlAuditMetadata'

๊ฐ ํ•ญ๋ชฉ์˜ ์˜๋ฏธ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • PROJECT_ID: ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•œ ํ”„๋กœ์ ํŠธ์˜ ํ”„๋กœ์ ํŠธ ID