Mulai dari Apigee Hybrid 1.9, Anda dapat mencadangkan dan memulihkan data campuran 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 tentang pencadangan dan pemulihan hybrid secara umum, lihat Ringkasan pencadangan dan pemulihan Cassandra.
Batasan pencadangan dan pemulihan
Perhatikan batasan ini saat menggunakan pencadangan dan pemulihan CSI:
- Driver CSI yang digunakan oleh kelas penyimpanan yang dikonfigurasi harus mendukung snapshot CSI. Baca daftar driver Kubernetes CSI ini untuk mengetahui informasi driver.
- Tidak semua platform didukung. Hanya platform Google Cloud, AWS, dan Azure yang didukung.
- OpenShift Container Platform tidak didukung karena batasan snapshot volume.
- Hanya platform cloud yang didukung. Platform lokal tidak didukung.
- Data cadangan CSI dan data cadangan hibrid non-CSI tidak kompatibel. Cadangan non-CSI tidak dapat digunakan dengan pemulihan CSI dan cadangan CSI tidak dapat digunakan dengan pemulihan non-CSI.
- Instalasi dan fungsionalitas driver CSI adalah tanggung jawab vendor driver CSI.
- Pengguna bertanggung jawab untuk memastikan tersedianya resource cluster yang memadai untuk penyediaan snapshot CSI.
- Pengguna bertanggung jawab untuk menghapus data ringkasan lama.
Menyiapkan pencadangan CSI
Untuk menjadwalkan pencadangan hybrid menggunakan CSI, lakukan langkah-langkah berikut:
- Jika Anda belum menyiapkan pencadangan hybrid:
- Jalankan perintah
create-service-account
berikut untuk membuat akun layanan (SA) Google Cloud dengan peranroles/storage.objectAdmin
standar. Peran SA ini memungkinkan Anda menulis data cadangan ke Cloud Storage. Jalankan perintah berikut di direktorihybrid-base-directory/hybrid-files
:./tools/create-service-account --env non-prod --dir ./service-accounts
Perintah ini membuat satu akun layanan bernamaapigee-non-prod
untuk digunakan dalam 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-account
menyimpan file JSON yang berisi kunci pribadi akun layanan. File ini disimpan di direktori yang sama dengan tempat perintah dieksekusi. Anda memerlukan jalur ke file ini pada langkah-langkah berikut.
- Jalankan perintah
- Buka file
overrides.yaml
. Tetapkan parameter berikut, seperti yang ditunjukkan dalam Contoh file penggantian.- Setel parameter umum yang ditampilkan di bawah dalam blok
backup
. Jika sudah menetapkan parameter ini untuk solusi pencadangan hybrid non-CSI, Anda dapat menggunakan parameter yang sama untuk snapshot CSI Anda. Lihat tabel referensi properti cadangan untuk mengetahui informasi selengkapnya tentang setiap nilai.
Untuk
backup
:- enabled: Setel ke
true
untuk mengaktifkan pencadangan terjadwal. - pullPolicy di gambar: Tetapkan ke
Always
. - serviceAccountPath: Jalur ke akun layanan.
- jadwal: Berikan jadwal ekspresi cron.
- enabled: Setel ke
- Tetapkan parameter berikut untuk pencadangan khusus CSI:
- Nilai grup penyimpanan Cassandra: Kelas 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:
kubectl get sc
Lihat output "Penyedia" untuk setiap kelas penyimpanan. Penyedia yang menggunakan CSI biasanya memiliki bagian ".csi." di namanya seperti "pd.csi.storage.gke.io". Cari nama penyedia di daftar driver Kubernetes CSI ini. Jika kolom "Fitur Lainnya" untuk penyedia layanan berisi kata "SNAPSHOT", berarti kelas penyimpanan yang menggunakan penyedia tersebut mendukung snapshot CSI.Tambahkan parameter ini di grup penyimpanan. Kedua nilai wajib diisi.
- storageclass: Nama kelas penyimpanan yang mendukung snapshot CSI.
- capacity: Kapasitas disk.
- Jenis penyedia cloud:
Setelah kemampuan snapshot CSI diverifikasi, ubah file penggantian untuk menggunakan pencadangan dan pemulihan CSI:
- cloudProvider: Menetapkan
cloudProvider
dibackup
danrestore
keCSI
.
- cloudProvider: Menetapkan
- Nilai grup penyimpanan Cassandra: Kelas 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:
- Setel parameter umum yang ditampilkan 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 *"
Luncurkan pencadangan manual
Cadangan CSI dihasilkan 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-namedengan
backup-pod-name
adalah nama pod cadangan yang akan dibuat.
Memverifikasi cadangan
Salah satu cara untuk memastikan bahwa pencadangan berhasil dibuat adalah dengan memeriksa snapshot volume di cluster Kubernetes, menggunakan perintah ini:
kubectl get volumesnapshot -n apigee
Output menunjukkan daftar snapshot saat ini di cluster. Proses pencadangan CSI membuat snapshot dari setiap disk Cassandra. Jumlah snapshot yang dihasilkan harus sama dengan jumlah total pod cassandra dalam cluster.
Memulihkan cadangan
Gunakan proses ini untuk memulihkan cadangan CSI yang dibuat sebelumnya. Untuk informasi umum tentang pemulihan cadangan dan ringkasan prosesnya, lihat halaman ringkasan pemulihan.
Untuk memulai pemulihan cadangan CSI, ikuti petunjuk untuk pemulihan region tunggal non-CSI hybrid, tetapi gunakan nilai ini dalam blok restore
di overrides.yaml
Anda.
Lihat tabel referensi properti cadangan
untuk mengetahui informasi selengkapnya tentang setiap nilai dan
contoh konfigurasi pemulihan sebagai contoh.
- enabled: Setel ke
true
untuk mengaktifkan pemulihan untuk cadangan yang dirujuk dengan stempel waktusnapshotTimestamp
. - snapshotTimestamp: Memberikan stempel waktu cadangan CSI sebelumnya.
- serviceAccountPath: Jalur ke akun layanan.
- pullPolicy di gambar: Tetapkan ke
Always
.
Untuk menemukan nilai snapshotTimestamp
yang akan dipulihkan, jalankan perintah ini untuk mendapatkan
daftar snapshot yang tersedia:
kubectl get volumesnapshot -n apigeeDalam daftar yang ditampilkan, nama snapshot berisi stempel waktu:
pvc-us-west2-b-20220803004907-47beff0e306d8861Dalam contoh ini, stempel waktu adalah
20220803004907
.
Contoh konfigurasi pemulihan
Bagian ini menampilkan bagian yang terkait dengan 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 belum pernah menggunakan pencadangan dan pemulihan hybrid, Anda dapat mengikuti petunjuk di Menyiapkan pencadangan CSI untuk membuat cadangan CSI baru tanpa langkah-langkah di bagian ini. Langkah-langkah ini akan memandu Anda melakukan migrasi dari solusi pencadangan dan pemulihan non-CSI ke cadangan CSI.
- Buat cadangan baru menggunakan metode cadangan non-CSI yang saat ini dikonfigurasi.
- Ubah konfigurasi pencadangan di file
overrides.yaml
hybrid 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, pastikan snapshot telah dibuat. Jumlah
snapshot yang dihasilkan harus setara dengan jumlah node Cassandra dalam instance Hybrid.
kubectl get volumesnapshot -n apigee