이 페이지에서는 단일 리전에서 Cassandra를 복원하는 방법을 설명합니다.
단일 리전 배포에서 Apigee Hybrid는 단일 데이터 센터 또는 리전에 배포됩니다. 배포에 Apigee 조직이 여러 개 있으면 복원 프로세스가 모든 조직의 데이터를 복원합니다. 멀티 조직 설정의 경우 특정 조직을 복원할 수 없습니다.
백업에서 리전 복원
Apigee Hybrid에 사용 중인 관리 도구에 따라 아래 안내를 선택하세요.
Helm
-
overrides.yaml
파일에서 Cassandra 복원 세부정보를 업데이트합니다.namespace: YOUR_RESTORE_NAMESPACE # Use the same namespace as in your original cluster. cassandra: hostNetwork: false ... restore: enabled: true serviceAccountPath: "SA_JSON_FILE_PATH" dbStorageBucket: "CLOUD_STORAGE_BUCKET_PATH" cloudProvider: "GCP" # required verbatim "GCP" (all caps) snapshotTimestamp: "TIMESTAMP" ... backup: enabled: false ...
각 항목의 의미는 다음과 같습니다.
속성 설명 namespace
YOUR_RESTORE_NAMESPACE
복원할 네임스페이스입니다. 원래 클러스터와 동일한 네임스페이스를 사용합니다.
cassandra:hostNetwork
hostNetwork
은 필수이며 항상false
로 설정해야 합니다.restore:enabled
복원은 기본적으로 사용 중지되어 있습니다. 이 속성을 true
로 설정해야 합니다.restore:serviceAccountPath
SA_JSON_FILE_PATH
백업용으로 만든 서비스 계정의 파일 시스템 경로입니다.
restore:dbStorageBucket
CLOUD_STORAGE_BUCKET_PATH
백업 데이터가
gs://BUCKET_NAME
형식으로 저장되는 Cloud Storage 버킷 경로입니다.gs://
는 필수 항목입니다.restore:cloudProvider
GCP
cloudProvider: "GCP"
속성은 필수입니다.restore:snapshotTimestamp
TIMESTAMP
복원할 백업 스냅샷의 타임스탬프입니다. 사용할 수 있는 타임스탬프를 확인하려면
dbStorageBucket
으로 이동하여 버킷에 있는 파일을 확인합니다. 각 파일 이름에는 타임스탬프 값이 포함됩니다. 예를 들면backup_20210203213003_apigee-cassandra-default-0.tgz
입니다.여기서 20210203213003은 해당 시점에 생성된 백업을 복원하려는 경우에 사용하는
snapshotTimestamp
값입니다.backup:enabled
이전에 이 속성을 true
로 설정했다면false
로 설정해야 합니다. -
시작할 초기 클러스터가 없는 경우 Helm을 위한 하이브리드 리전 사용 중단 문서에 따라 기존 Hybrid 설치를 초기 상태로 전환합니다(인증서 관리자는 설치된 상태로 두어도 무방함). 이렇게 하면 11단계의 시작 부분까지 Helm 런타임 설정 설명서를 따랐을 때와 동일한 상태가 됩니다.
-
Apigee 네임스페이스에 남은 포드가 없는지 확인합니다.
kubectl get pods -n apigee
kubectl get pods -n apigee-system
-
CSI 백업을 사용하는 경우 다음을 실행하여 복원 프로세스에 사용할 볼륨 스냅샷이 표시되는지 확인합니다.
kubectl get volumesnapshot -n apigee
-
설치 매뉴얼의 11단계에 설명된 대로 모든 Hybrid 구성요소를 하나씩 설치합니다.
datastore
설치를 위한 명령어를 실행하면apigee-cassandra-restore
포드가 생성되지만apigee-org
구성요소를 설치한 후에만running
상태로 전환됩니다.
Cassandra 백업 및 복원에 대한 자세한 내용은 Cassandra 백업 개요를 참조하세요.
apigeectl
구성에 따라 Cassandra 백업이 Cloud Storage 또는 원격 서버에 저장될 수 있습니다. 어느 경우든 다음 단계를 수행하여 복원합니다.
- 하이브리드 버전을 확인합니다.
버전이 스토리지에 백업 파일을 만든 버전과 같은지 확인합니다.apigeectl version
- 복원할 Kubernetes 클러스터에 이전 Apigee Hybrid 설치가 없는지 확인합니다. 기존 클러스터로 복원하는 경우 다음 명령어를 사용하여 기존 Apigee Hybrid 설치를 삭제합니다.
apigeectl delete -f overrides.yaml
kubectl -n apigee get apigeedatastore,apigeeredis,apigeetelemetry,org,env,arc # The output should be empty.
apigeectl delete --all -f overrides.yaml
overrides.yaml
파일을 열고restore
속성을 원하는 값으로 설정합니다.Cloud Storage
매개변수
namespace: YOUR_RESTORE_NAMESPACE # Use the same namespace as in your original cluster. cassandra: hostNetwork: false ... restore: enabled: true serviceAccountPath: "SA_JSON_FILE_PATH" dbStorageBucket: "CLOUD_STORAGE_BUCKET_PATH" cloudProvider: "GCP" # required verbatim "GCP" (all caps) snapshotTimestamp: "TIMESTAMP" ... backup: enabled: false serviceAccountPath: "SA_JSON_FILE_PATH" dbStorageBucket: "CLOUD_STORAGE_BUCKET_PATH" cloudProvider: "GCP" # required verbatim "GCP" (all caps) schedule: "SCHEDULE"
예
namespace: apigee cassandra: hostNetwork: false ... restore: enabled: true serviceAccountPath: "/Users/myhome/.ssh/my_cassandra_backup.json" dbStorageBucket: "gs://myname-cassandra-backup" cloudProvider: "GCP" snapshotTimestamp: "20201001183903" ... backup: enabled: false serviceAccountPath: "/Users/myhome/.ssh/my_cassandra_backup.json" dbStorageBucket: "gs://myname-cassandra-backup" cloudProvider: "GCP" schedule: "0 2 * * *" ...
각 항목의 의미는 다음과 같습니다.
속성 설명 namespace
YOUR_RESTORE_NAMESPACE
복원할 네임스페이스입니다. 원래 클러스터와 동일한 네임스페이스를 사용합니다.
cassandra:hostNetwork
hostNetwork
은 필수이며 항상false
로 설정해야 합니다.restore:enabled
복원은 기본적으로 사용 중지되어 있습니다. 이 속성을 true
로 설정해야 합니다.restore:serviceAccountPath
SA_JSON_FILE_PATH
백업용으로 만든 서비스 계정의 파일 시스템 경로입니다.
restore:dbStorageBucket
CLOUD_STORAGE_BUCKET_PATH
백업 데이터가
gs://BUCKET_NAME
형식으로 저장되는 Cloud Storage 버킷 경로입니다.gs://
는 필수 항목입니다.restore:cloudProvider
GCP
cloudProvider: "GCP"
속성은 필수입니다.restore:snapshotTimestamp
TIMESTAMP
복원할 백업 스냅샷의 타임스탬프입니다. 사용할 수 있는 타임스탬프를 확인하려면
dbStorageBucket
으로 이동하여 버킷에 있는 파일을 확인합니다. 각 파일 이름에는 타임스탬프 값이 포함됩니다. 예를 들면backup_20210203213003_apigee-cassandra-default-0.tgz
입니다.여기서 20210203213003은 해당 시점에 생성된 백업을 복원하려는 경우에 사용하는
snapshotTimestamp
값입니다.backup:enabled
이전에 이 속성을 true
로 설정했다면false
로 설정해야 합니다.backup:serviceAccountPath
SA_JSON_FILE_PATH
./tools/create-service-account
를 실행할 때 다운로드된 서비스 계정 JSON 파일의 파일 시스템 경로입니다.backup:dbStorageBucket
CLOUD_STORAGE_BUCKET_PATH
gs://BUCKET_NAME
형식의 Cloud Storage 버킷 경로입니다.gs://
는 필수 항목입니다.backup:cloudProvider
GCP
cloudProvider: "GCP"
속성은 필수입니다.backup:schedule
SCHEDULE
백업이 시작되는 시간이며 표준 crontab 문법에 지정되어 있습니다. 기본값:
0 2 * * *
비 Cloud Storage
매개변수
namespace: YOUR_RESTORE_NAMESPACE # Use the same namespace as in your original cluster. cassandra: hostNetwork: false ... restore: enabled: true keyFile: "PATH_TO_PRIVATE_KEY_FILE" server: "BACKUP_SERVER_IP" storageDirectory: "/home/apigee/BACKUP_DIRECTORY" cloudProvider: "HYBRID" # required verbatim "HYBRID" (all caps) snapshotTimestamp: "TIMESTAMP" ... backup: enabled: false keyFile: "PATH_TO_PRIVATE_KEY_FILE" server: "BACKUP_SERVER_IP" storageDirectory: "/home/apigee/BACKUP_DIRECTORY" cloudProvider: "HYBRID" # required verbatim "HYBRID" (all caps) schedule: "SCHEDULE"
예
namespace: apigee cassandra: hostNetwork: false ... restore: enabled: true keyFile: "/Users/exampleuser/apigee-hybrid/hybrid-files/service-accounts/private.key" server: "34.56.78.90" storageDirectory: "/home/apigee/cassbackup" cloudProvider: "HYBRID" snapshotTimestamp: "20201001183903" ... backup: enabled: false keyFile: "/Users/exampleuser/apigee-hybrid/hybrid-files/service-accounts/private.key" server: "34.56.78.90" storageDirectory: "/home/apigee/cassbackup" cloudProvider: "HYBRID" schedule: "0 2 * * *" ...
각 항목의 의미는 다음과 같습니다.
속성 설명 namespace
YOUR_RESTORE_NAMESPACE
복원할 네임스페이스입니다. 원래 클러스터와 동일한 네임스페이스를 사용합니다.
cassandra:hostNetwork
hostNetwork
은 필수이며 항상false
로 설정해야 합니다.restore:enabled
복원은 기본적으로 사용 중지되어 있습니다. 이 속성을 true
로 설정해야 합니다.restore:keyFile
PATH_TO_PRIVATE_KEY_FILE
로컬 파일 시스템의 SSH 비공개 키 파일(SSH 키 쌍 생성 단계에서 만든
ssh_key
라는 이름의 파일) 경로입니다.restore:server
BACKUP_SERVER_IP
백업 서버의 IP 주소입니다.
restore:storageDirectory
BACKUP_DIRECTORY
백업 서버의 백업 디렉터리 이름입니다. 이는
home/apigee
내의 디렉터리여야 하며, 백업 디렉터리의 이름은 백업 디렉터리 생성 단계에서 만든cassandra_backup
입니다.restore:cloudProvider
HYBRID
cloudProvider: "HYBRID"
속성은 필수입니다.restore:snapshotTimestamp
TIMESTAMP
복원할 백업 스냅샷의 타임스탬프입니다. 사용할 수 있는 타임스탬프를 확인하려면
dbStorageBucket
으로 이동하여 버킷에 있는 파일을 확인합니다. 각 파일 이름에는 타임스탬프 값이 포함됩니다. 예를 들면backup_20210203213003_apigee-cassandra-default-0.tgz
입니다.여기서 20210203213003은 해당 시점에 생성된 백업을 복원하려는 경우에 사용하는
snapshotTimestamp
값입니다.backup:enabled
이전에 이 속성을 true
로 설정했다면false
로 설정해야 합니다.backup:keyFile
PATH_TO_PRIVATE_KEY_FILE
로컬 파일 시스템의 SSH 비공개 키 파일(SSH 키 쌍 생성 단계에서 만든
ssh_key
라는 이름의 파일) 경로입니다.backup:server
BACKUP_SERVER_IP
백업 서버의 IP 주소입니다.
backup:storageDirectory
BACKUP_DIRECTORY
백업 서버의 백업 디렉터리 이름입니다. 이는
home/apigee
내의 디렉터리여야 하며, 백업 디렉터리의 이름은 백업 디렉터리 생성 단계에서 만든cassandra_backup
입니다.backup:cloudProvider
HYBRID
cloudProvider: "HYBRID"
속성은 필수입니다.backup:schedule
SCHEDULE
백업이 시작되는 시간이며 표준 crontab 문법에 지정되어 있습니다. 기본값:
0 2 * * *
- 새 하이브리드 런타임 배포를 생성합니다. 그러면 새 Cassandra 클러스터가 생성되고 백업 데이터가 클러스터로 복원되기 시작합니다.
${APIGEECTL_HOME}/apigeectl init -f overrides/overrides.yaml
${APIGEECTL_HOME}/apigeectl check-ready -f overrides/overrides.yaml
${APIGEECTL_HOME}/apigeectl apply -f overrides/overrides.yaml --restore
${APIGEECTL_HOME}/apigeectl check-ready -f overrides/overrides.yaml
복원 작업 진행 상황을 확인하고 apigeeds
및 다른 모든 포드가 작동 중인지 확인합니다.
apigeeds
를 확인합니다.kubectl get apigeeds -n apigee
- 다른 모든 포드를 확인합니다.
kubectl get pods -n apigee
복원과 런타임 구성요소 정상 여부 확인이 성공적으로 완료된 후 클러스터에서 백업을 구성하는 것이 좋습니다.
overrides-restore.yaml
파일에서restore
구성을 삭제합니다.backup
구성을overrides-restore.yaml
파일에 추가합니다.- 다음 명령어를 사용하여
backup
구성을 적용합니다.Helm
helm upgrade datastore apigee-datastore/ \ --install \ --namespace apigee \ --atomic \ -f overrides.yaml
apigeectl
./apigeectl apply -f ../overrides.yaml