이 절차에서는 Apigee Hybrid 버전 1.12.x에서 Apigee Hybrid 버전 1.13.2로 업그레이드하고 이전 출시 버전인 Hybrid 1.13.x에서 버전 1.13.2로 업그레이드하는 작업을 다룹니다.
부 버전 업그레이드 (예: 버전 1.12에서 1.13으로)와 패치 출시 버전 업그레이드 (예: 1.13.0에서 1.13.2로)에 같은 절차를 사용합니다.
Apigee Hybrid 버전 1.11 이하에서 업그레이드하는 경우 먼저 Hybrid 버전 1.12로 업그레이드한 후에 버전 1.13.2로 업그레이드해야 합니다. Apigee Hybrid를 버전 1.12로 업그레이드의 안내를 참고하세요.
Apigee Hybrid v1.12의 변경사항
다음과 같은 변경사항이 있습니다.
-
Apigee 네임스페이스의
apigee-operator
: 버전 1.13부터apigee-operator
는 기본적으로 다른 Apigee 하이브리드 구성요소인apigee
와 동일한 Kubernetes 네임스페이스에서 실행됩니다. 네임스페이스의 이름은 무엇이든 지정할 수 있습니다. 이전 버전에서는apigee-operator
가 자체 네임스페이스인apigee-system
에서 실행되어야 했습니다. - Anthos (베어메탈 또는 VMware)가 이제 Google Distributed Cloud (베어메탈 또는 VMware용)로 변경됨: 자세한 내용은 베어메탈용 Google Distributed Cloud 및 VMware용 Google Distributed Cloud의 제품 개요를 참고하세요.
기본 요건
하이브리드 버전 1.13으로 업그레이드하기 전에 설치가 다음 요구사항을 충족하는지 확인하세요.
- 하이브리드 설치에서 v1.12보다 이전 버전을 실행하는 경우 v1.13으로 업그레이드하기 전에 버전 1.12로 업그레이드해야 합니다. Apigee Hybrid 버전 1.12로 업그레이드를 참조하세요.
- Helm 버전 v3.14.2 이상
kubectl
: Kubernetes 플랫폼 버전에 적합한 지원되는kubectl
버전입니다. 지원되는 플랫폼 및 버전:kubectl
을 참조하세요.- cert-manager: 지원되는 cert-manager 버전입니다. 지원되는 플랫폼 및 버전: cert-manager를 참조하세요. 필요한 경우 아래의 버전 1.13으로 업그레이드 준비 섹션에서 cert-manager를 업그레이드합니다.
버전 1.13.2로 업그레이드 개요
Apigee Hybrid 업그레이드 절차는 다음과 같은 섹션으로 정리됩니다.
버전 1.13으로 업그레이드 준비
Hybrid 설치 백업
- 이 안내에서는 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%
- 버전 1.12
$APIGEE_HELM_CHARTS_HOME/
디렉터리의 백업 복사본을 만듭니다. 모든 백업 프로세스를 사용할 수 있습니다. 예를 들어 다음을 사용하여 전체 디렉터리의tar
파일을 만들 수 있습니다.tar -czvf $APIGEE_HELM_CHARTS_HOME/../apigee-helm-charts-v1.12-backup.tar.gz $APIGEE_HELM_CHARTS_HOME
- Cassandra 백업 및 복구의 안내에 따라 Cassandra 데이터베이스를 백업합니다.
- 서비스 계정 인증에 대한 재정의에 서비스 인증서 파일(
.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/
-
TLS 인증서와 키 파일(
.crt
,.key
또는.pem
)이$APIGEE_HELM_CHARTS_HOME/apigee-virtualhost/
디렉터리에 있는지 확인합니다.
Kubernetes 버전 업그레이드
Kubernetes 플랫폼 버전을 확인하고 필요한 경우 Kubernetes 플랫폼을 Hybrid 1.12 및 Hybrid 1.13 모두에서 지원하는 버전으로 업그레이드합니다. 도움이 필요하면 플랫폼 문서를 참조하세요.
Hybrid 1.13.2 런타임 설치
Helm 차트 업그레이드 준비
- 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.13.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
- 필요한 경우 cert-manager를 업그레이드합니다.
cert-manager 버전을 업그레이드해야 하는 경우 다음 명령어를 사용하여 새 버전을 설치합니다.
kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.15.1/cert-manager.yaml
지원되는 버전 목록은 지원되는 플랫폼 및 버전: cert-manager를 참조하세요.
- Apigee 네임스페이스가
apigee
가 아니면apigee-operator/etc/crds/default/kustomization.yaml
파일을 수정하고namespace
값을 Apigee 네임스페이스로 바꿉니다.apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization namespace: APIGEE_NAMESPACE
apigee
를 네임스페이스로 사용하는 경우 파일을 수정할 필요가 없습니다. - 업데이트된 Apigee CRD를 설치합니다.
-
다음 명령어를 실행하여
kubectl
테스트 실행 기능을 사용합니다.kubectl apply -k apigee-operator/etc/crds/default/ --server-side --force-conflicts --validate=false --dry-run
-
테스트 실행 명령어로 유효성을 검사한 후 다음 명령어를 실행합니다.
kubectl apply -k apigee-operator/etc/crds/default/ \ --server-side \ --force-conflicts \ --validate=false
kubectl get crds
명령어를 사용하여 설치를 검증합니다.kubectl get crds | grep apigee
출력이 다음과 같이 표시됩니다.
apigeedatastores.apigee.cloud.google.com 2024-08-21T14:48:30Z apigeedeployments.apigee.cloud.google.com 2024-08-21T14:48:30Z apigeeenvironments.apigee.cloud.google.com 2024-08-21T14:48:31Z apigeeissues.apigee.cloud.google.com 2024-08-21T14:48:31Z apigeeorganizations.apigee.cloud.google.com 2024-08-21T14:48:32Z apigeeredis.apigee.cloud.google.com 2024-08-21T14:48:33Z apigeerouteconfigs.apigee.cloud.google.com 2024-08-21T14:48:33Z apigeeroutes.apigee.cloud.google.com 2024-08-21T14:48:33Z apigeetelemetries.apigee.cloud.google.com 2024-08-21T14:48:34Z cassandradatareplications.apigee.cloud.google.com 2024-08-21T14:48:35Z
-
-
apigee-operator
를apigee-system
네임스페이스에서 APIGEE_NAMESPACE로 마이그레이션합니다.clusterIssuer
에 새 네임스페이스를 주석으로 추가합니다.kubectl annotate --overwrite clusterIssuer apigee-ca-issuer meta.helm.sh/release-namespace='APIGEE_NAMESPACE'
apigee-operator
의 출시 이름을 변경하는 경우clusterIssuer
에 새 출시 이름을 주석으로 추가합니다.kubectl annotate --overwrite clusterIssuer apigee-ca-issuer meta.helm.sh/release-name='APIGEE_OPERATOR_RELEASE_NAME'
- 두 컨트롤러가 조정되지 않도록
apigee-system
네임스페이스에 있는 기존 Apigee Operator 배포 복제본을 0으로 업데이트합니다.kubectl scale deployment apigee-controller-manager -n apigee-system --replicas=0
apigee-mutating-webhook-configuration
및apigee-validating-webhook-configuration
을 삭제합니다.kubectl delete mutatingwebhookconfiguration apigee-mutating-webhook-configuration
kubectl delete validatingwebhookconfiguration apigee-validating-webhook-configuration
-
클러스터 노드의 라벨을 확인합니다. 기본적으로 Apigee는
cloud.google.com/gke-nodepool=apigee-data
라벨이 있는 노드의 데이터 포드를 예약하고 런타임 포드는cloud.google.com/gke-nodepool=apigee-runtime
라벨이 있는 노드에 예약됩니다.overrides.yaml
파일에서 노드 풀 라벨을 맞춤설정할 수 있습니다.자세한 내용은 전용 노드 풀 구성을 참조하세요.
Apigee Hybrid Helm 차트 설치
- 그렇지 않은 경우에는
APIGEE_HELM_CHARTS_HOME
디렉터리로 이동합니다. 해당 디렉터리에서 다음 명령어를 실행합니다. - Apigee Operator/Controller를 업그레이드합니다.
테스트 실행을 수행합니다.
helm upgrade operator apigee-operator/ \ --install \ --namespace APIGEE_NAMESPACE \ -f OVERRIDES_FILE \ --dry-run=server
차트를 업그레이드합니다.
helm upgrade operator apigee-operator/ \ --install \ --namespace APIGEE_NAMESPACE \ -f OVERRIDES_FILE
Apigee 운영자 설치를 확인합니다.
helm ls -n APIGEE_NAMESPACE
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION operator apigee 3 2024-08-21 00:42:44.492009 -0800 PST deployed apigee-operator-1.13.2 1.13.2
가용성을 확인하여 실행 중인지 확인합니다.
kubectl -n APIGEE_NAMESPACE get deploy apigee-controller-manager
NAME READY UP-TO-DATE AVAILABLE AGE apigee-controller-manager 1/1 1 1 7d20h
- Apigee Datastore를 업그레이드합니다.
테스트 실행을 수행합니다.
helm upgrade datastore apigee-datastore/ \ --install \ --namespace APIGEE_NAMESPACE \ -f OVERRIDES_FILE \ --dry-run=server
차트를 업그레이드합니다.
helm upgrade datastore apigee-datastore/ \ --install \ --namespace APIGEE_NAMESPACE \ -f OVERRIDES_FILE
상태를 확인하여
apigeedatastore
가 실행 중인지 확인합니다.kubectl -n APIGEE_NAMESPACE get apigeedatastore default
NAME STATE AGE default running 2d
- Apigee 원격 분석을 업그레이드합니다.
테스트 실행을 수행합니다.
helm upgrade telemetry apigee-telemetry/ \ --install \ --namespace APIGEE_NAMESPACE \ -f OVERRIDES_FILE \ --dry-run=server
차트를 업그레이드합니다.
helm upgrade telemetry apigee-telemetry/ \ --install \ --namespace APIGEE_NAMESPACE \ -f OVERRIDES_FILE
상태를 확인하여 실행 중인지 확인합니다.
kubectl -n APIGEE_NAMESPACE get apigeetelemetry apigee-telemetry
NAME STATE AGE apigee-telemetry running 2d
- Apigee Redis를 업그레이드합니다.
테스트 실행을 수행합니다.
helm upgrade redis apigee-redis/ \ --install \ --namespace APIGEE_NAMESPACE \ -f OVERRIDES_FILE \ --dry-run=server
차트를 업그레이드합니다.
helm upgrade redis apigee-redis/ \ --install \ --namespace APIGEE_NAMESPACE \ -f OVERRIDES_FILE
상태를 확인하여 실행 중인지 확인합니다.
kubectl -n APIGEE_NAMESPACE get apigeeredis default
NAME STATE AGE default running 2d
- Apigee 인그레스 관리자를 업그레이드합니다.
테스트 실행을 수행합니다.
helm upgrade ingress-manager apigee-ingress-manager/ \ --install \ --namespace APIGEE_NAMESPACE \ -f OVERRIDES_FILE \ --dry-run=server
차트를 업그레이드합니다.
helm upgrade ingress-manager apigee-ingress-manager/ \ --install \ --namespace APIGEE_NAMESPACE \ -f OVERRIDES_FILE
가용성을 확인하여 실행 중인지 확인합니다.
kubectl -n APIGEE_NAMESPACE get deployment apigee-ingressgateway-manager
NAME READY UP-TO-DATE AVAILABLE AGE apigee-ingressgateway-manager 2/2 2 2 2d
- Apigee 조직을 업그레이드합니다.
테스트 실행을 수행합니다.
helm upgrade ORG_NAME apigee-org/ \ --install \ --namespace APIGEE_NAMESPACE \ -f OVERRIDES_FILE \ --dry-run=server
차트를 업그레이드합니다.
helm upgrade ORG_NAME apigee-org/ \ --install \ --namespace APIGEE_NAMESPACE \ -f OVERRIDES_FILE
해당 조직의 상태를 확인하여 실행 중인지 확인합니다.
kubectl -n APIGEE_NAMESPACE get apigeeorg
NAME STATE AGE apigee-org1-xxxxx running 2d
- 환경을 업그레이드합니다.
한 번에 환경 하나만 설치해야 합니다.
--set env=
ENV_NAME으로 환경을 지정합니다.테스트 실행을 수행합니다.
helm upgrade ENV_RELEASE_NAME apigee-env/ \ --install \ --namespace APIGEE_NAMESPACE \ --set env=ENV_NAME \ -f OVERRIDES_FILE \ --dry-run=server
- ENV_RELEASE_NAME은 이전에
apigee-env
차트를 설치한 이름입니다. Hybrid v1.10에서는 일반적으로apigee-env-ENV_NAME
입니다. Hybrid v1.11 이상에서는 일반적으로 ENV_NAME입니다. - ENV_NAME은 업그레이드하는 환경의 이름입니다.
- OVERRIDES_FILE은 v.1.13.2의 새로운 재정의 파일입니다.
차트를 업그레이드합니다.
helm upgrade ENV_RELEASE_NAME apigee-env/ \ --install \ --namespace APIGEE_NAMESPACE \ --set env=ENV_NAME \ -f OVERRIDES_FILE
해당 환경의 상태를 확인하여 실행 중인지 확인합니다.
kubectl -n APIGEE_NAMESPACE get apigeeenv
NAME STATE AGE GATEWAYTYPE apigee-org1-dev-xxx running 2d
- ENV_RELEASE_NAME은 이전에
-
환경 그룹(
virtualhosts
)을 업그레이드합니다.- 한 번에 환경 그룹(virtualhost) 하나만 설치해야 합니다.
--set envgroup=
ENV_GROUP_NAME으로 환경 그룹을 지정합니다. override.yaml 파일에 언급된 환경 그룹마다 다음 명령어를 반복합니다.테스트 실행을 수행합니다.
helm upgrade ENV_GROUP_RELEASE_NAME apigee-virtualhost/ \ --install \ --namespace APIGEE_NAMESPACE \ --set envgroup=ENV_GROUP_NAME \ -f OVERRIDES_FILE \ --dry-run=server
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_NAMESPACE \ --set envgroup=ENV_GROUP_NAME \ -f OVERRIDES_FILE
- ApigeeRoute(AR) 상태를 확인합니다.
virtualhosts
를 설치하면 Apigee 감시자가 제어 영역에서 환경 그룹 관련 세부정보를 가져온 후 내부적으로 ApigeeRoute(AR)를 만드는 ApigeeRouteConfig(ARC)가 생성됩니다. 따라서 해당 AR 상태가 실행 중인지 확인합니다.kubectl -n APIGEE_NAMESPACE get arc
NAME STATE AGE apigee-org1-dev-egroup 2d
kubectl -n APIGEE_NAMESPACE get ar
NAME STATE AGE apigee-org1-dev-egroup-xxxxxx running 2d
- 한 번에 환경 그룹(virtualhost) 하나만 설치해야 합니다.
- 모든 설치가 성공적으로 업그레이드되었는지 확인한 후
apigee-system
네임스페이스에서 이전apigee-operator
버전을 삭제합니다.- 이전
operator
버전을 제거합니다.helm delete operator -n apigee-system
apigee-system
네임스페이스를 삭제합니다.kubectl delete namespace apigee-system
- 이전
- 삭제된 클러스터 범위 리소스를 다시 설치하려면 Apigee 네임스페이스에서
operator
을 다시 업그레이드합니다.helm upgrade operator apigee-operator/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml
이전 버전으로 롤백
이전 버전으로 롤백하려면 이전 차트 버전을 사용하여 업그레이드 프로세스를 역순으로 롤백합니다. apigee-virtualhost
로 시작하여 apigee-operator
로 돌아간 다음 CRD를 되돌립니다.
apigee-operator
의 네임스페이스 변경사항으로 인해 검증 및 변형 허용 후크를 삭제하려면 추가 단계를 수행합니다. 이렇게 하면 apigee-operator
를 apigee-system
네임스페이스에 다시 설치할 때 올바른 Apigee Operator 엔드포인트를 가리키도록 다시 만들어집니다.
apigee-system
네임스페이스에서 롤백할 때 충돌을 방지하기 위해 두 컨트롤러가 커스텀 리소스를 조정하지 않도록 Apigee에서 기존 Apigee 연산자 배포 복제본을 0으로 업데이트합니다.kubectl scale deployment apigee-controller-manager -n APIGEE_NAMESPACE --replicas=0
kubectl delete mutatingwebhookconfiguration \ apigee-mutating-webhook-configuration-APIGEE_NAMESPACE
kubectl delete validatingwebhookconfiguration \ apigee-validating-webhook-configuration-APIGEE_NAMESPACE
- 모든 차트를
apigee-virtualhost
에서apigee-datastore
로 되돌립니다. 다음 명령어는 이전 버전 (v1.12.x)의 차트를 사용한다고 가정합니다.각 환경 그룹에 대해 다음 명령을 실행합니다.
helm upgrade ENV_GROUP_RELEASE_NAME apigee-virtualhost/ \ --install \ --namespace apigee \ --atomic \ --set envgroup=ENV_GROUP_NAME \ -f 1.12_OVERRIDES_FILE
각 환경에 대해 다음 명령어를 실행합니다.
helm upgrade ENV_RELEASE_NAME apigee-env/ \ --install \ --namespace apigee \ --atomic \ --set env=ENV_NAME \ -f 1.12_OVERRIDES_FILE
apigee-operator
를 제외한 나머지 차트를 되돌립니다.helm upgrade ORG_NAME apigee-org/ \ --install \ --namespace apigee \ --atomic \ -f 1.12_OVERRIDES_FILE
helm upgrade ingress-manager apigee-ingress-manager/ \ --install \ --namespace apigee \ --atomic \ -f 1.12_OVERRIDES_FILE
helm upgrade redis apigee-redis/ \ --install \ --namespace apigee \ --atomic \ -f 1.12_OVERRIDES_FILE
helm upgrade telemetry apigee-telemetry/ \ --install \ --namespace apigee \ --atomic \ -f 1.12_OVERRIDES_FILE
helm upgrade datastore apigee-datastore/ \ --install \ --namespace apigee \ --atomic \ -f 1.12_OVERRIDES_FILE
apigee-system
네임스페이스를 만듭니다.kubectl create namespace apigee-system
- 리소스 주석을 다시
apigee-system
네임스페이스에 패치합니다.kubectl annotate --overwrite clusterIssuer apigee-ca-issuer meta.helm.sh/release-namespace='apigee-system'
- 출시 이름도 변경한 경우 주석을
operator
출시 이름으로 업데이트합니다.kubectl annotate --overwrite cluseterIssuer apigee-ca-issuer meta.helm.sh/release-name='operator'
apigee-operator
를apigee-system
네임스페이스에 다시 설치합니다.helm upgrade operator apigee-operator/ \ --install \ --namespace apigee-system \ --atomic \ -f 1.12_OVERRIDES_FILE
- 이전 CRD를 재설치하여 CRD를 되돌립니다.
kubectl apply -k apigee-operator/etc/crds/default/ \ --server-side \ --force-conflicts \ --validate=false
- APIGEE_NAMESPACE 네임스페이스에서
apigee-operator
출시를 삭제하여 롤백 프로세스를 완료합니다.helm uninstall operator -n APIGEE_NAMESPACE
operator
가 제거되면clusterIssuer
와 같은 일부 클러스터 범위 리소스가 삭제됩니다. 다음 명령어를 사용하여 다시 설치합니다.helm upgrade operator apigee-operator/ \ --install \ --namespace apigee-system \ --atomic \ -f 1.12_OVERRIDES_FILE