Memulihkan di satu wilayah

Halaman ini menjelaskan cara memulihkan Cassandra di satu region.

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

Memulihkan region dari cadangan

Pilih petunjuk di bawah untuk alat pengelolaan yang Anda gunakan untuk Apigee Hybrid:

Helm

  1. Perbarui detail pemulihan Cassandra di file overrides.yaml:

    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
    ...
    

    Dengan keterangan:

    Properti Deskripsi
    namespace

    YOUR_RESTORE_NAMESPACE

    Namespace untuk pemulihan. Gunakan namespace yang sama seperti di cluster asli Anda.

    cassandra:hostNetwork

    hostNetwork wajib ada dan harus selalu ditetapkan ke false.

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

    SA_JSON_FILE_PATH

    Jalur pada sistem file ke akun layanan yang Anda buat untuk cadangan.

    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 bucket. Setiap nama file berisi nilai stempel waktu. Misalnya, backup_20210203213003_apigee-cassandra-default-0.tgz

    Dengan 20210203213003 adalah nilai snapshotTimestamp yang akan Anda gunakan jika ingin memulihkan cadangan yang dibuat pada waktu tersebut.

    backup:enabled Anda harus menetapkan properti ini ke false jika sebelumnya telah ditetapkan ke true.
  2. Jika Anda tidak memiliki cluster yang bersih untuk memulai, ikuti dokumentasi Penonaktifan region hybrid untuk helm untuk mengubah penginstalan Hybrid yang sudah ada menjadi bersih (Anda dapat membiarkan Cert Manager tetap terinstal). Ini akan membawa Anda ke status yang sama seolah-olah Anda telah mengikuti panduan penyiapan runtime Helm hingga awal Langkah 11.

  3. Pastikan tidak ada pod yang tersisa di namespace Apigee:

    kubectl get pods -n apigee
            kubectl get pods -n apigee-system
  4. Jika menggunakan cadangan CSI, pastikan Anda dapat melihat volumesnapshot yang ingin digunakan untuk proses pemulihan dengan menjalankan:

    kubectl get volumesnapshot -n apigee
              
  5. Instal semua komponen Hybrid satu per satu seperti dijelaskan dalam Langkah 11 dalam panduan penginstalan. Perhatikan bahwa pod apigee-cassandra-restore akan dibuat setelah Anda menjalankan perintah untuk menginstal datastore, tetapi pod hanya akan beralih ke status running setelah Anda menginstal komponen apigee-org.

Lihat Ringkasan pencadangan Cassandra untuk mengetahui detail selengkapnya tentang pencadangan dan pemulihan Cassandra.

apigeectl

Dalam konfigurasi Anda, cadangan Cassandra dapat berada di Cloud Storage atau di server jarak jauh. Apa pun kasusnya, lakukan langkah-langkah berikut untuk memulihkan:

  1. Verifikasi versi campuran.
    apigeectl version
    Pastikan versinya sama dengan versi yang membuat file cadangan di penyimpanan.
  2. Pastikan cluster Kubernetes yang Anda pulihkan tidak memiliki penginstalan hybrid Apigee sebelumnya. Jika Anda melakukan pemulihan ke cluster yang ada, gunakan perintah berikut untuk menghapus penginstalan hybrid Apigee yang sudah ada:
    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 dan tetapkan properti restore ke nilai yang diinginkan:

    Cloud Storage

    Parameter

    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"
    

    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: false
        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 pemulihan. Gunakan namespace yang sama seperti di cluster asli Anda.

    cassandra:hostNetwork

    hostNetwork wajib ada dan harus selalu ditetapkan ke false.

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

    SA_JSON_FILE_PATH

    Jalur pada sistem file ke akun layanan yang Anda buat untuk cadangan.

    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 bucket. Setiap nama file berisi nilai stempel waktu. Misalnya, backup_20210203213003_apigee-cassandra-default-0.tgz

    Dengan 20210203213003 adalah nilai snapshotTimestamp yang akan Anda gunakan jika ingin memulihkan cadangan yang dibuat pada waktu tersebut.

    backup:enabled Anda harus menetapkan properti ini ke false jika sebelumnya telah ditetapkan ke true.
    backup:serviceAccountPath

    SA_JSON_FILE_PATH

    Jalur pada sistem file Anda ke file JSON akun layanan yang didownload 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 saat pencadangan dimulai, yang ditentukan dalam sintaksis crontab standar. Default: 0 2 * * *

    Non-Cloud Storage

    Parameter

      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"
      

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

    Dengan keterangan:

    Properti Deskripsi
    namespace

    YOUR_RESTORE_NAMESPACE

    Namespace untuk pemulihan. Gunakan namespace nama yang sama seperti di cluster asli Anda.

    cassandra:hostNetwork

    hostNetwork wajib ada dan harus selalu ditetapkan ke false.

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

    PATH_TO_PRIVATE_KEY_FILE

    Jalur di sistem file lokal Anda ke file kunci pribadi SSH (bernama ssh_key pada 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. Direktori ini harus berupa direktori di dalam home/apigee (direktori cadangan diberi nama cassandra_backup pada langkah saat Anda membuat direktori cadangan).

    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 bucket. Setiap nama file berisi nilai stempel waktu. Misalnya, backup_20210203213003_apigee-cassandra-default-0.tgz

    Dengan 20210203213003 adalah nilai snapshotTimestamp yang akan Anda gunakan jika ingin memulihkan cadangan yang dibuat pada waktu tersebut.

    backup:enabled Anda harus menetapkan properti ini ke false jika sebelumnya telah ditetapkan 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 saat 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. Direktori ini harus berupa direktori di dalam home/apigee (direktori cadangan diberi nama cassandra_backup pada langkah saat Anda membuat direktori cadangan).

    backup:cloudProvider

    HYBRID

    Properti cloudProvider: "HYBRID" wajib diisi.

    backup:schedule

    SCHEDULE

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

  4. Membuat deployment runtime hybrid baru. Tindakan ini akan membuat cluster Cassandra baru dan mulai 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

Verifikasi progres tugas pemulihan dan konfirmasi bahwa apigeeds serta semua pod lainnya sudah aktif:

  1. Periksa apigeeds:
    kubectl get apigeeds -n apigee
  2. Periksa semua pod lainnya:
    kubectl get pods -n apigee

Setelah berhasil menyelesaikan pemulihan dan mengonfirmasi bahwa komponen runtime responsif, sebaiknya konfigurasikan cadangan di 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