Apigee Hybrid를 버전 1.11로 업그레이드

이 절차에서는 Apigee Hybrid 버전 1.10.x에서 Apigee Hybrid 버전 1.11.2로 업그레이드하고 이전 출시 버전인 Hybrid 1.11.x에서 버전 1.11.1로 업그레이드하는 작업을 다룹니다.

부 버전 업그레이드(예: 버전 1.10에서 1.11로)와 패치 출시 버전 업그레이드(예: 1.11.0에서 1.11.2로)에 같은 절차를 사용합니다.

Apigee Hybrid 버전 1.9 이하에서 업그레이드하는 경우 먼저 Hybrid 버전 1.10으로 업그레이드한 후에 버전 1.11.2로 업그레이드해야 합니다. Apigee Hybrid를 버전 1.10으로 업그레이드의 안내를 참조하세요.

버전 1.11.2로 업그레이드 개요

Apigee Hybrid 업그레이드 절차는 다음과 같은 섹션으로 정리됩니다.

  1. 업그레이드를 준비합니다.
  2. Hybrid 런타임 버전 1.11.2를 설치합니다.

기본 요건

이 업그레이드 안내에서는 Apigee Hybrid 버전 1.10.x가 설치되어 있고 버전 1.11.2로 업그레이드한다고 가정합니다. 이전 버전에서 업데이트하는 경우 Apigee Hybrid를 버전 1.10으로 업그레이드의 안내를 참조하세요.

Helm 차트 및 apigeectl

버전 1.11에서는 Helm 차트 또는 apigeectl을 사용하여 Apigee Hybrid를 설치하고 관리할 수 있습니다. Apigee에서는 Helm을 사용하여 설치를 관리하는 것이 좋습니다.

apigeectl을 사용하여 v1.10에서 Helm을 사용하는 v1.11로 마이그레이션

apigeectl로 관리되는 Hybrid v1.10 설치에서 Helm으로 관리되는 Apigee Hybrid v1.11로 업그레이드하려면 다음 안내를 따르세요.

  1. 먼저 Apigeectl에서 Helm 차트로 Apigee Hybrid 마이그레이션의 안내에 따라 v1.10 설치 Helm을 마이그레이션합니다.
  2. 설치를 업그레이드하려면 아래 Helm 차트 안내를 따르세요.

버전 1.11로 업그레이드 준비

Helm

  1. 이 안내에서는 Helm 차트를 설치한 파일 시스템의 디렉터리에 환경 변수 APIGEE_HELM_CHARTS_HOME을 사용합니다. 필요한 경우 디렉터리를 이 디렉터리로 변경하고 다음 명령어를 사용하여 변수를 정의합니다.

    Linux

    export APIGEE_HELM_CHARTS_HOME=$PWD
    echo $APIGEE_HELM_CHARTS_HOME

    MacOS

    export APIGEE_HELM_CHARTS_HOME=$PWD
    echo $APIGEE_HELM_CHARTS_HOME

    Windows

    set APIGEE_HELM_CHARTS_HOME=%CD%
    echo %APIGEE_HELM_CHARTS_HOME%
  2. 버전 1.10 $APIGEE_HELM_CHARTS_HOME/ 디렉터리의 백업 복사본을 만듭니다. 모든 백업 프로세스를 사용할 수 있습니다. 예를 들어 다음을 사용하여 전체 디렉터리의 tar 파일을 만들 수 있습니다.
    tar -czvf $APIGEE_HELM_CHARTS_HOME/../apigee-helm-charts-v1.10-backup.tar.gz $APIGEE_HELM_CHARTS_HOME
  3. Cassandra 백업 및 복구의 안내에 따라 Cassandra 데이터베이스를 백업합니다.
  4. 서비스 계정 인증에 대한 재정의에 서비스 인증서 파일(.json)을 사용하는 경우 서비스 계정 인증서 파일이 올바른 Helm 차트 디렉터리에 있는지 확인합니다. Helm 차트는 각 차트 디렉터리 외부의 파일을 읽을 수 없습니다.

    Kubernetes 보안 비밀이나 워크로드 아이덴티티를 사용하여 서비스 계정을 인증하는 경우에는 이 단계가 필요하지 않습니다.

    다음 표에서는 설치 유형에 따라 각 서비스 계정 파일의 대상을 보여줍니다.

    프로덕션

    서비스 계정 기본 파일 이름 Helm 차트 디렉터리
    apigee-cassandra PROJECT_ID-apigee-cassandra.json $APIGEE_HELM_CHARTS_HOME/apigee-datastore/
    apigee-logger PROJECT_ID-apigee-logger.json $APIGEE_HELM_CHARTS_HOME/apigee-telemetry/
    apigee-mart PROJECT_ID-apigee-mart.json $APIGEE_HELM_CHARTS_HOME/apigee-org/
    apigee-metrics PROJECT_ID-apigee-metrics.json $APIGEE_HELM_CHARTS_HOME/apigee-telemetry/
    apigee-runtime PROJECT_ID-apigee-runtime.json $APIGEE_HELM_CHARTS_HOME/apigee-env
    apigee-synchronizer PROJECT_ID-apigee-synchronizer.json $APIGEE_HELM_CHARTS_HOME/apigee-env/
    apigee-udca PROJECT_ID-apigee-udca.json $APIGEE_HELM_CHARTS_HOME/apigee-org/
    apigee-watcher PROJECT_ID-apigee-watcher.json $APIGEE_HELM_CHARTS_HOME/apigee-org/

    비프로덕션

    다음 디렉터리 각각에 apigee-non-prod 서비스 계정 파일의 사본을 만듭니다.

    서비스 계정 기본 파일 이름 Helm 차트 디렉터리
    apigee-non-prod PROJECT_ID-apigee-non-prod.json $APIGEE_HELM_CHARTS_HOME/apigee-datastore/
    $APIGEE_HELM_CHARTS_HOME/apigee-telemetry/
    $APIGEE_HELM_CHARTS_HOME/apigee-org/
    $APIGEE_HELM_CHARTS_HOME/apigee-env/
  5. TLS 인증서와 키 파일(.crt, .key 또는 .pem)이 $APIGEE_HELM_CHARTS_HOME/apigee-virtualhost/ 디렉터리에 있는지 확인합니다.

