12๋‹จ๊ณ„(์„ ํƒ์‚ฌํ•ญ): GKE์—์„œ ์›Œํฌ๋กœ๋“œ ์•„์ด๋ดํ‹ฐํ‹ฐ ๊ตฌ์„ฑ

์›Œํฌ๋กœ๋“œ ์•„์ด๋ดํ‹ฐํ‹ฐ๋งŒ ์žˆ๋Š” GKE: ์›Œํฌ๋กœ๋“œ ์•„์ด๋ดํ‹ฐํ‹ฐ ๊ตฌ์„ฑ

6๋‹จ๊ณ„: ์žฌ์ •์˜ ๋งŒ๋“ค๊ธฐ์—์„œ GKE์˜ ์›Œํฌ๋กœ๋“œ ์•„์ด๋ดํ‹ฐํ‹ฐ์— ์žฌ์ •์˜ ํŒŒ์ผ์„ ์„ค์ •ํ•œ ๊ฒฝ์šฐ ๋‹ค์Œ ๋‹จ๊ณ„๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

GKE์—์„œ ์›Œํฌ๋กœ๋“œ ์•„์ด๋ดํ‹ฐํ‹ฐ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ 3๋ถ€, 1๋‹จ๊ณ„: Apigee ์ธ๊ทธ๋ ˆ์Šค ๊ฒŒ์ดํŠธ์›จ์ด ๋…ธ์ถœ์„ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

Google Cloud ์„œ๋น„์Šค ๊ณ„์ • ๋ฐ Kubernetes ์„œ๋น„์Šค ๊ณ„์ •

Google Cloud ์„œ๋น„์Šค ๊ณ„์ •์€ ์„œ๋น„์Šค ๊ณ„์ • ์ž์ฒด๋กœ ์ธ์ฆํ•˜์—ฌ ์Šน์ธ๋œ API ํ˜ธ์ถœ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ํŠน๋ณ„ํ•œ ์ข…๋ฅ˜์˜ ๊ณ„์ •์ž…๋‹ˆ๋‹ค. Google Cloud ์„œ๋น„์Šค ๊ณ„์ •์—๋Š” ๊ฐœ๋ณ„ ์‚ฌ์šฉ์ž์™€ ๋น„์Šทํ•œ ์—ญํ•  ๋ฐ ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์„œ๋น„์Šค ๊ณ„์ •์œผ๋กœ ์ธ์ฆ๋˜๋ฉด ์„œ๋น„์Šค ๊ณ„์ •์— ์•ก์„ธ์Šค ๊ถŒํ•œ์ด ์žˆ๋Š” ๋ชจ๋“  ๋ฆฌ์†Œ์Šค์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Google Cloud ์„œ๋น„์Šค ๊ณ„์ •์— ๋Œ€ํ•ด ์ž์„ธํžˆ ์•Œ์•„๋ณด๋ ค๋ฉด ์„œ๋น„์Šค ๊ณ„์ • ๊ฐœ์š”๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

4๋‹จ๊ณ„: ์„œ๋น„์Šค ๊ณ„์ • ๋งŒ๋“ค๊ธฐ์—์„œ Apigee Hybrid ์„ค์น˜์— ๋Œ€ํ•œ Google Cloud ์„œ๋น„์Šค ๊ณ„์ •์„ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. Apigee๋Š” ์ด๋Ÿฌํ•œ ์„œ๋น„์Šค ๊ณ„์ •์„ ์‚ฌ์šฉํ•ด์„œ ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ๊ตฌ์„ฑ์š”์†Œ๋ฅผ ์ธ์ฆํ•ฉ๋‹ˆ๋‹ค.

Kubernetes ์„œ๋น„์Šค ๊ณ„์ •์€ Google Cloud ์„œ๋น„์Šค ๊ณ„์ •๊ณผ ๋น„์Šทํ•ฉ๋‹ˆ๋‹ค. Kubernetes ์„œ๋น„์Šค ๊ณ„์ •์€ ํฌ๋“œ์—์„œ ์‹คํ–‰๋˜๋Š” ํ”„๋กœ์„ธ์Šค์— ๋Œ€ํ•œ ID๋ฅผ ์ œ๊ณตํ•˜๋ฉฐ ์‚ฌ์šฉ์ž์™€ ๋น„์Šทํ•˜๊ฒŒ API ์„œ๋ฒ„์— ์ธ์ฆ์„ ์ˆ˜ํ–‰ํ•˜๋„๋ก ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค. Kubernetes ์„œ๋น„์Šค ๊ณ„์ •์— ๋Œ€ํ•ด ์ž์„ธํžˆ ์•Œ์•„๋ณด๋ ค๋ฉด ํฌ๋“œ์— ๋Œ€ํ•œ ์„œ๋น„์Šค ๊ณ„์ • ๊ตฌ์„ฑ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

