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

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

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

  1. ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ์„ค์น˜๋ฅผ ๋ฐฑ์—…ํ•ฉ๋‹ˆ๋‹ค.
  2. Kubernetes ๋ฒ„์ „์„ ํ™•์ธํ•˜๊ณ  ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์—…๊ทธ๋ ˆ์ด๋“œํ•ฉ๋‹ˆ๋‹ค.
  3. ASM์„ ์—…๊ทธ๋ ˆ์ด๋“œํ•ฉ๋‹ˆ๋‹ค.
  4. ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ๋Ÿฐํƒ€์ž„ ๋ฒ„์ „ 1.4๋ฅผ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.

์„ ํ–‰ ์กฐ๊ฑด

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

  1. (๊ถŒ์žฅ์‚ฌํ•ญ) ๋ฒ„์ „ 1.3 $APIGEECTL_HOME/ ๋””๋ ‰ํ„ฐ๋ฆฌ์˜ ๋ฐฑ์—… ์‚ฌ๋ณธ์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
    tar -czvf $APIGEECTL_HOME/../apigeectl-v1.3-backup.tar.gz $APIGEECTL_HOME
  2. (๊ถŒ์žฅ์‚ฌํ•ญ) Cassandra ๋ฐฑ์—… ๋ฐ ๋ณต๊ตฌ์˜ ์•ˆ๋‚ด์— ๋”ฐ๋ผ Cassandra ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๋ฐฑ์—…ํ•ฉ๋‹ˆ๋‹ค.
  3. Kubernetes ํ”Œ๋žซํผ์„ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์—…๊ทธ๋ ˆ์ด๋“œํ•ฉ๋‹ˆ๋‹ค. ๋„์›€์ด ํ•„์š”ํ•˜๋ฉด ํ”Œ๋žซํผ ๋ฌธ์„œ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.
    ํ”Œ๋žซํผ ์—…๊ทธ๋ ˆ์ด๋“œํ•  ๋ฒ„์ „
    GKE 1.18.x
    GKE On-Prem(Anthos) 1.5.x
    AKS 1.18.x(Anthos ์—ฐ๊ฒฐ ํด๋Ÿฌ์Šคํ„ฐ ์‚ฌ์šฉ)
    EKS 1.18.x(Anthos ์—ฐ๊ฒฐ ํด๋Ÿฌ์Šคํ„ฐ ์‚ฌ์šฉ)
  4. ASM์„ 1.6.x๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•ฉ๋‹ˆ๋‹ค.
    1. ASM ๋ฌธ์„œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์—…๊ทธ๋ ˆ์ด๋“œ๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.
    2. ๋‹ค์Œ ์ธ๊ทธ๋ ˆ์Šค ํฌํŠธ๋ฅผ ์ง€์ •ํ•˜๊ณ  istio-operator.yaml ํŒŒ์ผ์—์„œ runAsRoot ์†์„ฑ์„ true๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
          โ€ฆ โ€ฆ โ€ฆ
                  ports:
                  - port: 15021
                    name: status-port
                    targetPort: 15021
                  - port: 80
                    name: http2
                    targetPort: 80
                  - port: 443
                    name: https
                    targetPort: 443
      
          โ€ฆ โ€ฆ โ€ฆ
          values:
            gateways:
              istio-ingressgateway:
                runAsRoot: true 
    3. istio-operator.yaml ํŒŒ์ผ์—์„œ mTLS๋ฅผ ์‚ฌ์šฉ ์ค‘์ง€ํ•˜๊ธฐ ์œ„ํ•œ PeerAuthentication CR ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
      ---
      apiVersion: security.istio.io/v1beta1
      kind: PeerAuthentication
      metadata:
        name: apigee-system
        namespace: apigee-system
      spec:
        mtls:
          mode: DISABLE
      ---
      apiVersion: security.istio.io/v1beta1
      kind: PeerAuthentication
      metadata:
        name: user-namespace
        namespace: user-namespace
      spec:
        mtls:
          mode: DISABLE
    4. ASM ๋ฌธ์„œ์— ์„ค๋ช…๋œ ๋Œ€๋กœ istioctl์„ ์‚ฌ์šฉํ•˜์—ฌ ๋‹ค์Œ ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค.

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

  1. ๋ณ€์ˆ˜์— ์ตœ์‹  ๋ฒ„์ „ ๋ฒˆํ˜ธ๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.
    export VERSION=$(curl -s \
        https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/current-version.txt?ignoreCache=1)
  2. ๋ณ€์ˆ˜๊ฐ€ ๋ฒ„์ „ ๋ฒˆํ˜ธ๋กœ ์ฑ„์›Œ์ ธ ์žˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ๋ฒ„์ „์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ํ•ด๋‹น ๋ฒ„์ „์„ ๋Œ€์‹  ํ™˜๊ฒฝ ๋ณ€์ˆ˜์— ์ €์žฅํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
    echo $VERSION
      1.4.4
  3. ์‚ฌ์šฉ ์ค‘์ธ ์šด์˜์ฒด์ œ์— ํ•ด๋‹นํ•˜๋Š” ์ถœ์‹œ ํŒจํ‚ค์ง€๋ฅผ ๋‹ค์šด๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค.

    Mac 64๋น„ํŠธ:

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

    Linux 64๋น„ํŠธ:

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

    Mac 32๋น„ํŠธ:

    curl -LO \
        https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/$VERSION/apigeectl_mac_32.tar.gz

    Linux 32๋น„ํŠธ:

    curl -LO \
        https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/$VERSION/apigeectl_linux_32.tar.gz
  4. ํ˜„์žฌ apigeectl/ ๋””๋ ‰ํ„ฐ๋ฆฌ์˜ ์ด๋ฆ„์„ ๋ฐฑ์—… ๋””๋ ‰ํ„ฐ๋ฆฌ ์ด๋ฆ„์œผ๋กœ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
    mv $APIGEECTL_HOME/ $APIGEECTL_HOME-v1.2/ 
  5. ๋‹ค์šด๋กœ๋“œํ•œ gzip ํŒŒ์ผ ์ฝ˜ํ…์ธ ๋ฅผ Hybrid ๊ธฐ๋ณธ ๋””๋ ‰ํ„ฐ๋ฆฌ์— ์ถ”์ถœํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

    tar xvzf filename.tar.gz -C hybrid-base-directory
  6. cd ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ธฐ๋ณธ ๋””๋ ‰ํ„ฐ๋ฆฌ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.
  7. tar ์ฝ˜ํ…์ธ ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ์ด๋ฆ„์— ํ•ด๋‹น ๋ฒ„์ „๊ณผ ํ”Œ๋žซํผ์ด ํฌํ•จ๋œ ๋””๋ ‰ํ„ฐ๋ฆฌ๋กœ ํ™•์žฅ๋ฉ๋‹ˆ๋‹ค(์˜ˆ: ./apigeectl_1.4.4-xxx_linux_64). ์ด ๋””๋ ‰ํ„ฐ๋ฆฌ์˜ ์ด๋ฆ„์„ apigeectl๋กœ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.

    mv apigeectl_1.4.5-xxx_linux_64 apigeectl
  8. ์ƒˆ apigeectl/ ๋””๋ ‰ํ„ฐ๋ฆฌ์—์„œ apigeectl init, apigeectl apply, apigeectl check-ready๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.
    1. Hybrid 1.4.4๋ฅผ ์ดˆ๊ธฐํ™”ํ•ฉ๋‹ˆ๋‹ค.
      apigeectl init -f overrides.yaml

      ์—ฌ๊ธฐ์„œ overrides.yaml์€ ํŽธ์ง‘๋œ override.yaml ํŒŒ์ผ์ž…๋‹ˆ๋‹ค.

    2. ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ดˆ๊ธฐํ™”๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
      apigeectl check-ready -f overrides.yaml
      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
      
    3. apigeectl --dry-run ํ”Œ๋ž˜๊ทธ์˜ ๋ฌธ๋ฒ•์€ ์‹คํ–‰ ์ค‘์ธ kubectl ๋ฒ„์ „์— ๋”ฐ๋ผ ๋‹ค๋ฆ…๋‹ˆ๋‹ค. kubectl์˜ ๋ฒ„์ „์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
      gcloud version
    4. ์‚ฌ์šฉ ์ค‘์ธ kubectl ๋ฒ„์ „์— ์ ์ ˆํ•œ ๋ช…๋ น์–ด๋กœ ๋‹ค์Œ ํ…Œ์ŠคํŠธ ์‹คํ–‰ ์˜ค๋ฅ˜๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

      kubectl ๋ฒ„์ „ 1.17 ์ดํ•˜:

      apigeectl apply -f overrides.yaml --dry-run=true

      kubectl ๋ฒ„์ „ 1.18 ์ด์ƒ:

      apigeectl apply -f overrides.yaml --dry-run=client
    5. ์žฌ์ •์˜๋ฅผ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค. ์„ค์น˜์— ๋”ฐ๋ผ ํ”„๋กœ๋•์…˜ ํ™˜๊ฒฝ ๋˜๋Š” ๋ฐ๋ชจ/์‹คํ—˜์šฉ ํ™˜๊ฒฝ์˜ ์•ˆ๋‚ด๋ฅผ ์„ ํƒํ•˜์—ฌ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค.

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

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

      1. ์žฌ์ •์˜๋ฅผ ์ ์šฉํ•˜์—ฌ Cassandra๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œํ•ฉ๋‹ˆ๋‹ค.
        apigeectl apply -f overrides.yaml --datastore
      2. ์™„๋ฃŒ๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
        kubectl -n namespace get pods
        apigeectl check-ready -f overrides.yaml

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

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

      3. ์žฌ์ •์˜๋ฅผ ์ ์šฉํ•˜์—ฌ ์›๊ฒฉ ๋ถ„์„ ๊ตฌ์„ฑ์š”์†Œ๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๊ณ  ์™„๋ฃŒ๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
        apigeectl apply -f overrides.yaml --telemetry
        kubectl -n namespace get pods
        apigeectl check-ready -f overrides.yaml
      4. ์žฌ์ •์˜๋ฅผ ์ ์šฉํ•˜์—ฌ ์กฐ์ง ์ˆ˜์ค€ ๊ตฌ์„ฑ์š”์†Œ(MART, Watcher, Apigee Connect)๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๊ณ  ์™„๋ฃŒ๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
        apigeectl apply -f overrides.yaml --org
        kubectl -n namespace get pods
        apigeectl check-ready -f overrides.yaml
      5. ์žฌ์ •์˜๋ฅผ ์ ์šฉํ•˜์—ฌ ํ™˜๊ฒฝ์„ ์—…๊ทธ๋ ˆ์ด๋“œํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ ๋‘ ๊ฐ€์ง€ ์ค‘์—์„œ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
        • ํ™˜๊ฒฝ๋ณ„ ํ™˜๊ฒฝ: ํ•œ ๋ฒˆ์— ํ•˜๋‚˜์˜ ํ™˜๊ฒฝ์— ์žฌ์ •์˜๋ฅผ ์ ์šฉํ•˜๊ณ  ์™„๋ฃŒ๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ํ™˜๊ฒฝ๋งˆ๋‹ค ์ด ๋‹จ๊ณ„๋ฅผ ๋ฐ˜๋ณตํ•ฉ๋‹ˆ๋‹ค.
          apigeectl apply -f overrides.yaml --env env_name
          kubectl -n namespace get pods
          apigeectl check-ready -f overrides.yaml

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

        • ํ•œ ๋ฒˆ์— ๋ชจ๋“  ํ™˜๊ฒฝ: ํ•œ ๋ฒˆ์— ๋ชจ๋“  ํ™˜๊ฒฝ์— ์žฌ์ •์˜๋ฅผ ์ ์šฉํ•˜๊ณ  ์™„๋ฃŒ ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
          apigeectl apply -f overrides.yaml --all-envs
          kubectl -n namespace get pods
          apigeectl check-ready -f overrides.yaml

      ๋ฐ๋ชจ/์‹คํ—˜์šฉ

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

      1. apigeectl apply -f overrides.yaml
      2. ์ƒํƒœ๋ฅผ ํŒŒ์•…ํ•ฉ๋‹ˆ๋‹ค.
        apigeectl check-ready -f overrides.yaml

    ์ˆ˜๊ณ ํ•˜์…จ์Šต๋‹ˆ๋‹ค. Apigee Hybrid ๋ฒ„์ „ 1.4.4๋กœ ์„ฑ๊ณต์ ์œผ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.