Apigee Hybrid๋ฅผ ๋ฒ„์ „ 1.9๋กœ ์—…๊ทธ๋ ˆ์ด๋“œ

์ด ์ ˆ์ฐจ์—์„œ๋Š” Apigee Hybrid ๋ฒ„์ „ 1.8.x์—์„œ Apigee Hybrid ๋ฒ„์ „ 1.9.4๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๊ณ  ์ด์ „ ์ถœ์‹œ ๋ฒ„์ „์ธ Hybrid 1.9.x์—์„œ ๋ฒ„์ „ 1.9.4๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋Š” ์ž‘์—…์„ ๋‹ค๋ฃน๋‹ˆ๋‹ค.

๋ถ€ ๋ฒ„์ „ ์—…๊ทธ๋ ˆ์ด๋“œ(์˜ˆ: ๋ฒ„์ „ 1.8์—์„œ 1.9๋กœ)์™€ ํŒจ์น˜ ์ถœ์‹œ ๋ฒ„์ „ ์—…๊ทธ๋ ˆ์ด๋“œ(์˜ˆ: 1.9.0์—์„œ 1.9.4๋กœ)์— ๋™์ผํ•œ ์ ˆ์ฐจ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

Apigee Hybrid ๋ฒ„์ „ 1.7 ์ดํ•˜์—์„œ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋Š” ๊ฒฝ์šฐ ๋จผ์ € Hybrid ๋ฒ„์ „ 1.8๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•œ ํ›„์— ๋ฒ„์ „ 1.9.4๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. Apigee Hybrid๋ฅผ ๋ฒ„์ „ 1.8๋กœ ์—…๊ทธ๋ ˆ์ด๋“œ์˜ ์•ˆ๋‚ด๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

Apigee Hybrid๋Š” ๋ฒ„์ „ 1.9.0๋ถ€ํ„ฐ Apigee ์ธ๊ทธ๋ ˆ์Šค ๊ฒŒ์ดํŠธ์›จ์ด๋งŒ ์ธ๊ทธ๋ ˆ์Šค ๋ ˆ์ด์–ด๋กœ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

๋ฒ„์ „ 1.9.4๋กœ ์—…๊ทธ๋ ˆ์ด๋“œ ๊ฐœ์š”

Apigee Hybrid ์—…๊ทธ๋ ˆ์ด๋“œ ์ ˆ์ฐจ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์„น์…˜์œผ๋กœ ์ •๋ฆฌ๋ฉ๋‹ˆ๋‹ค.

  1. ์—…๊ทธ๋ ˆ์ด๋“œ๋ฅผ ์ค€๋น„ํ•ฉ๋‹ˆ๋‹ค.
  2. Hybrid ๋Ÿฐํƒ€์ž„ ๋ฒ„์ „ 1.9.4๋ฅผ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.

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

  • ์ด ์—…๊ทธ๋ ˆ์ด๋“œ ์•ˆ๋‚ด์—์„œ๋Š” Apigee Hybrid ๋ฒ„์ „ 1.8.x๊ฐ€ ์„ค์น˜๋˜์–ด ์žˆ๊ณ  ๋ฒ„์ „ 1.9.4๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋ ค๊ณ  ํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค. ์ด์ „ ๋ฒ„์ „์—์„œ ์—…๋ฐ์ดํŠธํ•˜๋Š” ๊ฒฝ์šฐ Apigee Hybrid๋ฅผ ๋ฒ„์ „ 1.8๋กœ ์—…๊ทธ๋ ˆ์ด๋“œ ์•ˆ๋‚ด๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.
  • Apigee Hybrid ๋ฒ„์ „ 1.8์—์„œ๋Š” Apigee ์ธ๊ทธ๋ ˆ์Šค ๊ฒŒ์ดํŠธ์›จ์ด๋ฅผ Anthos Service Mesh์˜ ๋Œ€์ฒด ์ธ๊ทธ๋ ˆ์Šค ๋ ˆ์ด์–ด๋กœ ๋„์ž…ํ–ˆ์Šต๋‹ˆ๋‹ค. Apigee Hybrid๋Š” ๋ฒ„์ „ 1.9.0๋ถ€ํ„ฐ Apigee ์ธ๊ทธ๋ ˆ์Šค ๊ฒŒ์ดํŠธ์›จ์ด๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋ฉฐ ๋” ์ด์ƒ ์ธ๊ทธ๋ ˆ์Šค์— Anthos Service Mesh ์‚ฌ์šฉ์„ ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋Š” ์„ค์น˜์—์„œ Anthos Service Mesh๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ๋จผ์ € Apigee ์ธ๊ทธ๋ ˆ์Šค ๊ฒŒ์ดํŠธ์›จ์ด๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ•œ ํ›„์— ๋ฒ„์ „ 1.9.4๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

    Apigee ์ธ๊ทธ๋ ˆ์Šค ๊ฒŒ์ดํŠธ์›จ์ด๋Š” ์ธ๊ทธ๋ ˆ์Šค ๊ฒŒ์ดํŠธ์›จ์ด์— Anthos Service Mesh ๊ธฐ๋Šฅ ์ค‘ ์ผ๋ถ€๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๊ธฐ๋Šฅ์˜ ๊ด€๋ฆฌ์™€ ์—…๊ทธ๋ ˆ์ด๋“œ๋Š” Apigee Hybrid์—์„œ ์ž๋™์œผ๋กœ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ Apigee Hybrid ์ธ๊ทธ๋ ˆ์Šค ๊ฒŒ์ดํŠธ์›จ์ด๋ฅผ ์„ค์น˜, ์—…๊ทธ๋ ˆ์ด๋“œ, ๊ด€๋ฆฌํ•˜๋Š” ๋ฐ Anthos Service Mesh์— ๋Œ€ํ•œ ์ „๋ฌธ ์ง€์‹์ด ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

    ์ž์„ธํ•œ ์•ˆ๋‚ด๋Š” ํ•˜์ด๋ธŒ๋ฆฌ๋“œ v1.8 ๋ฌธ์„œ์˜ Apigee ์ธ๊ทธ๋ ˆ์Šค ๊ฒŒ์ดํŠธ์›จ์ด๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์„ ์ฐธ์กฐํ•˜์„ธ์š”.

