GKE์—์„œ ์›Œํฌ๋กœ๋“œ ์•„์ด๋ดํ‹ฐํ‹ฐ ์‚ฌ์šฉ ์„ค์ •

์ด ์ฃผ์ œ์—์„œ๋Š” GKE์—์„œ Apigee Hybrid์˜ ์›Œํฌ๋กœ๋“œ ์•„์ด๋ดํ‹ฐํ‹ฐ๋ฅผ ์‚ฌ์šฉ ์„ค์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

Apigee Hybrid AKS ๋˜๋Š” EKS๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ AKS ๋ฐ EKS์—์„œ ์›Œํฌ๋กœ๋“œ ์•„์ด๋ดํ‹ฐํ‹ฐ ์ œํœด ์‚ฌ์šฉ ์„ค์ •์˜ ์•ˆ๋‚ด๋ฅผ ๋”ฐ๋ฅด์„ธ์š”.

๊ฐœ์š”

์›Œํฌ๋กœ๋“œ ์•„์ด๋ดํ‹ฐํ‹ฐ๋Š” GKE(Google Kubernetes Engine) ๋‚ด์—์„œ ์‹คํ–‰๋˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด Google Cloud ์„œ๋น„์Šค์— ์•ก์„ธ์Šคํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ์›Œํฌ๋กœ๋“œ ์•„์ด๋ดํ‹ฐํ‹ฐ์˜ ๊ฐœ์š”๋Š” ๋‹ค์Œ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

Google Cloud IAM ์„œ๋น„์Šค ๊ณ„์ •์€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด Google API์— ์š”์ฒญ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ID์ž…๋‹ˆ๋‹ค. ๋ฌธ์„œ์—์„œ๋Š” ์ด๋Ÿฌํ•œ ์„œ๋น„์Šค ๊ณ„์ •์„ GSA(Google ์„œ๋น„์Šค ๊ณ„์ •)๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. GSA์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์„œ๋น„์Šค ๊ณ„์ •์„ ์ฐธ์กฐํ•˜์„ธ์š”.

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

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

์ด ์ ˆ์ฐจ์—์„œ ์‚ฌ์šฉ๋œ ํ™˜๊ฒฝ ๋ณ€์ˆ˜

์ด ๋‹จ๊ณ„์—์„œ๋Š” ๋‹ค์Œ ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋ช…๋ น์–ด ์…ธ์—์„œ ์ด๋“ค์„ ์„ค์ •ํ•˜๊ฑฐ๋‚˜ ์ฝ”๋“œ ์ƒ˜ํ”Œ์—์„œ ์‹ค์ œ ๊ฐ’์œผ๋กœ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.

  • PROJECT_ID: Google Cloud ํ”„๋กœ์ ํŠธ์˜ ID
  • ORG_NAME: Apigee ์กฐ์ง์˜ ์ด๋ฆ„
  • ENV_NAME: Apigee ํ™˜๊ฒฝ์˜ ์ด๋ฆ„
  • NAMESPACE: Apigee ๋„ค์ž„์ŠคํŽ˜์ด์Šค(์ผ๋ฐ˜์ ์œผ๋กœ apigee)
  • CLUSTER_LOCATION: Kubernetes ํด๋Ÿฌ์Šคํ„ฐ์˜ ๋ฆฌ์ „ ๋˜๋Š” ์˜์—ญ(์˜ˆ: us-west1)
  • CLUSTER_NAME: ํด๋Ÿฌ์Šคํ„ฐ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค.

ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ํ™•์ธ:

echo $PROJECT_ID
echo $ORG_NAME
echo $ENV_NAME
echo $NAMESPACE
echo $CLUSTER_LOCATION
echo $CLUSTER_NAME

ํ•„์š”ํ•œ ๋ณ€์ˆ˜ ์ดˆ๊ธฐํ™”:

export PROJECT_ID=my-project-id
export ORG_NAME=$PROJECT_ID
export ENV_NAME=my-environment-name
export NAMESPACE=apigee
export CLUSTER_LOCATION=my-cluster-location
export CLUSTER_NAME=my-cluster-name

์›Œํฌ๋กœ๋“œ ์•„์ด๋ดํ‹ฐํ‹ฐ ๋ฐ ์„œ๋น„์Šค ๊ณ„์ • ํ‚ค ํŒŒ์ผ

GKE์—์„œ Apigee Hybrid๋ฅผ ์‹คํ–‰ํ•  ๋•Œ ํ‘œ์ค€ ๋ฐฉ์‹์€ ๊ฐ ์„œ๋น„์Šค ๊ณ„์ •์˜ ๋น„๊ณต๊ฐœ ํ‚ค(.json ํŒŒ์ผ)๋ฅผ ๋งŒ๋“ค๊ณ  ๋‹ค์šด๋กœ๋“œํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์›Œํฌ๋กœ๋“œ ์•„์ด๋ดํ‹ฐํ‹ฐ๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ๋Š” ์„œ๋น„์Šค ๊ณ„์ • ๋น„๊ณต๊ฐœ ํ‚ค๋ฅผ ๋‹ค์šด๋กœ๋“œํ•˜๊ณ  GKE ํด๋Ÿฌ์Šคํ„ฐ์— ์ถ”๊ฐ€ํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

