Mulai Apigee hybrid 1.9, Anda dapat mencadangkan dan memulihkan data hybrid menggunakan snapshot CSI (Container Storage Interface). Pencadangan CSI menghasilkan snapshot disk dan menyimpannya sebagai data terenkripsi di penyimpanan cloud. Pencadangan CSI tidak memerlukan bucket Google Cloud Storage atau server jarak jauh untuk menyimpan data cadangan.
Pencadangan CSI direkomendasikan untuk instance hybrid yang dihosting di Google Cloud, AWS, atau Azure.
Halaman ini menjelaskan langkah-langkah untuk menggunakan pencadangan dan pemulihan CSI hybrid. Untuk ringkasan umum pencadangan dan pemulihan hibrida secara umum, lihat Ringkasan pencadangan dan pemulihan Cassandra.
Batasan pencadangan dan pemulihan
Perhatikan batasan berikut saat menggunakan pencadangan dan pemulihan CSI:
- Driver CSI yang digunakan oleh class penyimpanan yang dikonfigurasi harus mendukung snapshot CSI. Lihat daftar driver CSI Kubernetes ini untuk mengetahui informasi driver.
- Tidak semua platform didukung. Hanya platform Google Cloud, AWS, dan Azure yang didukung.
- OpenShift Container Platform tidak didukung karena keterbatasan snapshot volume.
- Hanya platform cloud yang didukung. Platform lokal tidak didukung.
- Data cadangan CSI dan data cadangan hibrida non-CSI tidak kompatibel. Cadangan non-CSI tidak dapat digunakan dengan pemulihan CSI dan cadangan CSI tidak dapat digunakan dengan pemulihan non-CSI.
- Penginstalan dan fungsi driver CSI adalah tanggung jawab vendor driver CSI.
- Pengguna bertanggung jawab untuk memastikan resource cluster yang memadai tersedia untuk penyediaan snapshot CSI.
- Pengguna bertanggung jawab untuk menghapus data snapshot lama.
Menyiapkan pencadangan CSI
Untuk menjadwalkan pencadangan hybrid menggunakan CSI, lakukan langkah-langkah berikut:
- Jika Anda belum pernah menyiapkan pencadangan hybrid:
- Jalankan perintah
create-service-accountberikut untuk membuat akun layanan (SA) Google Cloud dengan peranroles/storage.objectAdminstandar. Peran SA ini memungkinkan Anda menulis data cadangan ke Cloud Storage. Jalankan perintah berikut di direktorihybrid-base-directory/hybrid-files: Perintah ini membuat satu akun layanan bernama./tools/create-service-account --env non-prod --dir ./service-accounts
apigee-non-produntuk digunakan di lingkungan non-produksi dan menempatkan file kunci yang didownload di direktori./service-accounts. Untuk mengetahui informasi selengkapnya tentang akun layanan Google Cloud, lihat Membuat dan mengelola akun layanan. - Perintah
create-service-accountmenyimpan file JSON yang berisi kunci pribadi akun layanan. File disimpan di direktori yang sama tempat perintah dijalankan. Anda akan memerlukan jalur ke file ini pada langkah-langkah berikutnya.
- Jalankan perintah
- Buka file
overrides.yaml. Tetapkan parameter berikut, seperti yang ditunjukkan dalam Contoh mengganti file.- Tetapkan parameter umum yang ditunjukkan di bawah dalam blok
backup. Jika Anda telah menyetel parameter ini untuk solusi pencadangan hibrida non-CSI, Anda dapat menggunakan parameter yang sama untuk snapshot CSI Anda. Lihat tabel referensi properti pencadangan untuk mengetahui informasi selengkapnya tentang setiap nilai.
Untuk
backup:- enabled: Setel ke
trueuntuk mengaktifkan pencadangan terjadwal. - pullPolicy dalam gambar: Tetapkan ke
Always. - serviceAccountPath: Jalur ke akun layanan.
- schedule: Berikan jadwal ekspresi cron.
- enabled: Setel ke
- Tetapkan parameter ini untuk pencadangan khusus CSI:
- Nilai grup penyimpanan Cassandra: Class penyimpanan Cassandra yang dikonfigurasi harus mendukung snapshot CSI
agar pencadangan dan pemulihan CSI berfungsi. Untuk memeriksa apakah kelas penyimpanan mendukung snapshot CSI, jalankan
perintah berikut untuk mendapatkan kelas penyimpanan yang tersedia:
Lihat output "Provisioner" untuk setiap class penyimpanan. Penyedia menggunakan CSI biasanya memiliki bagian ".csi." pada namanya seperti "pd.csi.storage.gke.io". Cari nama penyedia di daftar driver CSI Kubernetes ini. Jika kolom "Fitur Lainnya" untuk penyedia berisi kata "SNAPSHOT", maka class penyimpanan yang menggunakan penyedia tersebut mendukung snapshot CSI.kubectl get sc
Tambahkan parameter ini di grup penyimpanan. Kedua nilai wajib diisi.
- storageclass: Nama class penyimpanan yang mendukung snapshot CSI.
- kapasitas: Kapasitas disk.
- Jenis penyedia cloud:
Setelah kemampuan snapshot CSI diverifikasi, ubah file penggantian untuk menggunakan pencadangan dan pemulihan CSI:
- cloudProvider: Tetapkan
cloudProviderdibackupdanrestorekeCSI.
- cloudProvider: Tetapkan
- Nilai grup penyimpanan Cassandra: Class penyimpanan Cassandra yang dikonfigurasi harus mendukung snapshot CSI
agar pencadangan dan pemulihan CSI berfungsi. Untuk memeriksa apakah kelas penyimpanan mendukung snapshot CSI, jalankan
perintah berikut untuk mendapatkan kelas penyimpanan yang tersedia:
- Tetapkan parameter umum yang ditunjukkan di bawah dalam blok
Contoh konfigurasi pencadangan
Bagian ini menunjukkan bagian terkait pencadangan dari contoh fileoverrides.yaml.
cassandra: hostNetwork: false replicaCount: 3 storage: storageclass: standard-rwo capacity: 100Gi image: pullPolicy: Always backup: enabled: true image: pullPolicy: Always serviceAccountPath: "/Users/myuser/apigee-hybrid/hybrid-files/service-accounts/mycompany-hybrid-apigee-cassandra.json" cloudProvider: "CSI" schedule: "0 * * 11 *"
Mulai pencadangan manual
Cadangan CSI dibuat secara otomatis sesuai dengan jadwal cron yang ditetapkan dalam file overrides.yaml.
Untuk memulai pencadangan CSI manual, gunakan perintah ini:
kubectl create job -n apigee --from=cronjob/apigee-cassandra-backup backup-pod-name
backup-pod-name adalah nama pod cadangan yang akan dibuat.
Memverifikasi pencadangan
Salah satu cara untuk memverifikasi bahwa cadangan berhasil dibuat adalah dengan memeriksa snapshot volume di cluster Kubernetes, menggunakan perintah ini:
kubectl get volumesnapshot -n apigee
Output akan menampilkan daftar snapshot saat ini di cluster. Proses pencadangan CSI membuat snapshot setiap disk Cassandra. Jumlah snapshot yang dibuat harus sama dengan jumlah total pod Cassandra dalam cluster.
Memulihkan cadangan
Gunakan proses ini untuk memulihkan cadangan CSI yang dibuat sebelumnya. Untuk mengetahui informasi umum tentang pemulihan cadangan dan ringkasan prosesnya, lihat halaman ringkasan pemulihan.
Untuk memulai pemulihan cadangan CSI, ikuti petunjuk untuk
pemulihan satu wilayah non-CSI hibrida,
tetapi gunakan nilai ini di blok restore dalam overrides.yaml Anda.
Lihat tabel referensi properti pencadangan
untuk mengetahui informasi selengkapnya tentang setiap nilai dan
contoh konfigurasi pemulihan untuk melihat contohnya.
- enabled: Disetel ke
trueuntuk mengaktifkan pemulihan untuk cadangan yang dirujuk dengan stempel waktusnapshotTimestamp. - snapshotTimestamp: Berikan stempel waktu cadangan CSI sebelumnya.
- serviceAccountPath: Jalur ke akun layanan.
- pullPolicy dalam gambar: Tetapkan ke
Always.
Untuk menemukan nilai snapshotTimestamp yang akan dipulihkan, jalankan perintah ini untuk mendapatkan
daftar snapshot yang tersedia:
kubectl get volumesnapshot -n apigee
pvc-us-west2-b-20220803004907-47beff0e306d8861
20220803004907.
Contoh konfigurasi pemulihan
Bagian ini menunjukkan bagian terkait pemulihan dari contoh fileoverrides.yaml.
cassandra: hostNetwork: false replicaCount: 3 storage: storageclass: standard-rwo capacity: 100Gi image: pullPolicy: Always restore: enabled: true snapshotTimestamp: "20220908222130" serviceAccountPath: "/Users/myuser/apigee-hybrid/hybrid-files/service-accounts/mycompany-hybrid-apigee-cassandra.json" cloudProvider: "CSI" image: pullPolicy: Always
Bermigrasi ke pencadangan dan pemulihan CSI
Jika sebelumnya Anda belum pernah menggunakan pencadangan dan pemulihan hybrid, Anda dapat mengikuti petunjuk di Menyiapkan pencadangan CSI untuk membuat pencadangan CSI baru tanpa langkah-langkah di bagian ini. Langkah-langkah ini akan memandu Anda melakukan migrasi dari solusi pencadangan dan pemulihan non-CSI ke pencadangan CSI.
- Buat cadangan baru menggunakan metode pencadangan non-CSI yang saat ini dikonfigurasi.
- Ubah konfigurasi pencadangan dalam file
overrides.yamlhybrid untuk menggunakan penggantian pencadangan CSI seperti yang ditunjukkan dalam contoh konfigurasi pencadangan. - Terapkan perubahan dalam file
overrides.yaml:
$APIGEECTL_HOME/apigeectl apply -f YOUR_OVERRIDES_FILE
- Verifikasi tugas pencadangan:
kubectl get cronjob -n apigee
- Setelah tugas pencadangan selesai, verifikasi bahwa snapshot telah dibuat. Jumlah snapshot yang dibuat harus sama dengan jumlah node Cassandra dalam instance Hybrid.
kubectl get volumesnapshot -n apigee