apigeectl

이 안내의 예시에서는 다음 디렉터리 구조를 사용합니다. 설치 방법은 다를 수 있습니다. 안내를 설치 구조에 맞게 조정합니다.

hybrid-v1.11-root-directory/
└── apigeectl/
    └── config/
    └── plugins/
    └── templates/
    └── tools/
└── hybrid-files/
    └── overrides/
    └── service-accounts/
    └── certs/
hybrid-v1.10-root-directory/
  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.10 $APIGEECTL_HOME/ 디렉터리의 백업 복사본을 만듭니다. 예를 들면 다음과 같습니다.
    tar -czvf $APIGEECTL_HOME/../apigeectl-v1.10-backup.tar.gz $APIGEECTL_HOME
  3. Cassandra 백업 및 복구의 안내에 따라 Cassandra 데이터베이스를 백업합니다.

Kubernetes 버전 업그레이드

Kubernetes 플랫폼 버전을 확인하고 필요한 경우 Kubernetes 플랫폼을 Hybrid 1.10 및 Hybrid 1.11 모두에서 지원하는 버전으로 업그레이드합니다. 도움이 필요하면 플랫폼 문서를 참조하세요.

Hybrid 1.11.2 런타임 설치

Helm

Helm 차트 업그레이드 준비

  1. overrides.yaml 파일을 다음과 같이 변경하여 apigee-operatorapigee-env 차트를 사용 설정하거나 올바른 태그(1.11.2-hotfix.2)를 사용하도록 합니다.
    ao:
      image:
        url: "gcr.io/apigee-release/hybrid/apigee-operators"
        tag: "1.11.2-hotfix.2"
    runtime:
      image:
        url: "gcr.io/apigee-release/hybrid/apigee-runtime"
        tag: "1.11.2-hotfix.2"
    

    Apigee 1.11.2-hotfix.2 출시 노트를 참조하세요.

  2. Apigee Helm 차트를 가져옵니다.

    Apigee Hybrid 차트는 Google Artifact Registry에서 호스팅됩니다.

    oci://us-docker.pkg.dev/apigee-release/apigee-hybrid-helm-charts

    pull 명령어를 사용하여 다음 명령어로 모든 Apigee Hybrid Helm 차트를 로컬 스토리지에 복사합니다.

    export CHART_REPO=oci://us-docker.pkg.dev/apigee-release/apigee-hybrid-helm-charts
    export CHART_VERSION=1.11.2
    helm pull $CHART_REPO/apigee-operator --version $CHART_VERSION --untar
    helm pull $CHART_REPO/apigee-datastore --version $CHART_VERSION --untar
    helm pull $CHART_REPO/apigee-env --version $CHART_VERSION --untar
    helm pull $CHART_REPO/apigee-ingress-manager --version $CHART_VERSION --untar
    helm pull $CHART_REPO/apigee-org --version $CHART_VERSION --untar
    helm pull $CHART_REPO/apigee-redis --version $CHART_VERSION --untar
    helm pull $CHART_REPO/apigee-telemetry --version $CHART_VERSION --untar
    helm pull $CHART_REPO/apigee-virtualhost --version $CHART_VERSION --untar
    
  3. 필요한 경우 cert-manager를 설치합니다.

    cert-manager 버전을 업그레이드해야 하는 경우 다음 명령어를 사용하여 새 버전을 설치합니다.

    kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.11.1/cert-manager.yaml
    
  4. 업데이트된 Apigee CRD를 설치합니다.
    1. 다음 명령어를 실행하여 kubectl 테스트 실행 기능을 사용합니다.

      kubectl apply -k  apigee-operator/etc/crds/default/ --server-side --force-conflicts --validate=false --dry-run=server
      
    2. 테스트 실행 명령어로 유효성을 검사한 후 다음 명령어를 실행합니다.

      kubectl apply -k  apigee-operator/etc/crds/default/ --server-side --force-conflicts --validate=false
      
    3. kubectl get crds 명령어를 사용하여 설치를 검증합니다.
      kubectl get crds | grep apigee

      출력이 다음과 같이 표시됩니다.

      apigeedatastores.apigee.cloud.google.com                    2023-10-09T14:48:30Z
      apigeedeployments.apigee.cloud.google.com                   2023-10-09T14:48:30Z
      apigeeenvironments.apigee.cloud.google.com                  2023-10-09T14:48:31Z
      apigeeissues.apigee.cloud.google.com                        2023-10-09T14:48:31Z
      apigeeorganizations.apigee.cloud.google.com                 2023-10-09T14:48:32Z
      apigeeredis.apigee.cloud.google.com                         2023-10-09T14:48:33Z
      apigeerouteconfigs.apigee.cloud.google.com                  2023-10-09T14:48:33Z
      apigeeroutes.apigee.cloud.google.com                        2023-10-09T14:48:33Z
      apigeetelemetries.apigee.cloud.google.com                   2023-10-09T14:48:34Z
      cassandradatareplications.apigee.cloud.google.com           2023-10-09T14:48:35Z
      
  5. 클러스터 노드의 라벨을 확인합니다. 기본적으로 Apigee는 cloud.google.com/gke-nodepool=apigee-data 라벨이 있는 노드의 데이터 포드를 예약하고 런타임 포드는 cloud.google.com/gke-nodepool=apigee-runtime 라벨이 있는 노드에 예약됩니다. overrides.yaml 파일에서 노드 풀 라벨을 맞춤설정할 수 있습니다.

    자세한 내용은 전용 노드 풀 구성을 참조하세요.