๋ฒ„์ „ 1.9๋กœ ์—…๊ทธ๋ ˆ์ด๋“œ ์ค€๋น„

  1. ์ด ์•ˆ๋‚ด์—์„œ๋Š” apigeectl์„ ์„ค์น˜ํ•œ ํŒŒ์ผ ์‹œ์Šคํ…œ์—์„œ ๋””๋ ‰ํ„ฐ๋ฆฌ์˜ ํ™˜๊ฒฝ ๋ณ€์ˆ˜ APIGEECTL_HOME์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ํ•„์š”ํ•œ ๊ฒฝ์šฐ ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ apigeectl ๋””๋ ‰ํ„ฐ๋ฆฌ๋กœ ๋ณ€๊ฒฝํ•˜๊ณ  ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ณ€์ˆ˜๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.

    Linux

    export APIGEECTL_HOME=$PWD
    echo $APIGEECTL_HOME

    MacOS

    export APIGEECTL_HOME=$PWD
    echo $APIGEECTL_HOME

    Windows

    set APIGEECTL_HOME=%CD%
    echo %APIGEECTL_HOME%
  2. ๋ฒ„์ „ 1.8 $APIGEECTL_HOME/ ๋””๋ ‰ํ„ฐ๋ฆฌ์˜ ๋ฐฑ์—… ์‚ฌ๋ณธ์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
    tar -czvf $APIGEECTL_HOME/../apigeectl-v1.8-backup.tar.gz $APIGEECTL_HOME
  3. Cassandra ๋ฐฑ์—… ๋ฐ ๋ณต๊ตฌ์˜ ์•ˆ๋‚ด์— ๋”ฐ๋ผ Cassandra ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๋ฐฑ์—…ํ•ฉ๋‹ˆ๋‹ค.

Apigee ๋Ÿฐํƒ€์ž„์˜ ์„œ๋น„์Šค ๊ณ„์ •์— Cloud Trace ์—์ด์ „ํŠธ ์—ญํ• ์„ ์ถ”๊ฐ€ (์„ ํƒ์‚ฌํ•ญ)

์„ ํƒ์‚ฌํ•ญ: Cloud Trace๋ฅผ ์‚ฌ์šฉํ•  ๊ณ„ํš์ด๊ณ  Hybrid v1.8 ์„ค์น˜์— Cloud Trace Agent ์—ญํ• ์„ ์•„์ง ์ถ”๊ฐ€ํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ Apigee ๋Ÿฐํƒ€์ž„ ์„œ๋น„์Šค์˜ ์„œ๋น„์Šค ๊ณ„์ •์— Cloud Trace ์—์ด์ „ํŠธ Google Cloud IAM ์—ญํ• (roles/cloudtrace.agent)์ด ์žˆ๋Š”์ง€ ํ™•์ธํ•˜์„ธ์š”.

ํ”„๋กœ๋•์…˜ ํ™˜๊ฒฝ์—์„œ ๋Ÿฐํƒ€์ž„ ์„œ๋น„์Šค ๊ณ„์ •์€ apigee-runtime์ž…๋‹ˆ๋‹ค. ๋น„ํ”„๋กœ๋•์…˜ ํ™˜๊ฒฝ์˜ ๊ฒฝ์šฐ ๋Ÿฐํƒ€์ž„ ์„œ๋น„์Šค ๊ณ„์ •์€ apigee-non-prod์ž…๋‹ˆ๋‹ค.

Cloud ์ฝ˜์†” > IAM ๋ฐ ๊ด€๋ฆฌ์ž > ์„œ๋น„์Šค ๊ณ„์ • UI์—์„œ ๋˜๋Š” ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ด ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  1. ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์„œ๋น„์Šค ๊ณ„์ •์˜ ์ด๋ฉ”์ผ ์ฃผ์†Œ๋ฅผ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.

    ํ”„๋กœ๋•์…˜

    gcloud iam service-accounts list --filter "apigee-runtime"

    ์ด๋ฉ”์ผ ์ฃผ์†Œ๊ฐ€ apigee-runtime@$ORG_NAME.iam.gserviceaccount.com ํŒจํ„ด๊ณผ ์ผ์น˜ํ•˜๋ฉด ๋‹ค์Œ ๋‹จ๊ณ„์—์„œ ์ด ํŒจํ„ด์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    ๋น„ํ”„๋กœ๋•์…˜

    gcloud iam service-accounts list --filter "apigee-non-prod"

    apigee-non-prod@$ORG_NAME.iam.gserviceaccount.com ํŒจํ„ด๊ณผ ์ผ์น˜ํ•˜๋ฉด ๋‹ค์Œ ๋‹จ๊ณ„์—์„œ ์ด ํŒจํ„ด์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  2. ์„œ๋น„์Šค ๊ณ„์ •์— Cloud Trace ์—์ด์ „ํŠธ ์—ญํ• ์„ ํ• ๋‹นํ•ฉ๋‹ˆ๋‹ค.

    ํ”„๋กœ๋•์…˜

    gcloud projects add-iam-policy-binding $PROJECT_ID \
        --member="serviceAccount:apigee-runtime@$PROJECT_ID.iam.gserviceaccount.com" \
        --role="roles/cloudtrace.agent"

    ๋น„ํ”„๋กœ๋•์…˜

    gcloud projects add-iam-policy-binding $PROJECT_ID \
        --member="serviceAccount:apigee-non-prod@$PROJECT_ID.iam.gserviceaccount.com" \
        --role="roles/cloudtrace.agent"

    ์˜ˆ

    gcloud projects add-iam-policy-binding hybrid-example-project \
        --member="serviceAccount:apigee-runtime@hybrid-example-project.iam.gserviceaccount.com" \
        --role="roles/cloudtrace.agent"

    ์—ฌ๊ธฐ์„œ $PROJECT_ID๋Š” Apigee Hybrid๊ฐ€ ์„ค์น˜๋œ Google Cloud ํ”„๋กœ์ ํŠธ์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค.

์„ค์น˜์—์„œ Anthos Service Mesh๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ Apigee ์ธ๊ทธ๋ ˆ์Šค ๊ฒŒ์ดํŠธ์›จ์ด ์„ค์น˜

