Memulihkan di satu wilayah

Halaman ini menjelaskan cara memulihkan Cassandra di satu region.

Dalam deployment region tunggal, Apigee Hybrid di-deploy dalam satu pusat data atau region. Jika Anda memiliki beberapa organisasi Apigee dalam deployment Anda, proses pemulihan akan memulihkan data untuk semua organisasi. Dalam penyiapan multiorganisasi, Anda tidak dapat memulihkan organisasi tertentu.

Memulihkan region dari cadangan

Dalam konfigurasi Anda, cadangan Cassandra dapat berada di Cloud Storage atau pada server jarak jauh. Dalam kedua kasus tersebut, lakukan langkah-langkah berikut untuk memulihkan:

  1. Verifikasi versi hybrid.
    apigeectl version
    Pastikan versinya adalah versi yang sama dengan yang membuat file cadangan di penyimpanan.
  2. Pastikan bahwa cluster Kubernetes yang Anda pulihkan tidak memiliki penginstalan hybrid Apigee sebelumnya. Jika Anda memulihkan ke cluster yang ada, gunakan perintah berikut untuk menghapus Apigee yang sudah ada instalasi 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
  3. Buka file overrides.yaml Anda dan setel restore ke nilai yang diinginkan:

    Cloud Storage

    Parameter

    namespace: YOUR_RESTORE_NAMESPACE # Use the 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: true
        serviceAccountPath: "SA_JSON_FILE_PATH"
        dbStorageBucket: "CLOUD_STORAGE_BUCKET_PATH"
        cloudProvider: "GCP"  # required verbatim "GCP" (all caps)
        schedule: "SCHEDULE"
    

    Contoh

    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: true
        serviceAccountPath: "/Users/myhome/.ssh/my_cassandra_backup.json"
        dbStorageBucket: "gs://myname-cassandra-backup"
        cloudProvider: "GCP"
        schedule: "0 2 * * *"
      ...

    Dengan keterangan:

    Properti Deskripsi
    namespace

    YOUR_RESTORE_NAMESPACE

    Namespace untuk dipulihkan. Gunakan namespace seperti pada cluster asli Anda.

    cassandra:hostNetwork

    hostNetwork diperlukan dan harus selalu ditetapkan ke false.

    restore:enabled Pemulihan dinonaktifkan secara default. Anda harus menyetel ini ke true.
    restore:serviceAccountPath

    SA_JSON_FILE_PATH

    Jalur di sistem file ke akun layanan yang Anda buat untuk pencadangan.

    restore:dbStorageBucket

    CLOUD_STORAGE_BUCKET_PATH

    Jalur bucket Cloud Storage tempat data cadangan Anda disimpan dalam format berikut: gs://BUCKET_NAME. gs:// wajib diisi.

    restore:cloudProvider

    GCP

    Properti cloudProvider: "GCP" wajib diisi.

    restore:snapshotTimestamp

    TIMESTAMP

    Stempel waktu snapshot cadangan yang akan dipulihkan. Untuk memeriksa stempel waktu yang dapat digunakan, buka dbStorageBucket dan lihat file yang ada di direktori VM dengan bucket. Setiap nama file berisi nilai stempel waktu. Misalnya, backup_20210203213003_apigee-cassandra-default-0.tgz

    Dengan 20210203213003 adalah nilai snapshotTimestamp yang akan Anda digunakan jika Anda ingin memulihkan cadangan yang dibuat pada saat itu.

    backup:enabled Pencadangan dinonaktifkan secara default. Anda harus menyetel ini ke true.
    backup:serviceAccountPath

    SA_JSON_FILE_PATH

    Jalur di sistem file Anda ke file JSON akun layanan yang diunduh saat Anda menjalankan ./tools/create-service-account

    backup:dbStorageBucket

    CLOUD_STORAGE_BUCKET_PATH

    Jalur bucket Cloud Storage dalam format ini: gs://BUCKET_NAME. gs:// wajib diisi.

    backup:cloudProvider

    GCP

    Properti cloudProvider: "GCP" wajib diisi.

    backup:schedule

    SCHEDULE

    Waktu mulai pencadangan, yang ditentukan dalam sintaksis crontab standar. Default: 0 2 * * *

    Penyimpanan Non-Cloud

    Parameter

      namespace: YOUR_RESTORE_NAMESPACE # Use the 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: true
          keyFile: "PATH_TO_PRIVATE_KEY_FILE"
          server: "BACKUP_SERVER_IP"
          storageDirectory: "/home/apigee/BACKUP_DIRECTORY"
          cloudProvider: "HYBRID" # required verbatim "HYBRID" (all caps)
          schedule: "SCHEDULE"
      

    Contoh

      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: true
          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 * * *"
        ...

    Dengan keterangan:

    Properti Deskripsi
    namespace

    YOUR_RESTORE_NAMESPACE

    Namespace untuk dipulihkan. Gunakan namespace seperti pada cluster asli Anda.

    cassandra:hostNetwork

    hostNetwork diperlukan dan harus selalu ditetapkan ke false.

    restore:enabled Pemulihan dinonaktifkan secara default. Anda harus menyetel ini ke true.
    restore:keyFile

    PATH_TO_PRIVATE_KEY_FILE

    Jalur di sistem file lokal Anda ke File kunci pribadi SSH (bernama ssh_key dalam langkah saat Anda membuat pasangan kunci SSH).

    restore:server

    BACKUP_SERVER_IP

    Alamat IP server cadangan Anda.

    restore:storageDirectory

    BACKUP_DIRECTORY

    Nama direktori cadangan di server cadangan Anda. Ini harus berupa direktori di dalam home/apigee (direktori cadangan bernama cassandra_backup pada langkah tempat Anda membuat direktori pencadangan).

    restore:cloudProvider

    HYBRID

    Properti cloudProvider: "HYBRID" wajib diisi.

    restore:snapshotTimestamp

    TIMESTAMP

    Stempel waktu snapshot cadangan yang akan dipulihkan. Untuk memeriksa stempel waktu yang dapat digunakan, buka dbStorageBucket dan lihat file yang ada di direktori VM dengan bucket. Setiap nama file berisi nilai stempel waktu. Misalnya, backup_20210203213003_apigee-cassandra-default-0.tgz

    Dengan 20210203213003 adalah nilai snapshotTimestamp yang akan Anda digunakan jika Anda ingin memulihkan cadangan yang dibuat pada saat itu.

    backup:enabled Pencadangan dinonaktifkan secara default. Anda harus menyetel ini ke true.
    backup:keyFile

    PATH_TO_PRIVATE_KEY_FILE

    Jalur di sistem file lokal Anda ke file kunci pribadi SSH (bernama ssh_key pada langkah tempat Anda membuat pasangan kunci SSH).

    backup:server

    BACKUP_SERVER_IP

    Alamat IP server cadangan Anda.

    backup:storageDirectory

    BACKUP_DIRECTORY

    Nama direktori cadangan di server cadangan Anda. Ini harus berupa direktori di dalam home/apigee (direktori cadangan bernama cassandra_backup pada langkah tempat Anda membuat direktori pencadangan).

    backup:cloudProvider

    HYBRID

    Properti cloudProvider: "HYBRID" wajib diisi.

    backup:schedule

    SCHEDULE

    Waktu mulai pencadangan, yang ditentukan dalam sintaksis crontab standar. Default: 0 2 * * *

  4. Membuat deployment runtime hybrid baru. Tindakan ini akan membuat gugus Cassandra baru dan memulai memulihkan data cadangan ke dalam cluster:
    ${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
  5. Verifikasi progres tugas pemulihan dan pastikan apigeeds dan semua pod lainnya sudah aktif:
    • Untuk memeriksa apigeeds:
      kubectl get apigeeds -n apigee
    • Untuk memeriksa semua pod lainnya:
      kubectl get pods -n apigee

Setelah berhasil menyelesaikan pemulihan dan konfirmasi bahwa komponen runtime sehat, sebaiknya konfigurasi pencadangan pada cluster:

  1. Hapus konfigurasi restore dari file overrides-restore.yaml.
  2. Tambahkan konfigurasi backup ke file overrides-restore.yaml.
  3. Terapkan konfigurasi backup dengan perintah berikut:
    ./apigeectl apply -f ../overrides-restore.yaml