Apigee Hybrid Helm 차트 설치

  1. 그렇지 않은 경우에는 APIGEE_HELM_CHARTS_HOME 디렉터리로 이동합니다. 해당 디렉터리에서 다음 명령어를 실행합니다.
  2. Apigee Operator/Controller를 업그레이드합니다.

    테스트 실행을 수행합니다.

    helm upgrade operator apigee-operator/ \
      --install \
      --create-namespace \
      --namespace apigee-system \
      -f OVERRIDES_FILE \
      --dry-run
    

    차트를 업그레이드합니다.

    helm upgrade operator apigee-operator/ \
      --install \
      --create-namespace \
      --namespace apigee-system \
      -f OVERRIDES_FILE
    

    Apigee 운영자 설치를 확인합니다.

    helm ls -n apigee-system
    
    NAME           NAMESPACE       REVISION        UPDATED                                 STATUS          CHART                   APP VERSION
    operator    apigee-system   3               2023-06-26 00:42:44.492009 -0800 PST    deployed        apigee-operator-1.11.2   1.11.2

    가용성을 확인하여 실행 중인지 확인합니다.

    kubectl -n apigee-system get deploy apigee-controller-manager
    
    NAME                        READY   UP-TO-DATE   AVAILABLE   AGE
    apigee-controller-manager   1/1     1            1           7d20h
  3. Apigee Datastore를 업그레이드합니다.

    테스트 실행을 수행합니다.

    helm upgrade datastore apigee-datastore/ \
      --install \
      --namespace apigee \
      -f OVERRIDES_FILE \
      --dry-run
    

    차트를 업그레이드합니다.

    helm upgrade datastore apigee-datastore/ \
      --install \
      --namespace apigee \
      -f OVERRIDES_FILE
    

    상태를 확인하여 apigeedatastore가 실행 중인지 확인합니다.

    kubectl -n apigee get apigeedatastore default
    
    NAME      STATE       AGE
    default   running    2d
  4. Apigee 원격 분석을 업그레이드합니다.

    테스트 실행을 수행합니다.

    helm upgrade telemetry apigee-telemetry/ \
      --install \
      --namespace apigee \
      -f OVERRIDES_FILE \
      --dry-run
    

    차트를 업그레이드합니다.

    helm upgrade telemetry apigee-telemetry/ \
      --install \
      --namespace apigee \
      -f OVERRIDES_FILE
    

    상태를 확인하여 실행 중인지 확인합니다.

    kubectl -n apigee get apigeetelemetry apigee-telemetry
    
    NAME               STATE     AGE
    apigee-telemetry   running   2d
  5. Apigee Redis를 업그레이드합니다.

    테스트 실행을 수행합니다.

    helm upgrade redis apigee-redis/ \
      --install \
      --namespace apigee \
      -f OVERRIDES_FILE \
      --dry-run
    

    차트를 업그레이드합니다.

    helm upgrade redis apigee-redis/ \
      --install \
      --namespace apigee \
      -f OVERRIDES_FILE
    

    상태를 확인하여 실행 중인지 확인합니다.

    kubectl -n apigee get apigeeredis default
    
    NAME      STATE     AGE
    default   running   2d
  6. Apigee 인그레스 관리자를 업그레이드합니다.

    테스트 실행을 수행합니다.

    helm upgrade ingress-manager apigee-ingress-manager/ \
      --install \
      --namespace apigee \
      -f OVERRIDES_FILE \
      --dry-run
    

    차트를 업그레이드합니다.

    helm upgrade ingress-manager apigee-ingress-manager/ \
      --install \
      --namespace apigee \
      -f OVERRIDES_FILE
    

    가용성을 확인하여 실행 중인지 확인합니다.

    kubectl -n apigee get deployment apigee-ingressgateway-manager
    
    NAME                            READY   UP-TO-DATE   AVAILABLE   AGE
    apigee-ingressgateway-manager   2/2     2            2           2d
  7. Apigee 조직을 업그레이드합니다.

    테스트 실행을 수행합니다.

    helm upgrade ORG_NAME apigee-org/ \
      --install \
      --namespace apigee \
      -f OVERRIDES_FILE \
      --dry-run
    

    차트를 업그레이드합니다.

    helm upgrade ORG_NAME apigee-org/ \
      --install \
      --namespace apigee \
      -f OVERRIDES_FILE
    

    해당 조직의 상태를 확인하여 실행 중인지 확인합니다.

    kubectl -n apigee get apigeeorg
    
    NAME                      STATE     AGE
    apigee-org1-xxxxx          running   2d
  8. 환경을 업그레이드합니다.

    한 번에 환경 하나만 설치해야 합니다. --set env=ENV_NAME으로 환경을 지정합니다.

    테스트 실행을 수행합니다.

    helm upgrade ENV_RELEASE_NAME apigee-env/ \
      --install \
      --namespace apigee \
      --set env=ENV_NAME \
      -f OVERRIDES_FILE \
      --dry-run
    
    • ENV_RELEASE_NAME은 이전에 apigee-env 차트를 설치한 이름입니다. Hybrid v1.10에서는 일반적으로 apigee-env-ENV_NAME입니다. Hybrid v1.11 이상에서는 일반적으로 ENV_NAME입니다.
    • ENV_NAME은 업그레이드하는 환경의 이름입니다.
    • OVERRIDES_FILE은 v.1.11.2의 새로운 재정의 파일입니다.

    차트를 업그레이드합니다.

    helm upgrade ENV_RELEASE_NAME apigee-env/ \
      --install \
      --namespace apigee \
      --set env=ENV_NAME \
      -f OVERRIDES_FILE
    

    해당 환경의 상태를 확인하여 실행 중인지 확인합니다.

    kubectl -n apigee get apigeeenv
    
    NAME                          STATE       AGE   GATEWAYTYPE
    apigee-org1-dev-xxx            running     2d
  9. 환경 그룹(virtualhosts)을 업그레이드합니다.
    1. 한 번에 환경 그룹(virtualhost) 하나만 설치해야 합니다. --set envgroup=ENV_GROUP_NAME으로 환경 그룹을 지정합니다. override.yaml 파일에 언급된 환경 그룹마다 다음 명령어를 반복합니다.

      테스트 실행을 수행합니다.

      helm upgrade ENV_GROUP_RELEASE_NAME apigee-virtualhost/ \
        --install \
        --namespace apigee \
        --set envgroup=ENV_GROUP_NAME \
        -f OVERRIDES_FILE \
        --dry-run
      

      ENV_GROUP_RELEASE_NAME은 이전에 apigee-virtualhost 차트를 설치한 이름입니다. Hybrid v1.10에서는 일반적으로 apigee-virtualhost-ENV_GROUP_NAME입니다. Hybrid v1.11 이상에서는 일반적으로 ENV_GROUP_NAME입니다.

      차트를 업그레이드합니다.

      helm upgrade ENV_GROUP_RELEASE_NAME apigee-virtualhost/ \
        --install \
        --namespace apigee \
        --set envgroup=ENV_GROUP_NAME \
        -f OVERRIDES_FILE
      
    2. ApigeeRoute(AR) 상태를 확인합니다.

      virtualhosts를 설치하면 Apigee 감시자가 컨트롤 플레인에서 환경 그룹 관련 세부정보를 가져온 후 내부적으로 ApigeeRoute(AR)를 만드는 ApigeeRouteConfig(ARC)가 생성됩니다. 따라서 해당 AR 상태가 실행 중인지 확인합니다.

      kubectl -n apigee get arc
      
      NAME                                STATE   AGE
      apigee-org1-dev-egroup                       2d
      kubectl -n apigee get ar
      
      NAME                                        STATE     AGE
      apigee-org1-dev-egroup-xxxxxx                running   2d