Apigee Hybrid๋Š” ๋ฒ„์ „ 1.9๋ถ€ํ„ฐ ์ธ๊ทธ๋ ˆ์Šค์— Anthos Service Mesh ์‚ฌ์šฉ์„ ๋” ์ด์ƒ ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. Hybrid ์„ค์น˜์—์„œ Anthos Service Mesh๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ Hybrid ๋ฒ„์ „ 1.9๋ฅผ ์„ค์น˜ํ•˜๊ธฐ ์ „์— ํ˜„์žฌ ์„ค์น˜๋ฅผ Apigee ์ธ๊ทธ๋ ˆ์Šค ๊ฒŒ์ดํŠธ์›จ์ด๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  1. ingressGateways ์†์„ฑ์„ ์žฌ์ •์˜ ํŒŒ์ผ์— ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

    ๊ตฌ๋ฌธ

      ingressGateways:
      - name: INGRESS_NAME
        replicaCountMin: REPLICAS_MIN
        replicaCountMax: REPLICAS_MAX
        resources:
          requests:
            cpu: CPU_COUNT_REQ
            memory: MEMORY_REQ
          limits:
            cpu: CPU_COUNT_LIMIT
            memory: MEMORY_LIMIT
        svcAnnotations:  # optional.
          SVC_ANNOTATIONS_KEY: SVC_ANNOTATIONS_VALUE
        svcLoadBalancerIP: SVC_LOAD_BALANCER_IP # optional

    ์˜ˆ

      ingressGateways:
      - name: prod1
        replicaCountMin: 2
        replicaCountMax: 100
        resources:
          requests:
            cpu: 1
            memory: 1Gi
          limits:
            cpu: 2
            memory: 2Gi
        svcAnnotations:  # optional. See Known issue 243599452.
          networking.gke.io/load-balancer-type: "Internal"
        svcLoadBalancerIP: 198.252.0.123 
    • INGRESS_NAME์€ ์ธ๊ทธ๋ ˆ์Šค ๊ฒŒ์ดํŠธ์›จ์ด ๋ฐฐํฌ์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค. ๋‹ค์Œ ์š”๊ตฌ์‚ฌํ•ญ์„ ์ถฉ์กฑํ•˜๋Š” ์ด๋ฆ„์ด๋ฉด ๋ฉ๋‹ˆ๋‹ค.
      • ์ตœ๋Œ€ ๊ธธ์ด๋Š” 17์ž(์˜๋ฌธ ๊ธฐ์ค€)์ž…๋‹ˆ๋‹ค.
      • ์†Œ๋ฌธ์ž ์˜์ˆซ์ž ๋ฌธ์ž, '-' ๋˜๋Š” '.'๋งŒ ํฌํ•จํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
      • ์˜์ˆซ์ž ๋ฌธ์ž๋กœ ์‹œ์ž‘ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
      • ์˜์ˆซ์ž ๋ฌธ์ž๋กœ ๋๋‚˜์•ผ ํ•ฉ๋‹ˆ๋‹ค.
      ๊ตฌ์„ฑ ์†์„ฑ ์ฐธ์กฐ์˜ ingressGateways[].name์„ ์ฐธ์กฐํ•˜์„ธ์š”.
    • REPLICAS_MIN ๋ฐ REPLICAS_MAX: ์„ค์น˜์—์„œ Apigee ์ธ๊ทธ๋ ˆ์Šค ๊ฒŒ์ดํŠธ์›จ์ด์˜ ์ตœ์†Œ ๋ฐ ์ตœ๋Œ€ ๋ณต์ œ๋ณธ ์ˆ˜์ž…๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ๊ณผ ๊ธฐ๋ณธ ์„ค์ •์€ ๊ตฌ์„ฑ ์†์„ฑ ์ฐธ์กฐ์˜ ingressGateways[].replicaCountMin ๋ฐ ingressGateways[].replicaCountMax๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.
    • CPU_COUNT_REQ ๋ฐ MEMORY_REQ: ์„ค์น˜์—์„œ Apigee ์ธ๊ทธ๋ ˆ์Šค ๊ฒŒ์ดํŠธ์›จ์ด์˜ ๊ฐ ๋ณต์ œ๋ณธ์— ๋Œ€ํ•œ CPU ๋ฐ ๋ฉ”๋ชจ๋ฆฌ ์š”์ฒญ์ž…๋‹ˆ๋‹ค.

      ์ž์„ธํ•œ ๋‚ด์šฉ๊ณผ ๊ธฐ๋ณธ ์„ค์ •์€ ๊ตฌ์„ฑ ์†์„ฑ ์ฐธ์กฐ์˜ ingressGateways[].resources.requests.cpu ๋ฐ ingressGateways[].resources.requests.memory๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

    • CPU_COUNT_LIMIT ๋ฐ MEMORY_LIMIT: ์„ค์น˜์—์„œ Apigee ์ธ๊ทธ๋ ˆ์Šค ๊ฒŒ์ดํŠธ์›จ์ด์˜ ๊ฐ ๋ณต์ œ๋ณธ์— ๋Œ€ํ•œ ์ตœ๋Œ€ CPU ๋ฐ ๋ฉ”๋ชจ๋ฆฌ ํ•œ๋„์ž…๋‹ˆ๋‹ค

      ์ž์„ธํ•œ ๋‚ด์šฉ๊ณผ ๊ธฐ๋ณธ ์„ค์ •์€ ๊ตฌ์„ฑ ์†์„ฑ ์ฐธ์กฐ์˜ ingressGateways[].resources.limits.cpu ๋ฐ ingressGateways[].resources.limits.memory๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

    • SVC_ANNOTATIONS_KEY SVC_ANNOTATIONS_VALUE(์„ ํƒ์‚ฌํ•ญ):

      ๊ธฐ๋ณธ ์ธ๊ทธ๋ ˆ์Šค ์„œ๋น„์Šค์˜ ์ฃผ์„์„ ์ œ๊ณตํ•˜๋Š” ํ‚ค-๊ฐ’ ์Œ์ž…๋‹ˆ๋‹ค. ์ฃผ์„์€ ๋ถ€ํ•˜ ๋ถ„์‚ฐ๊ธฐ ์œ ํ˜•์„ ๋‚ด๋ถ€ ๋˜๋Š” ์™ธ๋ถ€๋กœ ์„ค์ •ํ•˜๋Š” ๋“ฑ, ํด๋ผ์šฐ๋“œ ํ”Œ๋žซํผ์—์„œ ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ์„ค์น˜๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

      ingressGateways:
          svcAnnotations:
            networking.gke.io/load-balancer-type: "Internal"

      ์ฃผ์„์€ ํ”Œ๋žซํผ๋งˆ๋‹ค ๋‹ค๋ฆ…๋‹ˆ๋‹ค. ํ•„์ˆ˜ ๋ฐ ์ถ”์ฒœ ์ฃผ์„์€ ํ”Œ๋žซํผ ๋ฌธ์„œ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

      ๊ตฌ์„ฑ ์†์„ฑ ์ฐธ์กฐ์˜ ingressGateways[].svcAnnotations๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.
    • SVC_LOAD_BALANCER_IP (์„ ํƒ์‚ฌํ•ญ) ๋ถ€ํ•˜ ๋ถ„์‚ฐ๊ธฐ์— ๊ณ ์ • IP ์ฃผ์†Œ๋ฅผ ํ• ๋‹นํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ถ€ํ•˜ ๋ถ„์‚ฐ๊ธฐ IP ์ฃผ์†Œ ์ง€์ •์„ ์ง€์›ํ•˜๋Š” ํ”Œ๋žซํผ์—์„œ ์ด IP ์ฃผ์†Œ๋กœ ๋ถ€ํ•˜ ๋ถ„์‚ฐ๊ธฐ๊ฐ€ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. ๋ถ€ํ•˜ ๋ถ„์‚ฐ๊ธฐ IP ์ฃผ์†Œ๋ฅผ ์ง€์ •ํ•  ์ˆ˜ ์—†๋Š” ํ”Œ๋žซํผ์—์„œ ์ด ์†์„ฑ์€ ๋ฌด์‹œ๋ฉ๋‹ˆ๋‹ค.

      ๋ถ€ํ•˜ ๋ถ„์‚ฐ๊ธฐ์— ํ• ๋‹น๋œ ๊ณ ์ • IP ์ฃผ์†Œ๊ฐ€ ์—†์œผ๋ฉด ์ด ์†์„ฑ์„ ์žฌ์ •์˜ ํŒŒ์ผ์—์„œ ์ œ์™ธํ•˜์„ธ์š”.

      ๊ตฌ์„ฑ ์†์„ฑ ์ฐธ์กฐ์˜ ingressGateways[].svcLoadBalancerIP๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.
  2. ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ์ ์šฉํ•˜์—ฌ Apigee ์ธ๊ทธ๋ ˆ์Šค ๊ฒŒ์ดํŠธ์›จ์ด๋ฅผ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.
    $APIGEECTL_HOME/apigeectl apply -f overrides/overrides.yaml
  3. Apigee ์ธ๊ทธ๋ ˆ์Šค ๊ฒŒ์ดํŠธ์›จ์ด๋ฅผ ๋…ธ์ถœํ•ฉ๋‹ˆ๋‹ค. Apigee ์ธ๊ทธ๋ ˆ์Šค ๊ฒŒ์ดํŠธ์›จ์ด ๋…ธ์ถœ์˜ ์ ˆ์ฐจ๋ฅผ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค.
  4. ํ”„๋ก์‹œ๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ ์ƒˆ ์ธ๊ทธ๋ ˆ์Šค ๊ฒŒ์ดํŠธ์›จ์ด๋ฅผ ํ…Œ์ŠคํŠธํ•ฉ๋‹ˆ๋‹ค. ํ˜„์žฌ ๋ฐฐํฌ๋œ ๋ชจ๋“  ์ค‘์š” ํ”„๋ก์‹œ๋ฅผ ํ…Œ์ŠคํŠธํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€์žฅ ์ข‹์Šต๋‹ˆ๋‹ค.
  5. ํŠธ๋ž˜ํ”ฝ์„ ์ „ํ™˜ํ•˜๋ ค๋ฉด ์ƒˆ Apigee ์ธ๊ทธ๋ ˆ์Šค ๊ฒŒ์ดํŠธ์›จ์ด์˜ IP ์ฃผ์†Œ๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋„๋ก DNS ๋ ˆ์ฝ”๋“œ๋ฅผ ์—…๋ฐ์ดํŠธํ•ฉ๋‹ˆ๋‹ค. DNS ์ œ๊ณต์—…์ฒด์— ๋”ฐ๋ผ ํŠธ๋ž˜ํ”ฝ์„ ์ƒˆ ์—”๋“œํฌ์ธํŠธ๋กœ ์ ์ง„์ ์œผ๋กœ ์ด๋™ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํŒ: ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Apigee ์ธ๊ทธ๋ ˆ์Šค ๊ฒŒ์ดํŠธ์›จ์ด์˜ ์™ธ๋ถ€ IP ์ฃผ์†Œ๋ฅผ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    kubectl get svc -n apigee -l app=apigee-ingressgateway

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

    NAME                                        TYPE           CLUSTER-IP    EXTERNAL-IP     PORT(S)                                      AGE
    apigee-ingressgateway-prod-hybrid-37a39bd   LoadBalancer   192.0.2.123   233.252.0.123   15021:32049/TCP,80:31624/TCP,443:30723/TCP   16h
  6. ๋Œ€์‹œ๋ณด๋“œ๋ฅผ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜์—ฌ ๋ชจ๋“  ๋Ÿฐํƒ€์ž„ ํŠธ๋ž˜ํ”ฝ์ด ์ž‘๋™ํ•˜๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋“  ๊ฒƒ์ด ์˜ˆ์ƒ๋Œ€๋กœ ์ž‘๋™ํ•˜๋Š” ๊ฒฝ์šฐ์—๋งŒ ๋‹ค์Œ ๋‹จ๊ณ„๋กœ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ด์ „ ์ธ๊ทธ๋ ˆ์Šค ๊ฒŒ์ดํŠธ์›จ์ด(Anthos Service Mesh)๋ฅผ ํ†ต๊ณผํ•˜๋Š” ํŠธ๋ž˜ํ”ฝ์ด ์—†๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. DNS ์บ์‹ฑ์œผ๋กœ ์ธํ•ด DNS ์—…๋ฐ์ดํŠธ ์ „ํŒŒ ์†๋„๊ฐ€ ๋А๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  7. Apigee๊ฐ€ Anthos Service Mesh์— ๊ตฌ์„ฑ์„ ์ œ๊ณตํ•˜์ง€ ์•Š๋„๋ก ํ•˜๋ ค๋ฉด Apigee ์ธ๊ทธ๋ ˆ์Šค ๊ฒŒ์ดํŠธ์›จ์ด ๊ด€๋ฆฌ ๊ฐ€์ด๋“œ์—์„œ ASM์— ๊ตฌ์„ฑ ์ œ๊ณต ์ค‘์ง€์— ์žˆ๋Š” ๋‹จ๊ณ„๋ฅผ ๋”ฐ๋ฅด์„ธ์š”.
  8. API ํ”„๋ก์‹œ ํŠธ๋ž˜ํ”ฝ์„ ๋‹ค์‹œ ํ…Œ์ŠคํŠธํ•˜๊ณ  ๋ชจ๋‹ˆํ„ฐ๋งํ•ฉ๋‹ˆ๋‹ค.
  9. Anthos Service Mesh ๋ฌธ์„œ์˜ ์•ˆ๋‚ด์— ๋”ฐ๋ผ ํด๋Ÿฌ์Šคํ„ฐ์—์„œ Anthos Service Mesh๋ฅผ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค.