์žฌ์ •์˜ ํŒŒ์ผ์—์„œ gcp.workloadIdentity.enabled๋ฅผ true๋กœ ์„ค์ •ํ•œ ๊ฒฝ์šฐ ๊ฐ ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ๊ตฌ์„ฑ์š”์†Œ์˜ Helm ์ฐจํŠธ๋Š” 11๋‹จ๊ณ„: Helm ์ฐจํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Apigee Hybrid ์„ค์น˜์—์„œ ์ˆ˜ํ–‰ํ•œ ๊ฒƒ์ฒ˜๋Ÿผ ์„ค์น˜ ๋˜๋Š” ์—…๊ทธ๋ ˆ์ด๋“œํ•  ๋•Œ ๊ตฌ์„ฑ์š”์†Œ์˜ Kubernetes ์„œ๋น„์Šค ๊ณ„์ •์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

GKE์—์„œ ์›Œํฌ๋กœ๋“œ ์•„์ด๋ดํ‹ฐํ‹ฐ๋ฅผ ๊ตฌ์„ฑํ•˜๋ฉด Google Cloud ์„œ๋น„์Šค ๊ณ„์ •์ด Kubernetes ํด๋Ÿฌ์Šคํ„ฐ์— ์žˆ๋Š” Kubernetes ์„œ๋น„์Šค ๊ณ„์ •๊ณผ ์—ฐ๊ฒฐ๋ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด Kubernetes ์„œ๋น„์Šค ๊ณ„์ •์ด Google Cloud ์„œ๋น„์Šค ๊ณ„์ •์„ ๊ฐ€์žฅํ•˜๊ณ  ํ• ๋‹น๋œ ์—ญํ•  ๋ฐ ๊ถŒํ•œ์„ ์‚ฌ์šฉํ•ด์„œ ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ๊ตฌ์„ฑ์š”์†Œ์— ์ธ์ฆ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์•ˆ๋‚ด์— ๋”ฐ๋ผ ํ”„๋กœ์ ํŠธ์— ๋Œ€ํ•ด ์›Œํฌ๋กœ๋“œ ์•„์ด๋ดํ‹ฐํ‹ฐ๋ฅผ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค.