Apigee Hybrid ์„ค์น˜์˜ ์ผ๋ถ€๋กœ ์„œ๋น„์Šค ๊ณ„์ • ํ‚ค ํŒŒ์ผ์„ ๋‹ค์šด๋กœ๋“œํ•œ ๊ฒฝ์šฐ ์›Œํฌ๋กœ๋“œ ์•„์ด๋ดํ‹ฐํ‹ฐ๋ฅผ ์‚ฌ์šฉ ์„ค์ •ํ•œ ํ›„ ์‚ญ์ œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋Œ€๋ถ€๋ถ„์˜ ์„ค์น˜์—์„œ๋Š” ๊ฐ ๊ตฌ์„ฑ์š”์†Œ ์ฐจํŠธ์˜ ๋””๋ ‰ํ„ฐ๋ฆฌ์— ์žˆ์Šต๋‹ˆ๋‹ค.

Apigee Hybrid์šฉ ์›Œํฌ๋กœ๋“œ ์•„์ด๋ดํ‹ฐํ‹ฐ ์‚ฌ์šฉ ์„ค์ •

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

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

  1. ์žฌ์ •์˜ ํŒŒ์ผ์—์„œ ์›Œํฌ๋กœ๋“œ ์•„์ด๋ดํ‹ฐํ‹ฐ๊ฐ€ ์‚ฌ์šฉ ์„ค์ •๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ์žฌ์ •์˜ ํŒŒ์ผ์—์„œ ์‚ฌ์šฉ ์„ค์ •ํ•ด์•ผ ํ•˜๋ฉฐ ๋‹ค์Œ ๊ตฌ์„ฑ ์†์„ฑ์— ๋Œ€ํ•œ ๊ฐ’์ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  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 ๋˜๋Š” --dry-run=server ํ”Œ๋ž˜๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ helm upgrade๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ์˜ฌ๋ฐ”๋ฅธ GSA ๋ฐ KSA ์ด๋ฆ„์œผ๋กœ ์›Œํฌ๋กœ๋“œ ์•„์ด๋ดํ‹ฐํ‹ฐ๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ๋ช…๋ น์–ด๊ฐ€ ์ถœ๋ ฅ์— ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

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

helm upgrade datastore apigee-datastore/ \
  --namespace $NAMESPACE \
  -f overrides.yaml \
  --dry-run=server
NAME: datastore
...
For Cassandra 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 my-gsa@my-project-id.iam.gserviceaccount.com \
      --role roles/iam.workloadIdentityUser \
      --member "serviceAccount:my-project-id.svc.id.goog[apigee/apigee-cassandra-default]" \
      --project my-project-id

kubectl annotate serviceaccount apigee-cassandra-default \
      iam.gke.io/gcp-service-account=my-gsa@my-project-id.iam.gserviceaccount.com \
      --namespace apigee
  1. apigee-datastore์— ์›Œํฌ๋กœ๋“œ ์•„์ด๋ดํ‹ฐํ‹ฐ๋ฅผ ์„ค์ •ํ•˜๋Š” ๋ช…๋ น์–ด๋ฅผ ๊ฐ€์ ธ์˜ค๊ณ  ์ถœ๋ ฅ์—์„œ NOTES: ์•„๋ž˜์— ์žˆ๋Š” ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.
    helm upgrade datastore apigee-datastore/ \
      --namespace $NAMESPACE \
      -f overrides.yaml \
      --dry-run=server
  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

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

์›Œํฌ๋กœ๋“œ ์•„์ด๋ดํ‹ฐํ‹ฐ ํ™•์ธ

  1. ๋‹จ๊ณ„๊ฐ€ ์˜ฌ๋ฐ”๋ฅธ์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
    gcloud config set project $PROJECT_ID
    
    kubectl run --rm -it --image google/cloud-sdk:slim \
      --namespace $NAMESPACE workload-identity-test\
      -- gcloud auth list

    ๋ช…๋ น์–ด ํ”„๋กฌํ”„ํŠธ๊ฐ€ ๋ณด์ด์ง€ ์•Š์œผ๋ฉด Enter๋ฅผ ๋ˆŒ๋Ÿฌ ๋ณด์„ธ์š”.

    ๋‹จ๊ณ„๊ฐ€ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์‹คํ–‰๋˜์—ˆ๋‹ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์‘๋‹ต์ด ํ‘œ์‹œ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

                       Credentialed Accounts
    ACTIVE  ACCOUNT
    *       GSA@PROJECT_ID.iam.gserviceaccount.com
  2. ์ด์ „ ์„ค์น˜์—์„œ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋Š” ๊ฒฝ์šฐ ์„œ๋น„์Šค ๊ณ„์ • ๋น„๊ณต๊ฐœ ํ‚ค๊ฐ€ ํฌํ•จ๋œ ๋ณด์•ˆ ๋น„๋ฐ€์„ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค.
    kubectl delete secrets -n $NAMESPACE $(k get secrets -n $NAMESPACE | grep svc-account | awk '{print $1}')
    
  3. ๋กœ๊ทธ ํ™•์ธ:
    kubectl logs -n $NAMESPACE -l app=apigee=synchronizer,env=$ENV_NAME,org=$ORG_NAME apigee-synchronizer
    
  4. (์„ ํƒ์‚ฌํ•ญ) Google Cloud console์˜ Kubernetes: ์›Œํฌ๋กœ๋“œ ๊ฐœ์š” ํŽ˜์ด์ง€์—์„œ Kubernetes ์„œ๋น„์Šค ๊ณ„์ •์˜ ์ƒํƒœ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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