Hybrid 1.9.4 ๋Ÿฐํƒ€์ž„ ์„ค์น˜

  1. ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ๊ธฐ๋ณธ ๋””๋ ‰ํ„ฐ๋ฆฌ(apigeectl ์‹คํ–‰ ํŒŒ์ผ์ด ์žˆ๋Š” ๋””๋ ‰ํ„ฐ๋ฆฌ์˜ ์ƒ์œ„ ๋””๋ ‰ํ„ฐ๋ฆฌ)์— ์žˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
    cd $APIGEECTL_HOME/..
  2. ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์šด์˜์ฒด์ œ์šฉ ์ถœ์‹œ ๋ฒ„์ „ ํŒจํ‚ค์ง€๋ฅผ ๋‹ค์šด๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ ํ…Œ์ด๋ธ”์—์„œ ํ”Œ๋žซํผ์„ ์„ ํƒํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

    Linux

    Linux 64๋น„ํŠธ:

    curl -LO \
      https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/1.9.4/apigeectl_linux_64.tar.gz

    MacOS

    Mac 64๋น„ํŠธ:

    curl -LO \
      https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/1.9.4/apigeectl_mac_64.tar.gz

    Windows

    Windows 64 ๋น„ํŠธ:

    curl -LO ^
      https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/1.9.4/apigeectl_windows_64.zip
  3. ํ˜„์žฌ apigeectl/ ๋””๋ ‰ํ„ฐ๋ฆฌ์˜ ์ด๋ฆ„์„ ๋ฐฑ์—… ๋””๋ ‰ํ„ฐ๋ฆฌ ์ด๋ฆ„์œผ๋กœ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

    Linux

    mv $APIGEECTL_HOME/ $APIGEECTL_HOME-v1.8/

    MacOS

    mv $APIGEECTL_HOME/ $APIGEECTL_HOME-v1.8/ 

    Windows

    rename %APIGEECTL_HOME% %APIGEECTL_HOME%-v1.8 
  4. ๋‹ค์šด๋กœ๋“œํ•œ gzip ํŒŒ์ผ ์ฝ˜ํ…์ธ ๋ฅผ Hybrid ๊ธฐ๋ณธ ๋””๋ ‰ํ„ฐ๋ฆฌ์— ์ถ”์ถœํ•ฉ๋‹ˆ๋‹ค. Hybrid ๊ธฐ๋ณธ ๋””๋ ‰ํ„ฐ๋ฆฌ๋Š” ์ด๋ฆ„์ด ๋ณ€๊ฒฝ๋œ apigeectl-v1.8 ๋””๋ ‰ํ„ฐ๋ฆฌ๊ฐ€ ์žˆ๋Š” ๋””๋ ‰ํ„ฐ๋ฆฌ์ž…๋‹ˆ๋‹ค.

    Linux

    tar xvzf filename.tar.gz -C ./

    MacOS

    tar xvzf filename.tar.gz -C ./

    Windows

    tar xvzf filename.zip -C ./
  5. tar ์ฝ˜ํ…์ธ ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ์ด๋ฆ„์— ํ•ด๋‹น ๋ฒ„์ „๊ณผ ํ”Œ๋žซํผ์ด ํฌํ•จ๋œ ๋””๋ ‰ํ„ฐ๋ฆฌ๋กœ ํ™•์žฅ๋ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค๋ฉด ./apigeectl_1.9.4-xxxxxxx_linux_64์ž…๋‹ˆ๋‹ค. ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋””๋ ‰ํ„ฐ๋ฆฌ ์ด๋ฆ„์„ apigeectl๋กœ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค.

    Linux

    mv apigeectl_1.9.4-xxxxxxx_linux_64 apigeectl

    MacOS

    mv apigeectl_1.9.4-xxxxxxx_mac_64 apigeectl

    Windows

    rename apigeectl_1.9.4-xxxxxxx_windows_64 apigeectl
  6. apigeectl ๋””๋ ‰ํ„ฐ๋ฆฌ๋กœ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค.
    cd ./apigeectl

    ์ด ๋””๋ ‰ํ„ฐ๋ฆฌ๋Š” apigeectl ํ™ˆ ๋””๋ ‰ํ„ฐ๋ฆฌ์ž…๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์— apigeectl ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ๋ช…๋ น์–ด๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

  7. ์ด ์•ˆ๋‚ด์—์„œ๋Š” apigeectl ์œ ํ‹ธ๋ฆฌํ‹ฐ๊ฐ€ ์„ค์น˜๋œ ํŒŒ์ผ ์‹œ์Šคํ…œ์˜ ๋””๋ ‰ํ„ฐ๋ฆฌ์— ํ™˜๊ฒฝ ๋ณ€์ˆ˜ $APIGEECTL_HOME์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ํ•„์š”ํ•œ ๊ฒฝ์šฐ ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ apigeectl ๋””๋ ‰ํ„ฐ๋ฆฌ๋กœ ๋ณ€๊ฒฝํ•˜๊ณ  ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ณ€์ˆ˜๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.

    Linux

    export APIGEECTL_HOME=$PWD
    echo $APIGEECTL_HOME

    MacOS

    export APIGEECTL_HOME=$PWD
    echo $APIGEECTL_HOME

    Windows

    set APIGEECTL_HOME=%CD%
    echo %APIGEECTL_HOME%
  8. version ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ apigeectl์˜ ๋ฒ„์ „์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
    ./apigeectl version
    Version: 1.9.4
  9. hybrid-base-directory/hybrid-files ๋””๋ ‰ํ„ฐ๋ฆฌ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค. hybrid-files ๋””๋ ‰ํ„ฐ๋ฆฌ์—๋Š” ์žฌ์ •์˜ ํŒŒ์ผ, ์ธ์ฆ์„œ, ์„œ๋น„์Šค ๊ณ„์ •๊ณผ ๊ฐ™์€ ๊ตฌ์„ฑ ํŒŒ์ผ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
    cd $APIGEECTL_HOME/../hybrid-files
  10. ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ kubectl์ด ์˜ฌ๋ฐ”๋ฅธ ์ปจํ…์ŠคํŠธ๋กœ ์„ค์ •๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ํ˜„์žฌ ์ปจํ…์ŠคํŠธ๋ฅผ Apigee Hybrid๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋Š” ํด๋Ÿฌ์Šคํ„ฐ๋กœ ์„ค์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
    kubectl config get-contexts | grep \*
  11. hybrid-files ๋””๋ ‰ํ„ฐ๋ฆฌ์—์„œ ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.
    1. ๋‹ค์Œ ๊ธฐํ˜ธํ™”๋œ ๋งํฌ๋ฅผ $APIGEECTL_HOME์œผ๋กœ ์—…๋ฐ์ดํŠธํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋งํฌ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด hybrid-files ๋””๋ ‰ํ„ฐ๋ฆฌ ๋‚ด์—์„œ ์ƒˆ๋กœ ์„ค์น˜๋œ apigeectl ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
      ln -nfs $APIGEECTL_HOME/tools tools
      ln -nfs $APIGEECTL_HOME/config config
      ln -nfs $APIGEECTL_HOME/templates templates
      ln -nfs $APIGEECTL_HOME/plugins plugins
    2. ์‹ฌ๋ณผ๋ฆญ ๋งํฌ๊ฐ€ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ƒ์„ฑ๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•˜๋ ค๋ฉด ์ด ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ๋งํฌ ๊ฒฝ๋กœ๊ฐ€ ์˜ฌ๋ฐ”๋ฅธ ์œ„์น˜๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
      ls -l | grep ^l
  12. ํ…Œ์ŠคํŠธ ์‹คํ–‰ ์ดˆ๊ธฐํ™”๋ฅผ ์ˆ˜ํ–‰ํ•˜์—ฌ ์˜ค๋ฅ˜๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
    ${APIGEECTL_HOME}/apigeectl init -f OVERRIDES_FILE --dry-run=client

    ์—ฌ๊ธฐ์„œ OVERRIDES_FILE์€ ์žฌ์ •์˜ ํŒŒ์ผ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค(์˜ˆ: ./overrides/overrides.yaml).

  13. ์˜ค๋ฅ˜๊ฐ€ ์—†์œผ๋ฉด Hybrid 1.9.4๋ฅผ ์ดˆ๊ธฐํ™”ํ•ฉ๋‹ˆ๋‹ค.
    $APIGEECTL_HOME/apigeectl init -f OVERRIDES_FILE
  14. ์ดˆ๊ธฐํ™” ์ƒํƒœ๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
    $APIGEECTL_HOME/apigeectl check-ready -f OVERRIDES_FILE

    ์„ฑ๊ณตํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ถœ๋ ฅ๋ฉ๋‹ˆ๋‹ค: All containers ready.

    kubectl describe apigeeds -n apigee

    ์ถœ๋ ฅ์—์„œ State: running์„ ์ฐพ์Šต๋‹ˆ๋‹ค.

  15. --dry-run ํ”Œ๋ž˜๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ apply ๋ช…๋ น์–ด์˜ ํ…Œ์ŠคํŠธ ์‹คํ–‰์œผ๋กœ ์˜ค๋ฅ˜๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
    $APIGEECTL_HOME/apigeectl apply -f OVERRIDES_FILE --dry-run=client
  16. ์˜ค๋ฅ˜๊ฐ€ ์—†์œผ๋ฉด ์žฌ์ •์˜๋ฅผ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค. ์„ค์น˜์— ๋”ฐ๋ผ ํ”„๋กœ๋•์…˜ ํ™˜๊ฒฝ ๋˜๋Š” ๋น„ํ”„๋กœ๋•์…˜ ํ™˜๊ฒฝ์˜ ์•ˆ๋‚ด๋ฅผ ์„ ํƒํ•˜์—ฌ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค.

    ํ”„๋กœ๋•์…˜

    ํ”„๋กœ๋•์…˜ ํ™˜๊ฒฝ์˜ ๊ฒฝ์šฐ ๊ฐ Hybrid ๊ตฌ์„ฑ์š”์†Œ๋ฅผ ๊ฐœ๋ณ„์ ์œผ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๊ณ  ๋‹ค์Œ ๊ตฌ์„ฑ์š”์†Œ๋กœ ์ง„ํ–‰ํ•˜๊ธฐ ์ „์— ์—…๊ทธ๋ ˆ์ด๋“œ๋œ ๊ตฌ์„ฑ์š”์†Œ์˜ ์ƒํƒœ๋ฅผ ํ™•์ธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

    1. ํ˜„์žฌ ์œ„์น˜๊ฐ€ hybrid-files ๋””๋ ‰ํ„ฐ๋ฆฌ์ธ์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
    2. ์žฌ์ •์˜๋ฅผ ์ ์šฉํ•˜์—ฌ Cassandra๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œํ•ฉ๋‹ˆ๋‹ค.
      $APIGEECTL_HOME/apigeectl apply -f OVERRIDES_FILE --datastore
    3. ์™„๋ฃŒ๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
      $APIGEECTL_HOME/apigeectl check-ready -f OVERRIDES_FILE

      ํฌ๋“œ๊ฐ€ ์ค€๋น„๋œ ๊ฒฝ์šฐ์—๋งŒ ๋‹ค์Œ ๋‹จ๊ณ„๋กœ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

    4. ์žฌ์ •์˜๋ฅผ ์ ์šฉํ•˜์—ฌ ์›๊ฒฉ ๋ถ„์„ ๊ตฌ์„ฑ์š”์†Œ๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๊ณ  ์™„๋ฃŒ๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
      $APIGEECTL_HOME/apigeectl apply -f OVERRIDES_FILE --telemetry
      $APIGEECTL_HOME/apigeectl check-ready -f OVERRIDES_FILE
    5. Redis ๊ตฌ์„ฑ์š”์†Œ๋ฅผ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.
      $APIGEECTL_HOME/apigeectl apply -f OVERRIDES_FILE --redis
    6. ์žฌ์ •์˜๋ฅผ ์ ์šฉํ•˜์—ฌ ์กฐ์ง ์ˆ˜์ค€ ๊ตฌ์„ฑ์š”์†Œ(MART, Watcher, Apigee Connect)๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๊ณ  ์™„๋ฃŒ๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
      $APIGEECTL_HOME/apigeectl apply -f OVERRIDES_FILE --org
      $APIGEECTL_HOME/apigeectl check-ready -f OVERRIDES_FILE
    7. ์žฌ์ •์˜๋ฅผ ์ ์šฉํ•˜์—ฌ ํ™˜๊ฒฝ์„ ์—…๊ทธ๋ ˆ์ด๋“œํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ ๋‘ ๊ฐ€์ง€ ์ค‘์—์„œ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
      • ํ™˜๊ฒฝ๋ณ„ ํ™˜๊ฒฝ: ํ•œ ๋ฒˆ์— ํ•˜๋‚˜์˜ ํ™˜๊ฒฝ์— ์žฌ์ •์˜๋ฅผ ์ ์šฉํ•˜๊ณ  ์™„๋ฃŒ๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ํ™˜๊ฒฝ๋งˆ๋‹ค ์ด ๋‹จ๊ณ„๋ฅผ ๋ฐ˜๋ณตํ•ฉ๋‹ˆ๋‹ค.
        $APIGEECTL_HOME/apigeectl apply -f OVERRIDES_FILE --env ENV_NAME
        $APIGEECTL_HOME/apigeectl check-ready -f OVERRIDES_FILE

        ์—ฌ๊ธฐ์„œ ENV_NAME์€ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋Š” ํ™˜๊ฒฝ์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค.

      • ํ•œ ๋ฒˆ์— ๋ชจ๋“  ํ™˜๊ฒฝ: ํ•œ ๋ฒˆ์— ๋ชจ๋“  ํ™˜๊ฒฝ์— ์žฌ์ •์˜๋ฅผ ์ ์šฉํ•˜๊ณ  ์™„๋ฃŒ ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
        $APIGEECTL_HOME/apigeectl apply -f OVERRIDES_FILE --all-envs
        $APIGEECTL_HOME/apigeectl check-ready -f OVERRIDES_FILE
    8. ์žฌ์ •์˜๋ฅผ ์ ์šฉํ•˜์—ฌ virtualhosts ๊ตฌ์„ฑ์š”์†Œ๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๊ณ  ์™„๋ฃŒ๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
      $APIGEECTL_HOME/apigeectl apply -f OVERRIDES_FILE --settings virtualhosts
      $APIGEECTL_HOME/apigeectl check-ready -f OVERRIDES_FILE

    ๋น„ํ”„๋กœ๋•์…˜

    ๋Œ€๋ถ€๋ถ„์˜ ๋น„ํ”„๋กœ๋•์…˜, ๋ฐ๋ชจ ๋˜๋Š” ์‹คํ—˜์šฉ ํ™˜๊ฒฝ์—์„œ๋Š” ๋ชจ๋“  ๊ตฌ์„ฑ์š”์†Œ์— ์žฌ์ •์˜๋ฅผ ํ•œ ๋ฒˆ์— ์ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋น„ํ”„๋กœ๋•์…˜ ํ™˜๊ฒฝ์ด ํฌ๊ณ  ๋ณต์žกํ•˜๊ฑฐ๋‚˜ ํ”„๋กœ๋•์…˜ ํ™˜๊ฒฝ์„ ๋น„์Šทํ•˜๊ฒŒ ๋ชจ๋ฐฉํ•˜๋Š” ๊ฒฝ์šฐ ํ”„๋กœ๋•์…˜ ํ™˜๊ฒฝ ์—…๊ทธ๋ ˆ์ด๋“œ ์•ˆ๋‚ด๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

    1. ํ˜„์žฌ ์œ„์น˜๊ฐ€ hybrid-files ๋””๋ ‰ํ„ฐ๋ฆฌ์ธ์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
    2. $APIGEECTL_HOME/apigeectl apply -f OVERRIDES_FILE
    3. ์ƒํƒœ๋ฅผ ํŒŒ์•…ํ•ฉ๋‹ˆ๋‹ค.
      $APIGEECTL_HOME/apigeectl check-ready -f OVERRIDES_FILE