์›Œํฌ๋กœ๋“œ ์•„์ด๋ดํ‹ฐํ‹ฐ ๊ตฌ์„ฑ ์ค€๋น„

  1. ์žฌ์ •์˜ ํŒŒ์ผ์—์„œ ์›Œํฌ๋กœ๋“œ ์•„์ด๋ดํ‹ฐํ‹ฐ๊ฐ€ ์‚ฌ์šฉ ์„ค์ •๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ์žฌ์ •์˜ ํŒŒ์ผ์˜ ๋‹ค์Œ ์†์„ฑ์—์„œ ์‚ฌ์šฉ ์„ค์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
    • namespace ํ•„๋“œ๋Š” ํ•„์ˆ˜ ํ•ญ๋ชฉ์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
      instanceID: "hybrid-instance-1"
      namespace: "apigee"
      
    • ์›Œํฌ๋กœ๋“œ ์•„์ด๋ดํ‹ฐํ‹ฐ๋ฅผ ์‚ฌ์šฉ ์„ค์ •ํ•˜๋Š” ๋ฌธ๋ฒ•์€ Helm๊ณผ apigeectl์—์„œ ์„œ๋กœ ๋‹ค๋ฆ…๋‹ˆ๋‹ค. Helm์˜ ๊ฒฝ์šฐ gcp.workloadIdentity.enabled๊ฐ€ gcp.workloadIdentityEnabled๋ฅผ ๋Œ€์ฒดํ•ฉ๋‹ˆ๋‹ค.
    • ๋ชจ๋“  ๊ตฌ์„ฑ์š”์†Œ์— ๋‹จ์ผ ์„œ๋น„์Šค ๊ณ„์ •(๋น„ํ”„๋กœ๋•์…˜)์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ gcp.workloadIdentity.gsa๋กœ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
        gcp:
          workloadIdentity:
            enabled: true
            gsa: "apigee-non-prod@my-hybrid-project.iam.gserviceaccount.com"
        
    • ๊ตฌ์„ฑ์š”์†Œ๋งˆ๋‹ค ๋ณ„๋„์˜ ์„œ๋น„์Šค ๊ณ„์ •์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ(ํ”„๋กœ๋•์…˜ ์„ค์น˜) ๊ตฌ์„ฑ์š”์†Œ์˜ gsa ์†์„ฑ์œผ๋กœ ์„œ๋น„์Šค ๊ณ„์ •์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
        logger:
          gsa: "apigee-logger@my-hybrid-project.iam.gserviceaccount.com"
        

    gcp.workloadIdentity.enabled๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

  2. ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ˜„์žฌ gcloud ๊ตฌ์„ฑ์ด Google Cloud ํ”„๋กœ์ ํŠธ ID๋กœ ์„ค์ •๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
    gcloud config get project
  3. ํ•„์š”ํ•œ ๊ฒฝ์šฐ ํ˜„์žฌ gcloud ๊ตฌ์„ฑ์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

    gcloud config set project $PROJECT_ID
  4. GKE ํด๋Ÿฌ์Šคํ„ฐ์— ๋Œ€ํ•œ ์›Œํฌ๋กœ๋“œ ์•„์ด๋ดํ‹ฐํ‹ฐ๊ฐ€ ์‚ฌ์šฉ ์„ค์ •๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. 1๋‹จ๊ณ„: ํด๋Ÿฌ์Šคํ„ฐ ๋งŒ๋“ค๊ธฐ์—์„œ ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ๋งŒ๋“  ๊ฒฝ์šฐ 6๋‹จ๊ณ„๋Š” ์›Œํฌ๋กœ๋“œ ์•„์ด๋ดํ‹ฐํ‹ฐ๋ฅผ ์‚ฌ์šฉ ์„ค์ •ํ•˜๋Š” ๊ฒƒ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ์›Œํฌ๋กœ๋“œ ์•„์ด๋ดํ‹ฐํ‹ฐ๊ฐ€ ์‚ฌ์šฉ ์„ค์ •๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    ๋ฆฌ์ „ ํด๋Ÿฌ์Šคํ„ฐ

    gcloud container clusters describe $CLUSTER_NAME \
      --region $CLUSTER_LOCATION \
      --project $PROJECT_ID \
      --flatten 'workloadIdentityConfig'

    ์˜์—ญ ํด๋Ÿฌ์Šคํ„ฐ

    gcloud container clusters describe $CLUSTER_NAME \
      --zone $CLUSTER_LOCATION \
      --project $PROJECT_ID \
      --flatten 'workloadIdentityConfig'

    ๋‹ค์Œ๊ณผ ์œ ์‚ฌํ•˜๊ฒŒ ์ถœ๋ ฅ๋ฉ๋‹ˆ๋‹ค.

      ---
      workloadPool: PROJECT_ID.svc.id.goog

    ๊ฒฐ๊ณผ์— null๊ฐ€ ๋Œ€์‹  ํ‘œ์‹œ๋˜๋ฉด ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ํด๋Ÿฌ์Šคํ„ฐ์— ๋Œ€ํ•ด ์›Œํฌ๋กœ๋“œ ์•„์ด๋ดํ‹ฐํ‹ฐ๋ฅผ ์‚ฌ์šฉ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

    ๋ฆฌ์ „ ํด๋Ÿฌ์Šคํ„ฐ

    gcloud container clusters update $CLUSTER_NAME \
      --workload-pool=$PROJECT_ID.svc.id.goog \
      --project $PROJECT_ID \
      --region $CLUSTER_LOCATION

    ์˜์—ญ ํด๋Ÿฌ์Šคํ„ฐ

    gcloud container clusters update  $CLUSTER_NAME \
      --workload-pool=$PROJECT_ID.svc.id.goog \
      --zone $CLUSTER_LOCATION \
      --project $PROJECT_ID
  5. ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๊ฐ ๋…ธ๋“œ ํ’€์— ๋Œ€ํ•ด ์›Œํฌ๋กœ๋“œ ์•„์ด๋ดํ‹ฐํ‹ฐ๋ฅผ ์‚ฌ์šฉ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ์ด ์ž‘์—…์€ ๊ฐ ๋…ธ๋“œ์— ๋Œ€ํ•ด ์ตœ๋Œ€ 30๋ถ„ ์ •๋„ ๊ฑธ๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    ๋ฆฌ์ „ ํด๋Ÿฌ์Šคํ„ฐ

    gcloud container node-pools update NODE_POOL_NAME \
      --cluster=$CLUSTER_NAME \
      --region $CLUSTER_LOCATION \
      --project $PROJECT_ID \
      --workload-metadata=GKE_METADATA

    ์˜์—ญ ํด๋Ÿฌ์Šคํ„ฐ

    gcloud container node-pools update NODE_POOL_NAME \
      --cluster=$CLUSTER_NAME \
      --zone $CLUSTER_LOCATION \
      --project $PROJECT_ID \
      --workload-metadata=GKE_METADATA

    ์—ฌ๊ธฐ์„œ NODE_POOL_NAME๋Š” ๊ฐ ๋…ธ๋“œ ํ’€์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค. ๋Œ€๋ถ€๋ถ„์˜ Apigee Hybrid ์„ค์น˜์—์„œ ๋‘ ๊ธฐ๋ณธ ๋…ธ๋“œ ํ’€์˜ ์ด๋ฆ„์€ apigee-data ๋ฐ apigee-runtime์ž…๋‹ˆ๋‹ค.

  6. ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๋…ธ๋“œ ํ’€์—์„œ ์›Œํฌ๋กœ๋“œ ์•„์ด๋ดํ‹ฐํ‹ฐ๊ฐ€ ์‚ฌ์šฉ ์„ค์ •๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

    ๋ฆฌ์ „ ํด๋Ÿฌ์Šคํ„ฐ

    gcloud container node-pools describe apigee-data \
      --cluster $CLUSTER_NAME \
      --region $CLUSTER_LOCATION \
      --project $PROJECT_ID \
      --flatten "config:"
    gcloud container node-pools describe apigee-runtime \
      --cluster $CLUSTER_NAME \
      --region $CLUSTER_LOCATION \
      --project $PROJECT_ID \
      --flatten "config:"

    ์˜์—ญ ํด๋Ÿฌ์Šคํ„ฐ

    gcloud container node-pools describe apigee-data \
      --cluster $CLUSTER_NAME \
      --zone $CLUSTER_LOCATION \
      --project $PROJECT_ID \
      --flatten "config:"
    gcloud container node-pools describe apigee-runtime \
      --cluster $CLUSTER_NAME \
      --zone $CLUSTER_LOCATION \
      --project $PROJECT_ID \
      --flatten "config:"

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

    ---
    diskSizeGb: 100
    diskType: pd-standard
    ...
    workloadMetadataConfig:
      mode: GKE_METADATA
        

