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로 성공적으로 업그레이드되었습니다.