1.9.4-hotfix.1 ์„ค์น˜

ํ•ซํ”ฝ์Šค ์ถœ์‹œ ๋ฒ„์ „ 1.9.4-hotfix.1์„ ์„ค์น˜ํ•˜๋ ค๋ฉด ๋‹ค์Œ ๋‹จ๊ณ„๋ฅผ ๋”ฐ๋ฅด์„ธ์š”.

  1. ๋‹ค์Œ ๋‹จ๊ณ„๋ฅผ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์ „์— Apigee Hybrid ๋ฒ„์ „ 1.9.4 ์ด์ƒ์„ ์„ค์น˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. 1.9.4 ์ด์ƒ ๋ฒ„์ „์ด ์„ค์น˜๋˜์–ด ์žˆ์ง€ ์•Š์œผ๋ฉด ์ง„ํ–‰ํ•˜๊ธฐ ์ „์— 1.9.4๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•ฉ๋‹ˆ๋‹ค.
  2. overrides.yaml ํŒŒ์ผ์„ ์—ฝ๋‹ˆ๋‹ค.
  3. istiod ์Šคํƒ ์ž์—์„œ ์ด๋ฏธ์ง€ ํƒœ๊ทธ ๋ฒ„์ „(์žˆ๋Š” ๊ฒฝ์šฐ)์„ ๋ฒ„์ „ 1.17.7๋กœ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
    istiod:
      image:
        url: "gcr.io/apigee-release/hybrid/apigee-asm-istiod"
        tag: "1.17.7-asm.0-distroless"
  4. Apigee Hybrid ์„ค์น˜ ๋ฐฉ๋ฒ•์— ๋”ฐ๋ผ ingressGateway ๋˜๋Š” ingressGateways ์Šคํƒ ์ž๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์žฌ์ •์˜ ํŒŒ์ผ์— ํ‘œ์‹œ๋˜๋Š” ์Šคํƒ ์ž๋ฅผ ์ฐพ์•„ ์ด๋ฏธ์ง€ ํƒœ๊ทธ ๋ฒ„์ „(์žˆ๋Š” ๊ฒฝ์šฐ)์„ 1.17.7 ๋ฒ„์ „์œผ๋กœ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ingressGateway ์Šคํƒ ์ž๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
    ingressGateway:
      image:
        url: "gcr.io/apigee-release/hybrid/apigee-asm-ingress"
        tag: "1.17.7-asm.0-distroless"

    ๋˜๋Š” ingressGateways ์Šคํƒ ์ž๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

    ingressGateways:
      - name: gateway1
        image:
          url: "gcr.io/apigee-release/hybrid/apigee-asm-ingress"
          tag: "1.17.7-asm.0-distroless"
        ...
      - name: gateway2
        image:
          url: "gcr.io/apigee-release/hybrid/apigee-asm-ingress"
          tag: "1.17.7-asm.0-distroless"
        ...
      
  5. ํŒŒ์ผ์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.
  6. ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜์—ฌ istiod ๊ตฌ์„ฑ์š”์†Œ๋ฅผ ์ดˆ๊ธฐํ™”ํ•ฉ๋‹ˆ๋‹ค.
    $APIGEECTL_HOME/apigeectl init -f OVERRIDES_FILE
    $APIGEECTL_HOME/apigeectl check-ready -f OVERRIDES_FILE
  7. ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜์—ฌ Apigee ์ธ๊ทธ๋ ˆ์Šค ๊ตฌ์„ฑ์š”์†Œ์— ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค. ์กฐ์ง์ด ๋‘˜ ์ด์ƒ์ธ ๊ฒฝ์šฐ ๊ฐ ์กฐ์ง์— ๋Œ€ํ•ด ์ด ๋ช…๋ น์–ด๋ฅผ ๋ฐ˜๋ณตํ•ฉ๋‹ˆ๋‹ค.
    $APIGEECTL_HOME/apigeectl apply --org -f OVERRIDES_FILE
    $APIGEECTL_HOME/apigeectl check-ready -f OVERRIDES_FILE
  8. ํฌ๋“œ ์ƒํƒœ๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
    kubectl get pods -n YOUR_APIGEE_NAMESPACE