์›Œํฌ๋กœ๋“œ ์•„์ด๋ดํ‹ฐํ‹ฐ ๊ตฌ์„ฑ

๋‹ค์Œ ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ๊ตฌ์„ฑ์š”์†Œ์— ๋Œ€ํ•ด ์›Œํฌ๋กœ๋“œ ์•„์ด๋ดํ‹ฐํ‹ฐ๋ฅผ ์‚ฌ์šฉ ์„ค์ •ํ•˜๋ ค๋ฉด ๋‹ค์Œ ์ ˆ์ฐจ๋ฅผ ๋”ฐ๋ฅด์„ธ์š”.

  • apigee-datastore
  • apigee-telemetry
  • apigee-org
  • apigee-env

apigee-datastore, apigee-env, apigee-org, apigee-telemetry ์ฐจํŠธ์— --dry-run ํ”Œ๋ž˜๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ helm upgrade๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ์˜ฌ๋ฐ”๋ฅธ GSA ๋ฐ KSA ์ด๋ฆ„์œผ๋กœ ์›Œํฌ๋กœ๋“œ ์•„์ด๋ดํ‹ฐํ‹ฐ๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ๋ช…๋ น์–ด๊ฐ€ ์ถœ๋ ฅ์— ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

helm upgrade datastore apigee-datastore/ \
  --namespace $NAMESPACE \
  -f overrides.yaml \
  --dry-run
NAME: datastore
  ...
