Cassandra 복원 개요

이 페이지에서는 Apigee Hybrid의 Cassandra 복원을 간략하게 설명합니다.

복원을 사용해야 하는 이유

재해로 인해 Apigee Hybrid 인스턴스의 복구 불가능한 데이터 손실과 같은 치명적인 오류가 발생할 경우 백업을 사용하여 처음부터 Apigee 인프라를 복원할 수 있습니다. 복원은 백업 위치에서 데이터를 가져와 노드 수가 동일한 새 Cassandra 클러스터에 복원합니다. 이전 Cassandra 클러스터에서는 클러스터 데이터를 가져오지 않습니다. 복원 프로세스의 목표는 스냅샷의 백업 데이터를 사용하여 Apigee Hybrid 설치를 이전 작동 상태로 되돌리는 것입니다.

다음과 같은 시나리오에서는 백업을 사용하여 복원하지 않는 것이 좋습니다.

  • Cassandra 노드에 오류가 발생함
  • apps, developers, api_credentials와 같은 데이터가 실수로 삭제됨
  • 멀티 리전 하이브리드 배포에서 하나 이상의 리전이 작동 중지됨

Apigee Cassandra 배포와 운영 아키텍처는 단일 리전에 대해 중복성과 내결함성을 처리합니다. 대부분의 경우 권장되는 하이브리드의 멀티 리전 프로덕션 구현은 백업에서 복원하는 대신 리전 해제 및 확장 절차를 사용하여 다른 라이브 리전에서 리전 오류를 복구할 수 있음을 의미합니다.

Cassandra 백업에서 복원을 구현하기 전에 다음 사항에 유의하세요.

  • 다운타임: 복원이 진행되는 동안 다운타임이 발생합니다.
  • 데이터 손실: 유효한 백업이 마지막으로 실행된 시간과 복원이 완료된 시간 사이에 데이터 손실이 발생합니다.
  • 복원 시간: 복원 시간은 데이터 및 클러스터의 크기에 따라 다릅니다.
  • 데이터 선택: 특정 데이터만 선택하여 복원할 수 없습니다. 복원은 내가 선택한 전체 백업을 복원합니다.

멀티 리전 복원

여러 리전에 Apigee Hybrid를 설치한 경우 복원을 수행하기 전에 복원하려는 리전의 재정의 파일을 확인하여 cassandra:hostNetworkfalse로 설정되었는지 확인해야 합니다. 자세한 내용은 여러 리전에서 복원을 참조하세요.

기본 요건

다음 기본 요건을 모두 충족하는지 확인하세요. 복원을 진행하기 전에 기본 요건 실패를 조사합니다.

  1. 다음 명령어를 사용하여 모든 Cassandra 포드가 준비되어 실행되는지 확인합니다.
    kubectl get pods -n apigee -l app=apigee-cassandra

    다음 예시와 같은 출력이 표시됩니다.

    NAME                         READY   STATUS    RESTARTS   AGE
    apigee-cassandra-default-0   1/1     Running   0          14m
    apigee-cassandra-default-1   1/1     Running   0          13m
    apigee-cassandra-default-2   1/1     Running   0          11m
    exampleuser@example hybrid-files %
          
  2. 다음 명령어를 사용하여 Cassandra StatefulSet에 모든 포드가 실행 중인 것으로 표시되는지 확인합니다.
    kubectl get sts -n apigee -l app=apigee-cassandra

    다음 예시와 같은 출력이 표시됩니다.

    NAME                       READY   AGE
    apigee-cassandra-default   3/3     15m
        
  3. 다음 명령어를 사용하여 ApigeeDatastore 리소스가 실행 중 상태인지 확인합니다.
    kubectl get apigeeds -n apigee

    다음 예시와 같은 출력이 표시됩니다.

    NAME      STATE     AGE
    default   running   16m
        
  4. 다음 명령어를 사용하여 모든 Cassandra PVC가 결합됨 상태인지 확인합니다.
    kubectl get pvc -n apigee -l app=apigee-cassandra

    다음 예시와 같은 출력이 표시됩니다.

    NAME                                        STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS   AGE
    cassandra-data-apigee-cassandra-default-0   Bound    pvc-a14184e7-8745-4b30-8069-9d50642efe04   10Gi       RWO            standard-rwo   17m
    cassandra-data-apigee-cassandra-default-1   Bound    pvc-ed129dcb-4706-4bad-a692-ac7c78bad64d   10Gi       RWO            standard-rwo   15m
    cassandra-data-apigee-cassandra-default-2   Bound    pvc-faed0ad1-9019-4def-adcd-05e7e8bb8279   10Gi       RWO            standard-rwo   13m
        
  5. 다음 명령어를 사용하여 모든 Cassandra PV가 결합됨 상태인지 확인합니다.
    kubectl get pv -n apigee

    다음 예시와 같은 출력이 표시됩니다.

    NAME                                       CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS   CLAIM                                              STORAGECLASS   REASON   AGE
    pvc-a14184e7-8745-4b30-8069-9d50642efe04   10Gi       RWO            Delete           Bound    apigee/cassandra-data-apigee-cassandra-default-0   standard-rwo            17m
    pvc-ed129dcb-4706-4bad-a692-ac7c78bad64d   10Gi       RWO            Delete           Bound    apigee/cassandra-data-apigee-cassandra-default-1   standard-rwo            16m
    pvc-faed0ad1-9019-4def-adcd-05e7e8bb8279   10Gi       RWO            Delete           Bound    apigee/cassandra-data-apigee-cassandra-default-2   standard-rwo            14m
        
  6. 다음 명령어를 사용하여 Apigee 컨트롤러 리소스가 실행 중 상태인지 확인합니다.
    kubectl get pods -n apigee-system -l app=apigee-controller

    다음 예시와 같은 출력이 표시됩니다.

    NAME                                         READY   STATUS    RESTARTS   AGE
    apigee-controller-manager-856d9bb7cb-cfvd7   2/2     Running   0          20m
        

복원 방법

Cassandra 복원 단계는 Apigee Hybrid가 단일 리전 또는 멀티 리전에 배포되었는지에 따라 약간씩 달라집니다. 자세한 복원 단계는 다음 문서를 참조하세요.