Kubernetes ๋ฒ„์ „ ์—…๊ทธ๋ ˆ์ด๋“œ

Kubernetes ํ”Œ๋žซํผ์„ Hybrid 1.9์—์„œ ์ง€์›๋˜๋Š” ๋ฒ„์ „์œผ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•ฉ๋‹ˆ๋‹ค. ๋„์›€์ด ํ•„์š”ํ•˜๋ฉด ํ”Œ๋žซํผ ๋ฌธ์„œ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

์—…๊ทธ๋ ˆ์ด๋“œ ๋กค๋ฐฑ

์ด์ „ ์—…๊ทธ๋ ˆ์ด๋“œ๋ฅผ ๋กค๋ฐฑํ•˜๋ ค๋ฉด ๋‹ค์Œ ๋‹จ๊ณ„๋ฅผ ๋”ฐ๋ฅด์„ธ์š”.

  1. ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ๋Ÿฐํƒ€์ž„ ๋„ค์ž„์ŠคํŽ˜์ด์Šค์˜ ์™„๋ฃŒ๋œ ์ž‘์—…์„ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ NAMESPACE๋Š” ์žฌ์ •์˜ ํŒŒ์ผ์— ์ง€์ •๋œ ๋„ค์ž„์ŠคํŽ˜์ด์Šค(๋„ค์ž„์ŠคํŽ˜์ด์Šค๊ฐ€ ์ง€์ •๋œ ๊ฒฝ์šฐ)์ž…๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์€ ๊ฒฝ์šฐ ๊ธฐ๋ณธ ๋„ค์ž„์ŠคํŽ˜์ด์Šค๋Š” apigee์ž…๋‹ˆ๋‹ค.
    kubectl delete job -n NAMESPACE \
      $(kubectl get job -n NAMESPACE \
      -o=jsonpath='{.items[?(@.status.succeeded==1)].metadata.name}')
  2. apigee-system ๋„ค์ž„์ŠคํŽ˜์ด์Šค์— ๋Œ€ํ•ด ์™„๋ฃŒ๋œ ์ž‘์—…์„ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค.
    kubectl delete job -n apigee-system \
      $(kubectl get job -n apigee-system \
      -o=jsonpath='{.items[?(@.status.succeeded==1)].metadata.name}')
  3. apigeectl์˜ ์ด์ „ ๋ฒ„์ „์ด ํฌํ•จ๋œ ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋„๋ก APIGEECTL_HOME ๋ณ€์ˆ˜๋ฅผ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
    export APIGEECTL_HOME=PATH_TO_PREVIOUS_APIGEECTL_DIRECTORY
  4. ๋กค๋ฐฑํ•  ์„ค์น˜์˜ ๋ฃจํŠธ ๋””๋ ‰ํ„ฐ๋ฆฌ์—์„œ apigeectl apply๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ํฌ๋“œ ์ƒํƒœ๋ฅผ ํ™•์ธํ•œ ํ›„ apigeectl init๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ๋กค๋ฐฑํ•˜๋ ค๋Š” ๋ฒ„์ „์— ์›๋ž˜ ์žฌ์ •์˜ ํŒŒ์ผ์„ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
    1. Hybrid ํŒŒ์ผ ๋””๋ ‰ํ„ฐ๋ฆฌ์—์„œ apigeectl apply๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.
      $APIGEECTL_HOME/apigeectl apply -f ORIGINAL_OVERRIDES_FILE

      ์—ฌ๊ธฐ์„œ ORIGINAL_OVERRIDES_FILE์€ ์ด์ „ ๋ฒ„์ „ Hybrid ์„ค์น˜์— ๋Œ€ํ•œ ์žฌ์ •์˜ ํŒŒ์ผ์˜ ์ƒ๋Œ€ ๊ฒฝ๋กœ ๋ฐ ํŒŒ์ผ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค(์˜ˆ: ./overrides/overrides1.8.yaml).

    2. ํฌ๋“œ์˜ ์ƒํƒœ๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
      kubectl -n NAMESPACE get pods

      ์—ฌ๊ธฐ์„œ NAMESPACE๋Š” Apigee Hybrid ๋„ค์ž„์ŠคํŽ˜์ด์Šค์ž…๋‹ˆ๋‹ค.

    3. apigeeds์˜ ์ƒํƒœ๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
      kubectl describe apigeeds -n apigee

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

      Status:
        Cassandra Data Replication:
        Cassandra Pod Ips:
          10.8.2.204
        Cassandra Ready Replicas:  1
        Components:
          Cassandra:
            Last Successfully Released Version:
              Revision:  v1-f8aa9a82b9f69613
              Version:   v1
            Replicas:
              Available:  1
              Ready:      1
              Total:      1
              Updated:    1
            State:        running
        Scaling:
          In Progress:         false
          Operation:
          Requested Replicas:  0
        State:                 running

      apigeeds ํฌ๋“œ๊ฐ€ ์‹คํ–‰ ์ค‘์ธ ๊ฒฝ์šฐ์—๋งŒ ๋‹ค์Œ ๋‹จ๊ณ„๋ฅผ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

    4. ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ์—…๊ทธ๋ ˆ์ด๋“œ ํ›„ ๋ฉ”์‹œ์ง€ ํ”„๋กœ์„ธ์„œ์— ๋Œ€ํ•œ ์ƒˆ ๋ณต์ œ๋ณธ ์ˆ˜ ๊ฐ’์„ ๊ธฐ๋กํ•ด ๋‘ก๋‹ˆ๋‹ค. ์ด ๊ฐ’์ด ์ด์ „์— ์„ค์ •ํ•œ ๊ฐ’๊ณผ ์ผ์น˜ํ•˜์ง€ ์•Š์œผ๋ฉด ์žฌ์ •์˜ ํŒŒ์ผ์˜ ๊ฐ’์„ ์ด์ „ ๊ตฌ์„ฑ๊ณผ ์ผ์น˜ํ•˜๋„๋ก ๋ณ€๊ฒฝํ•˜์„ธ์š”.
      apigeectl apply -f ORIGINAL_OVERRIDES_FILE --dry-run=client --print-yaml --env ENV_NAME 2>/dev/null |grep "runtime:" -A 25 -B 1| grep "autoScaler" -A 2

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

            autoScaler:
              minReplicas: 2
              maxReplicas: 10
    5. apigeectl init์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.
      $APIGEECTL_HOME/apigeectl init -f ORIGINAL_OVERRIDES_FILE