이 절차에서는 Apigee Hybrid 버전 1.9.x에서 Apigee Hybrid 버전 1.10.5로 업그레이드하고 이전 출시 버전인 Hybrid 1.10.x에서 버전 1.10.5로 업그레이드하는 작업을 다룹니다.
부 버전 업그레이드(예: 버전 1.9에서 1.10으로)와 패치 출시 버전 업그레이드(예: 1.10.0에서 1.10.5로)에 같은 절차를 사용합니다.
버전 1.10.5로 업그레이드 개요
Apigee Hybrid 업그레이드 절차는 다음과 같은 섹션으로 정리됩니다.
기본 요건
이 업그레이드 안내에서는 Apigee Hybrid 버전 1.9.x가 설치되어 있고 버전 1.10.5로 업그레이드한다고 가정합니다. 이전 버전에서 업데이트하는 경우 Apigee Hybrid를 버전 1.9로 업그레이드 안내를 참조하세요.
버전 1.10으로 업그레이드 준비
하이브리드 설치 백업(권장)
- 이 안내에서는
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%
- 버전 1.9
$APIGEECTL_HOME/
디렉터리의 백업 사본을 만듭니다. 예를 들면 다음과 같습니다.tar -czvf $APIGEECTL_HOME/../apigeectl-v1.9-backup.tar.gz $APIGEECTL_HOME
- Cassandra 백업 및 복구의 안내에 따라 Cassandra 데이터베이스를 백업합니다.
Kubernetes 버전 업그레이드
Kubernetes 플랫폼 버전을 확인하고 필요한 경우 Kubernetes 플랫폼을 Hybrid 1.9 및 Hybrid 1.10 모두에서 지원되는 버전으로 업그레이드합니다. 도움이 필요하면 플랫폼 문서를 참조하세요.
Hybrid 1.10.5 런타임 설치
- 하이브리드 기본 디렉터리(
apigeectl
실행 파일이 있는 디렉터리의 상위 디렉터리)에 있는지 확인합니다.cd $APIGEECTL_HOME/..
-
다음 명령어를 사용하여 운영체제용 출시 버전 패키지를 다운로드합니다. 다음 테이블에서 플랫폼을 선택해야 합니다.
Linux
Linux 64비트:
curl -LO \ https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/1.10.5/apigeectl_linux_64.tar.gz
MacOS
Mac 64비트:
curl -LO \ https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/1.10.5/apigeectl_mac_64.tar.gz
Windows
Windows 64 비트:
curl -LO ^ https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/1.10.5/apigeectl_windows_64.zip
- 현재
apigeectl/
디렉터리의 이름을 백업 디렉터리 이름으로 바꿉니다. 예를 들면 다음과 같습니다.Linux
mv $APIGEECTL_HOME/ $APIGEECTL_HOME-v1.9/
MacOS
mv $APIGEECTL_HOME/ $APIGEECTL_HOME-v1.9/
Windows
rename %APIGEECTL_HOME% %APIGEECTL_HOME%-v1.9
-
다운로드한 gzip 파일 콘텐츠를 Hybrid 기본 디렉터리에 추출합니다. Hybrid 기본 디렉터리는 이름이 변경된
apigeectl-v1.9
디렉터리가 있는 디렉터리입니다.Linux
tar xvzf filename.tar.gz -C ./
MacOS
tar xvzf filename.tar.gz -C ./
Windows
tar xvzf filename.zip -C ./
-
tar 콘텐츠는 기본적으로 이름에 해당 버전과 플랫폼이 포함된 디렉터리로 확장됩니다. 예를 들면
./apigeectl_1.10.5-xxxxxxx_linux_64
입니다. 다음 명령어를 사용하여 디렉터리 이름을apigeectl
로 변경합니다.Linux
mv apigeectl_1.10.5-xxxxxxx_linux_64 apigeectl
MacOS
mv apigeectl_1.10.5-xxxxxxx_mac_64 apigeectl
Windows
rename apigeectl_1.10.5-xxxxxxx_windows_64 apigeectl
-
apigeectl
디렉터리로 변경합니다.cd ./apigeectl
이 디렉터리는
apigeectl
홈 디렉터리입니다. 여기에apigeectl
실행 가능한 명령어가 있습니다. - 이 안내에서는
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%
version
명령어를 사용하여apigeectl
의 버전을 확인합니다../apigeectl version
Version: 1.10.5
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
- 다음 명령어를 사용하여
kubectl
이 올바른 컨텍스트로 설정되었는지 확인합니다. 현재 컨텍스트를 Apigee Hybrid를 업그레이드하는 클러스터로 설정해야 합니다.kubectl config get-contexts | grep \*
hybrid-files
디렉터리에서 다음을 수행합니다.-
다음 기호화된 링크를
$APIGEECTL_HOME
으로 업데이트합니다. 이러한 링크를 사용하면hybrid-files
디렉터리 내에서 새로 설치된apigeectl
명령어를 실행할 수 있습니다.ln -nfs
$APIGEECTL_HOME
/tools toolsln -nfs
$APIGEECTL_HOME
/config configln -nfs
$APIGEECTL_HOME
/templates templatesln -nfs
$APIGEECTL_HOME
/plugins plugins -
심볼릭 링크가 올바르게 생성되었는지 확인하려면 이 명령어를 실행하고 링크 경로가 올바른 위치를 가리키는지 확인합니다.
ls -l | grep ^l
-
다음 기호화된 링크를
- overrides.yaml 파일을 다음과 같이 변경하여
apigee-operator
차트를 사용 설정하거나 올바른 태그(1.10.5-hotfix.1
)를 사용하도록 합니다.ao: image: url: "gcr.io/apigee-release/hybrid/apigee-operators" tag: "1.10.5-hotfix.1"
- 테스트 실행 초기화를 수행하여 오류를 확인합니다.
${APIGEECTL_HOME}/apigeectl init -f OVERRIDES_FILE --dry-run=client
여기서 OVERRIDES_FILE은 재정의 파일 이름입니다(예:
./overrides/overrides.yaml
). - 오류가 없으면 Hybrid 1.10.5를 초기화합니다.
$APIGEECTL_HOME/apigeectl init -f OVERRIDES_FILE
- 초기화 상태를 확인합니다.
$APIGEECTL_HOME/apigeectl check-ready -f OVERRIDES_FILE
성공하면 다음과 같이 출력됩니다:
All containers ready.
kubectl describe apigeeds -n apigee
출력에서
State: running
을 찾습니다. --dry-run
플래그를 사용하여apply
명령어의 테스트 실행으로 오류가 있는지 확인합니다.$APIGEECTL_HOME/apigeectl apply -f OVERRIDES_FILE --dry-run=client
- 오류가 없으면 재정의를 적용합니다. 설치에 따라 프로덕션 환경 또는 비프로덕션 환경의 안내를 선택하여 따릅니다.
프로덕션
프로덕션 환경의 경우 각 Hybrid 구성요소를 개별적으로 업그레이드하고 다음 구성요소로 진행하기 전에 업그레이드된 구성요소의 상태를 확인해야 합니다.
- 현재 위치가
hybrid-files
디렉터리인지 확인합니다. - 재정의를 적용하여 Cassandra를 업그레이드합니다.
$APIGEECTL_HOME/apigeectl apply -f OVERRIDES_FILE --datastore
- 완료를 확인합니다.
$APIGEECTL_HOME/apigeectl check-ready -f OVERRIDES_FILE
포드가 준비된 경우에만 다음 단계로 진행합니다.
- 재정의를 적용하여 원격 분석 구성요소를 업그레이드하고 완료를 확인합니다.
$APIGEECTL_HOME/apigeectl apply -f OVERRIDES_FILE --telemetry
$APIGEECTL_HOME/apigeectl check-ready -f OVERRIDES_FILE
- Redis 구성요소를 가져옵니다.
$APIGEECTL_HOME/apigeectl apply -f OVERRIDES_FILE --redis
- 재정의를 적용하여 조직 수준 구성요소(MART, Watcher, Apigee Connect)를 업그레이드하고 완료를 확인합니다.
$APIGEECTL_HOME/apigeectl apply -f OVERRIDES_FILE --org
$APIGEECTL_HOME/apigeectl check-ready -f OVERRIDES_FILE
- 재정의를 적용하여 환경을 업그레이드합니다. 다음 두 가지 중에서 선택할 수 있습니다.
- 환경별 환경: 한 번에 하나의 환경에 재정의를 적용하고 완료를 확인합니다. 환경마다 이 단계를 반복합니다.
$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
- 환경별 환경: 한 번에 하나의 환경에 재정의를 적용하고 완료를 확인합니다. 환경마다 이 단계를 반복합니다.
- 재정의를 적용하여
virtualhosts
구성요소를 업그레이드하고 완료를 확인합니다.$APIGEECTL_HOME/apigeectl apply -f OVERRIDES_FILE --settings virtualhosts
$APIGEECTL_HOME/apigeectl check-ready -f OVERRIDES_FILE
비프로덕션
대부분의 비프로덕션, 데모 또는 실험용 환경에서는 모든 구성요소에 재정의를 한 번에 적용할 수 있습니다. 비프로덕션 환경이 크고 복잡하거나 프로덕션 환경을 비슷하게 모방하는 경우 프로덕션 환경 업그레이드 안내를 참조하세요.
- 현재 위치가
hybrid-files
디렉터리인지 확인합니다. $APIGEECTL_HOME/apigeectl apply -f OVERRIDES_FILE
- 상태를 파악합니다.
$APIGEECTL_HOME/apigeectl check-ready -f OVERRIDES_FILE
- 현재 위치가
업그레이드 롤백
이전 업그레이드를 롤백하려면 다음 단계를 따르세요.
- 하이브리드 런타임 네임스페이스의 완료된 작업을 삭제합니다. 여기서 NAMESPACE는 재정의 파일에 지정된 네임스페이스(네임스페이스가 지정된 경우)입니다. 그렇지 않은 경우 기본 네임스페이스는
apigee
입니다.kubectl delete job -n NAMESPACE \ $(kubectl get job -n NAMESPACE \ -o=jsonpath='{.items[?(@.status.succeeded==1)].metadata.name}')
apigee-system
네임스페이스에 대해 완료된 작업을 삭제합니다.kubectl delete job -n apigee-system \ $(kubectl get job -n apigee-system \ -o=jsonpath='{.items[?(@.status.succeeded==1)].metadata.name}')
apigeectl
의 이전 버전이 포함된 디렉터리를 가리키도록APIGEECTL_HOME
변수를 변경합니다. 예를 들면 다음과 같습니다.export APIGEECTL_HOME=PATH_TO_PREVIOUS_APIGEECTL_DIRECTORY
- 롤백할 설치의 루트 디렉터리에서
apigeectl apply
를 실행하고 포드 상태를 확인한 후apigeectl init
를 실행합니다. 롤백하려는 버전에 원래 재정의 파일을 사용해야 합니다.- Hybrid 파일 디렉터리에서
apigeectl apply
를 실행합니다.$APIGEECTL_HOME
/apigeectl apply -f ORIGINAL_OVERRIDES_FILE여기서 ORIGINAL_OVERRIDES_FILE은 이전 버전 Hybrid 설치에 대한 재정의 파일의 상대 경로 및 파일 이름입니다(예:
./overrides/overrides1.9.yaml
). - 포드의 상태를 확인합니다.
kubectl -n NAMESPACE get pods
여기서 NAMESPACE는 Apigee Hybrid 네임스페이스입니다.
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
포드가 실행 중인 경우에만 다음 단계를 진행합니다.- 다음 명령어를 실행하여 업그레이드 후 메시지 프로세서에 대한 새 복제본 수 값을 기록해 둡니다. 이 값이 이전에 설정한 값과 일치하지 않으면 재정의 파일의 값을 이전 구성과 일치하도록 변경하세요.
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
apigeectl init
을 실행합니다.$APIGEECTL_HOME
/apigeectl init -f ORIGINAL_OVERRIDES_FILE
- Hybrid 파일 디렉터리에서