For C* backup GKE Workload Identity, please make sure to add the below membership to the IAM policy binding using the respective kubernetes SA (KSA).
  gcloud iam service-accounts add-iam-policy-binding  \
        --role roles/iam.workloadIdentityUser \
        --member "serviceAccount:my-project.svc.id.goog[apigee/apigee-cassandra-backup-sa]" \
        --project :my-project
  1. apigee-datastore์— ๋Œ€ํ•ด ์›Œํฌ๋กœ๋“œ ์•„์ด๋ดํ‹ฐํ‹ฐ๋ฅผ ์„ค์ •ํ•˜๋Š” ๋ช…๋ น์–ด๋ฅผ ๊ฐ€์ ธ์˜ค๊ณ  ์ถœ๋ ฅ์—์„œ NOTES: ์•„๋ž˜์— ์žˆ๋Š” ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.
    helm upgrade datastore apigee-datastore/ \
      --namespace $NAMESPACE \
      -f overrides.yaml \
      --dry-run
  2. apigee-telemetry์— ๋Œ€ํ•ด ์›Œํฌ๋กœ๋“œ ์•„์ด๋ดํ‹ฐํ‹ฐ๋ฅผ ์„ค์ •ํ•˜๋Š” ๋ช…๋ น์–ด๋ฅผ ๊ฐ€์ ธ์˜ค๊ณ  ์ถœ๋ ฅ์—์„œ NOTES: ์•„๋ž˜์— ์žˆ๋Š” ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.
    helm upgrade telemetry apigee-telemetry/ \
      --namespace $NAMESPACE \
      -f overrides.yaml \
      --dry-run
  3. apigee-org์— ๋Œ€ํ•ด ์›Œํฌ๋กœ๋“œ ์•„์ด๋ดํ‹ฐํ‹ฐ๋ฅผ ์„ค์ •ํ•˜๋Š” ๋ช…๋ น์–ด๋ฅผ ๊ฐ€์ ธ์˜ค๊ณ  ์ถœ๋ ฅ์—์„œ NOTES: ์•„๋ž˜์— ์žˆ๋Š” ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.
    helm upgrade $ORG_NAME apigee-org/ \
      --namespace $NAMESPACE \
      -f overrides.yaml \
      --dry-run
  4. apigee-env์— ๋Œ€ํ•ด ์›Œํฌ๋กœ๋“œ ์•„์ด๋ดํ‹ฐํ‹ฐ๋ฅผ ์„ค์ •ํ•˜๋Š” ๋ช…๋ น์–ด๋ฅผ ๊ฐ€์ ธ์˜ค๊ณ  ์ถœ๋ ฅ์—์„œ NOTES: ์•„๋ž˜์— ์žˆ๋Š” ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.
    helm upgrade $ENV_NAME apigee-env/ \
      --namespace $NAMESPACE \
      --set env=ENV_NAME \
      -f overrides.yaml \
      --dry-run

    ์„ค์น˜์˜ ๊ฐ ํ™˜๊ฒฝ์—์„œ ์ด ๋‹จ๊ณ„๋ฅผ ๋ฐ˜๋ณตํ•ฉ๋‹ˆ๋‹ค.

  5. (์„ ํƒ์‚ฌํ•ญ) Google Cloud console์˜ Kubernetes: ์›Œํฌ๋กœ๋“œ ๊ฐœ์š” ํŽ˜์ด์ง€์—์„œ Kubernetes ์„œ๋น„์Šค ๊ณ„์ •์˜ ์ƒํƒœ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    ์›Œํฌ๋กœ๋“œ๋กœ ์ด๋™

๋‹ค์Œ ๋‹จ๊ณ„

๋‹ค์Œ ๋‹จ๊ณ„์—์„œ๋Š” Apigee ์ธ๊ทธ๋ ˆ์Šค ๊ฒŒ์ดํŠธ์›จ์ด๋ฅผ ๊ตฌ์„ฑํ•˜๊ณ  ํ”„๋ก์‹œ๋ฅผ ๋ฐฐํฌํ•˜์—ฌ ์„ค์น˜๋ฅผ ํ…Œ์ŠคํŠธํ•ฉ๋‹ˆ๋‹ค.

(๋‹ค์Œ) 1๋‹จ๊ณ„: Apigee ์ธ๊ทธ๋ ˆ์Šค ๋…ธ์ถœ 2