apigeectl

  1. 다음 명령어를 사용하여 최신 버전 번호를 변수에 저장합니다.

    Linux

    export VERSION=$(curl -s \
      https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/current-version.txt?ignoreCache=1)

    MacOS

    export VERSION=$(curl -s \
      https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/current-version.txt)

    Windows

    for /f "tokens=*" %a in ('curl -s ^
      https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/current-version.txt') ^
    do set VERSION=%a
  2. 다음 명령어를 사용하여 변수가 버전 번호로 채워졌는지 확인합니다. 다른 버전을 사용하려면 대신 환경 변수에 저장하면 됩니다.
    echo $VERSION

    최신 Apigee Hybrid 버전이 표시되어야 합니다.

      1.11.2
  3. 하이브리드 기본 디렉터리(apigeectl 실행 파일이 있는 디렉터리의 상위 디렉터리)에 있는지 확인합니다.
    cd $APIGEECTL_HOME/..
  4. 다음 명령어를 사용하여 운영체제용 출시 버전 패키지를 다운로드합니다. 다음 테이블에서 플랫폼을 선택해야 합니다.

    Linux

    Linux 64비트:

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

    MacOS

    Mac 64비트:

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

    Windows

    Windows 64 비트:

    curl -LO ^
      https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/%VERSION%/apigeectl_windows_64.zip
  5. 현재 apigeectl/ 디렉터리의 이름을 백업 디렉터리 이름으로 바꿉니다. 예를 들면 다음과 같습니다.

    Linux

    mv $APIGEECTL_HOME/ $APIGEECTL_HOME-v1.10/

    MacOS

    mv $APIGEECTL_HOME/ $APIGEECTL_HOME-v1.10/ 

    Windows

    rename %APIGEECTL_HOME% %APIGEECTL_HOME%-v1.10 
  6. 다운로드한 gzip 파일 콘텐츠를 Hybrid 기본 디렉터리에 추출합니다. Hybrid 기본 디렉터리는 이름이 변경된 apigeectl-v1.10 디렉터리가 있는 디렉터리입니다.

    Linux

    tar xvzf filename.tar.gz -C ./

    MacOS

    tar xvzf filename.tar.gz -C ./

    Windows

    tar xvzf filename.zip -C ./
  7. tar 콘텐츠는 기본적으로 이름에 해당 버전과 플랫폼이 포함된 디렉터리로 확장됩니다. 예를 들면 ./apigeectl_1.11.2-xxxxxxx_linux_64입니다. 다음 명령어를 사용하여 디렉터리 이름을 apigeectl로 변경합니다.

    Linux

    mv apigeectl_1.11.2-xxxxxxx_linux_64 apigeectl

    MacOS

    mv apigeectl_1.11.2-xxxxxxx_mac_64 apigeectl

    Windows

    rename apigeectl_1.11.2-xxxxxxx_windows_64 apigeectl
  8. apigeectl 디렉터리로 변경합니다.
    cd ./apigeectl

    이 디렉터리는 apigeectl 홈 디렉터리입니다. 여기에 apigeectl 실행 가능한 명령어가 있습니다.

  9. 이 안내에서는 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%
  10. version 명령어를 사용하여 apigeectl의 버전을 확인합니다.
    ./apigeectl version
    Version: 1.11.2
  11. hybrid-base-directory/hybrid-files 디렉터리를 만든 후 해당 디렉터리로 이동합니다. hybrid-files 디렉터리에는 재정의 파일, 인증서, 서비스 계정과 같은 구성 파일이 있습니다. 예를 들면 다음과 같습니다.

    Linux

    mkdir $APIGEECTL_HOME/../hybrid-files
    cd $APIGEECTL_HOME/../hybrid-files

    MacOS

    mkdir $APIGEECTL_HOME/../hybrid-files
    cd $APIGEECTL_HOME/../hybrid-files

    Windows

    mkdir %APIGEECTL_HOME%/../hybrid-files
    cd %APIGEECTL_HOME%/../hybrid-files
  12. 다음 명령어를 사용하여 kubectl이 올바른 컨텍스트로 설정되었는지 확인합니다. 현재 컨텍스트를 Apigee Hybrid를 업그레이드하는 클러스터로 설정해야 합니다.
    kubectl config get-contexts | grep \*
  13. 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
  14. 연산자와 런타임에서 올바른 태그(1.11.2-hotfix.2)를 사용하도록 overrides.yaml 파일을 다음과 같이 변경합니다.
    ao:
      image:
        url: "gcr.io/apigee-release/hybrid/apigee-operators"
        tag: "1.11.2-hotfix.2"
    runtime:
      image:
        url: "gcr.io/apigee-release/hybrid/apigee-runtime"
        tag: "1.11.2-hotfix.2"
    

    Apigee 1.11.2-hotfix.2 출시 노트를 참조하세요.

  15. 테스트 실행 초기화를 수행하여 오류를 확인합니다.
    ${APIGEECTL_HOME}/apigeectl init -f OVERRIDES_FILE --dry-run=client

    여기서 OVERRIDES_FILE은 재정의 파일 이름입니다(예: ./overrides/overrides.yaml).

  16. 오류가 없으면 Hybrid 1.11.2를 초기화합니다.
    $APIGEECTL_HOME/apigeectl init -f OVERRIDES_FILE
  17. 초기화 상태를 확인합니다.
    $APIGEECTL_HOME/apigeectl check-ready -f OVERRIDES_FILE

    성공하면 다음과 같이 출력됩니다: All containers ready.

    kubectl describe apigeeds -n apigee

    출력에서 State: running을 찾습니다.

  18. --dry-run 플래그를 사용하여 apply 명령어의 테스트 실행으로 오류가 있는지 확인합니다.
    $APIGEECTL_HOME/apigeectl apply -f OVERRIDES_FILE --dry-run=client
  19. 오류가 없으면 재정의를 적용합니다. 설치에 따라 프로덕션 환경 또는 비프로덕션 환경의 안내를 선택하여 따릅니다.

    프로덕션

    프로덕션 환경의 경우 각 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

업그레이드 롤백

이전 업그레이드를 롤백하려면 다음 단계를 따르세요.

Helm

이전 버전으로 롤백하려면 이전 설치의 차트와 재정의 파일을 사용합니다.

  1. 다음 환경 변수를 만듭니다.
    • PREVIOUS_HELM_CHARTS_HOME: 이전 Apigee Hybrid Helm 차트가 설치된 디렉터리입니다. 롤백할 버전입니다.
  2. virtualhost를 롤백합니다. 재정의 파일에 언급된 환경 그룹마다 다음 명령어를 반복합니다.
    helm upgrade ENV_GROUP_RELEASE_NAME $PREVIOUS_HELM_CHARTS_HOME/apigee-virtualhost/ \
      --namespace apigee \
      --atomic \
      --set envgroup=ENV_GROUP_NAME \
      -f PREVIOUS_OVERRIDES_FILE
    

    ENV_GROUP_RELEASE_NAME은 이전에 apigee-virtualhost 차트를 설치한 이름입니다. Hybrid v1.10에서는 일반적으로 apigee-virtualhost-ENV_GROUP_NAME입니다. Hybrid v1.11 이상에서는 일반적으로 ENV_GROUP_NAME입니다.

  3. 환경을 롤백합니다. 재정의 파일에 언급된 환경마다 다음 명령어를 반복합니다.
    helm upgrade apigee-env-ENV_NAME $PREVIOUS_HELM_CHARTS_HOME/apigee-env/ \
      --install \
      --namespace apigee \
      --atomic \
      --set env=ENV_NAME \
      -f PREVIOUS_OVERRIDES_FILE
    

    ENV_RELEASE_NAME은 이전에 apigee-env 차트를 설치한 이름입니다. Hybrid v1.10에서는 일반적으로 apigee-env-ENV_NAME입니다. Hybrid v1.11 이상에서는 일반적으로 ENV_NAME입니다.

  4. 조직을 롤백합니다.
    helm upgrade ORG_NAME $PREVIOUS_HELM_CHARTS_HOME/apigee-org/ \
      --install \
      --namespace apigee \
      --atomic \
      -f PREVIOUS_OVERRIDES_FILE
    
  5. 인그레스 관리자를 롤백합니다.
    helm upgrade ingress-manager $PREVIOUS_HELM_CHARTS_HOME/apigee-ingress-manager/ \
      --install \
      --namespace apigee \
      --atomic \
      -f PREVIOUS_OVERRIDES_FILE
    
  6. Redis를 롤백합니다.
    helm upgrade redis $PREVIOUS_HELM_CHARTS_HOME/apigee-redis/ \
      --install \
      --namespace apigee \
      --atomic \
      -f PREVIOUS_OVERRIDES_FILE
    
  7. Apigee 원격 분석을 롤백합니다.
    helm upgrade telemetry $PREVIOUS_HELM_CHARTS_HOME/apigee-telemetry/ \
      --install \
      --namespace apigee \
      --atomic \
      -f PREVIOUS_OVERRIDES_FILE
    
  8. Apigee Datastore(Cassandra 데이터베이스 구성요소)를 롤백합니다.
    helm upgrade datastore $PREVIOUS_HELM_CHARTS_HOME/apigee-datastore/ \
      --install \
      --namespace apigee \
      --atomic \
      -f PREVIOUS_OVERRIDES_FILE
    
  9. Apigee Controller를 롤백합니다.
    helm upgrade operator $PREVIOUS_HELM_CHARTS_HOME/apigee-operator/ \
      --install \
      --namespace apigee-system \
      --atomic \
      -f PREVIOUS_OVERRIDES_FILE
    
  10. Apigee Hybrid CRD를 롤백합니다.
      kubectl apply -k  $PREVIOUS_HELM_CHARTS_HOME/apigee-operator/etc/crds/default/ --server-side --force-conflicts --validate=false
    

apigeectl

  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. 롤백할 설치의 루트 디렉터리에서 다음 명령어를 실행합니다. 롤백하려는 버전에 원래 재정의 파일을 사용해야 합니다.
    1. Hybrid 파일 디렉터리에서 apigeectl apply를 실행합니다.
      $APIGEECTL_HOME/apigeectl apply -f ORIGINAL_OVERRIDES_FILE

      여기서 ORIGINAL_OVERRIDES_FILE은 이전 버전 Hybrid 설치에 대한 재정의 파일의 상대 경로 및 파일 이름입니다(예: ./overrides/overrides1.10.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