Anda dapat mencadangkan dan memulihkan data campuran menggunakan CSI (Antarmuka Penyimpanan Container). Cadangan CSI menghasilkan snapshot disk dan menyimpannya sebagai terenkripsi data dalam penyimpanan {i>cloud<i}. Cadangan CSI tidak memerlukan bucket Google Cloud Storage atau server jarak jauh untuk menyimpan cadangan layanan otomatis dan data skalabel.
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 kembali hybrid dan memulihkan 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. Lihat ini Daftar driver Kubernetes CSI untuk informasi pengemudi.
- Tidak semua platform didukung. Hanya platform Google Cloud, AWS, dan Azure yang didukung.
- OpenShift Container Platform tidak didukung karena snapshot volume batasan yang ada.
- Hanya platform cloud yang didukung. Platform lokal tidak didukung.
- Data cadangan CSI dan data cadangan hybrid 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 ketersediaan resource cluster yang memadai menyediakan snapshot CSI.
- Pengguna bertanggung jawab untuk menghapus data snapshot lama.
Menyiapkan cadangan CSI
Untuk menjadwalkan pencadangan hybrid menggunakan CSI, lakukan langkah-langkah berikut:
- Jika Anda belum pernah menyiapkan pencadangan campuran:
- Jalankan
create-service-account
berikut perintah untuk membuat akun layanan (SA) Google Cloud dengan Peranroles/storage.objectAdmin
. Peran SA ini memungkinkan Anda menulis data cadangan ke Cloud Storage. Jalankan perintah berikut di direktori yang sesuai untuk alat pengelolaan Anda:- Diagram Helm:
$APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/
apigeectl
:HYBRID_BASE_DIRECTORY/hybrid-files/
./tools/create-service-account --env non-prod --dir ./service-accounts
Perintah ini akan membuat satu akun layanan bernama
apigee-non-prod
untuk digunakan di lingkungan non-produksi dan menempatkan file kunci yang didownload di./service-accounts
saat ini.Untuk informasi selengkapnya tentang akun layanan Google Cloud, lihat Membuat dan mengelola akun layanan.
- Diagram Helm:
- Perintah
create-service-account
menyimpan file JSON yang berisi kunci pribadi akun layanan Anda. File disimpan di direktori yang sama tempat perintah dijalankan. Anda akan memerlukan jalur ke file ini dalam langkah-langkah berikut.
- Jalankan
- Buka file
overrides.yaml
. Atur parameter berikut, seperti yang ditunjukkan di Contoh file pengganti.- Tetapkan parameter umum yang ditampilkan di bawah dalam blok
backup
. Jika Anda sudah menetapkan parameter ini untuk solusi pencadangan hybrid non-CSI, Anda dapat menggunakan parameter yang sama untuk snapshot CSI. Lihat tabel referensi properti cadangan untuk informasi selengkapnya tentang setiap nilai.
Untuk
backup
:- diaktifkan: Setel ke
true
untuk mengaktifkan pencadangan terjadwal. - pullPolicy dalam gambar: Tetapkan ke
Always
. - serviceAccountPath: Jalur ke akun layanan.
- jadwal: Memberikan jadwal ekspresi cron.
- diaktifkan: Setel ke
- Tetapkan parameter berikut untuk cadangan khusus CSI:
- Nilai grup penyimpanan Cassandra: Kelas penyimpanan Cassandra yang dikonfigurasi harus mendukung snapshot CSI
agar pencadangan dan pemulihan CSI
berfungsi dengan baik. Untuk memeriksa apakah kelas penyimpanan mendukung snapshot CSI, jalankan
perintah berikut untuk mendapatkan kelas penyimpanan yang tersedia:
Lihat bagian "Penyedia" untuk setiap kelas penyimpanan. Penyedia yang menggunakan CSI biasanya memiliki ".csi". nama mereka seperti "pd.csi.storage.gke.io". Cari nama penyedia di daftar driver Kubernetes CSI ini. Jika "Fitur Lainnya" untuk penyedia berisi kata "SNAPSHOT", maka kelas penyimpanan yang menggunakan penyediaan mendukung snapshot CSI.kubectl get sc
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 agar dapat menggunakan Pencadangan dan pemulihan CSI:
- cloudProvider: Menetapkan
cloudProvider
dibackup
danrestore
menujuCSI
.
- cloudProvider: Menetapkan
- Nilai grup penyimpanan Cassandra: Kelas penyimpanan Cassandra yang dikonfigurasi harus mendukung snapshot CSI
agar pencadangan dan pemulihan CSI
berfungsi dengan baik. Untuk memeriksa apakah kelas penyimpanan mendukung snapshot CSI, jalankan
perintah berikut untuk mendapatkan kelas penyimpanan yang tersedia:
- Tetapkan 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 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 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 akan menampilkan daftar snapshot saat ini di cluster. Proses pencadangan CSI membuat dari setiap disk Cassandra. Jumlah snapshot yang dihasilkan harus sesuai dengan jumlah total pod cassandra di cluster.
Memulihkan cadangan
Gunakan proses ini untuk memulihkan cadangan CSI yang dibuat sebelumnya. Untuk informasi umum tentang memulihkan cadangan dan ikhtisar proses, lihat halaman ringkasan pemulihan.
Untuk memulai pemulihan cadangan CSI, ikuti petunjuk untuk
pemulihan hybrid region tunggal non-CSI,
tetapi gunakan nilai ini dalam blok restore
di overrides.yaml
Anda.
Lihat tabel referensi properti cadangan
untuk informasi selengkapnya
tentang setiap nilai dan
contoh konfigurasi pemulihan sebagai contoh.
- diaktifkan: Setel ke
true
untuk mengaktifkan pemulihan untuk cadangan yang direferensikan dengan stempel waktusnapshotTimestamp
. - snapshotTimestamp: Memberikan stempel waktu pencadangan 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 Anda belum pernah menggunakan pencadangan dan pemulihan hybrid, Anda dapat mengikuti petunjuk di Menyiapkan cadangan CSI untuk membuat cadangan CSI baru tanpa langkah-langkah di bagian ini. Langkah-langkah ini akan memandu Anda bermigrasi dari lingkungan non-CSI pencadangan dan pemulihan untuk pencadangan CSI.
- Buat cadangan baru menggunakan metode pencadangan non-CSI yang saat ini dikonfigurasi.
- Mengubah konfigurasi pencadangan di file
overrides.yaml
hybrid untuk menggunakan CSI penggantian seperti yang ditunjukkan dalam contoh konfigurasi pencadangan. - Terapkan perubahan di file
overrides.yaml
:Helm
helm upgrade datastore apigee-datastore/ \ --namespace apigee \ --atomic \ -f OVERRIDES_FILE.yaml
apigeectl
$APIGEECTL_HOME/apigeectl apply -f OVERRIDES_FILE.yaml
- Verifikasi tugas pencadangan:
kubectl get cronjob -n apigee
- Setelah tugas pencadangan selesai, pastikan bahwa snapshot telah dibuat. Jumlah
snapshot yang dihasilkan harus setara dengan jumlah node Cassandra dalam instance Hybrid.
kubectl get volumesnapshot -n apigee