Hubungkan kluster backup ke kluster terdaftar di bawah akun pemulihan untuk mengaktifkan pencadangan dan pemulihan aplikasi lintas akun.
Cara kerja
Kluster backup terhubung ke kluster terdaftar di bawah akun pemulihan. Pusat cadangan di kluster terdaftar mengelola pencadangan dan pemulihan di kedua akun.
Apa yang dicadangkan
| Jenis resource | Dicadangkan | Catatan |
|---|---|---|
| Resource Kubernetes (StatefulSet, Deployment, pod, Service, ConfigMap, Secret, Ingress, CronJob, PersistentVolumeClaim (PVC), PersistentVolume (PV), dan lainnya) | Ya | — |
| Volume NAS (melalui Cloud Backup) | Ya | Tidak dapat dicadangkan atau dipulihkan lintas akun melalui VPC |
| Volume disk (melalui Cloud Backup atau snapshot ECS) | Ya | Memerlukan langkah tambahan lintas akun dengan solusi snapshot ECS |
| Volume OSS | Tidak | Dipulihkan dengan memetakan ke bucket OSS asli menggunakan Pasangan Kunci Akses kluster backup |
| Resource yang sedang dihapus | Tidak | — |
Prasyarat
Pastikan Anda telah:
-
Mengaktifkan Cloud Backup — digunakan untuk pencadangan berbasis file pada volume NAS, bucket OSS, dan volume disk lokal
-
Kluster pemulihan menjalankan Kubernetes 1.16 atau lebih baru (1.18 atau lebih baru untuk pemulihan disk berbasis snapshot ECS). Lihat Buat kluster ACK yang dikelola, Buat kluster khusus ACK (tidak tersedia lagi), atau Buat proxy pendaftaran kluster dan daftarkan kluster Kubernetes yang dideploy di pusat data
-
Kluster pemulihan harus menggunakan plugin Container Storage Interface (CSI). Kluster yang menggunakan FlexVolume atau
csi-compatible-controllerdengan FlexVolume tidak didukung. -
CSI 1.1.0 atau lebih baru terinstal (diperlukan untuk pencadangan volume berbasis snapshot disk)
Instal dan konfigurasikan komponen berikut di kluster pemulihan sebelum menjalankan tugas pemulihan:
-
aliyun-acr-credential-helper (komponen tanpa password Container Registry): Berikan izin dan konfigurasikan
acr-configuration -
alb-ingress-controller (komponen ALB Ingress): Konfigurasikan ALBConfig
Penagihan
Pusat cadangan itu sendiri gratis. Anda mungkin dikenai biaya untuk layanan berikut:
| Biaya | Kapan berlaku | Rincian |
|---|---|---|
| Penyimpanan OSS | Semua skenario pencadangan — OSS menyimpan file YAML backup | Berlaku tarif penyimpanan OSS Standar |
| Penyimpanan snapshot ECS | Pencadangan volume disk menggunakan solusi snapshot ECS | Mulai 12 Oktober 2023 pukul 11.00 (UTC+8), fitur akses instan tidak lagi dikenai biaya penyimpanan atau penggunaan. Disk ESSD PL0–PL3 (enhanced SSD) dan ESSD AutoPL memiliki akses instan yang diaktifkan secara default |
| Cloud Backup | Pencadangan volume NAS dan pencadangan volume disk menggunakan solusi Cloud Backup | Tidak berlaku untuk pemulihan volume OSS |
Batasan
-
Kedua kluster harus menjalankan Kubernetes 1.16 atau lebih baru. Migrasi aplikasi dari versi Kubernetes yang lebih baru ke versi yang lebih lama tidak disarankan.
-
Untuk pemulihan lintas wilayah, buat kluster terdaftar di wilayah yang sama dengan kluster pemulihan. Kluster backup terhubung melalui Internet; pemulihan menggunakan jaringan internal.
-
Pusat cadangan memulihkan resource ke versi API yang kompatibel di kluster pemulihan. Jika tidak ada versi yang kompatibel, deploy resource secara manual. Lihat Catatan rilis untuk versi Kubernetes yang didukung oleh ACK dan Panduan Migrasi API yang Ditinggalkan dari upstream.
-
Deployment di kluster Kubernetes 1.16 mendukung
extensions/v1beta1,apps/v1beta1,apps/v1beta2, danapps/v1. Setelah migrasi ke Kubernetes 1.28, versi API Deployment dipulihkan keapps/v1. -
Ingress di kluster Kubernetes 1.16 mendukung
extensions/v1beta1dannetworking.k8s.io/v1beta1. Ingress tidak dapat dipulihkan di kluster yang menjalankan Kubernetes 1.22 atau lebih baru.
PentingDi Kubernetes 1.16,
appsdanrbac.authorization.k8s.iosudah mendukung versi API v1. Setelah migrasi ke Kubernetes 1.28, pulihkan secara manual resource Ingress dan CronJob. -
-
Templat pusat cadangan untuk kluster terdaftar berbeda dari kluster ACK standar. Saat Anda menghubungkan atau memutuskan kluster backup, instal ulang komponen pusat cadangan di kluster target.
-
Snapshot ECS yang dibuat di kluster terdaftar dimiliki oleh akun kluster backup. Untuk memulihkan volume disk di akun pemulihan, bagikan snapshot lintas akun (solusi snapshot ECS) atau gunakan Cloud Backup.
-
Untuk memulihkan volume NAS yang dikelola oleh CNFS (StorageClass:
alibabacloud-cnfs-nas), buat StorageClass tersebut terlebih dahulu. -
Jika resource dengan nama yang sama sudah ada di kluster pemulihan, pusat cadangan akan melewatinya. Pemulihan bersifat non-destruktif.
Aplikasi contoh
Aplikasi contoh ini menggambarkan perilaku pencadangan dan pemulihan untuk setiap jenis volume.
| Aplikasi | Jenis volume | PVC | Backup data diperlukan | Catatan |
|---|---|---|---|---|
| sts-disk | Volume disk | pvc-disk | Ya (Cloud Backup atau snapshot ECS) | Memerlukan konsistensi data; hentikan operasi tulis sebelum backup |
| sts-nas | Volume NAS | pvc-nas | Ya (Cloud Backup) | Tidak dapat mencadangkan atau memulihkan lintas akun melalui VPC; kluster pemulihan tidak dapat membaca data NAS asli |
| sts-oss | Volume OSS | pvc-oss | Tidak | Dipulihkan dengan memetakan ke bucket OSS asli menggunakan Pasangan Kunci Akses kluster backup |
Untuk membuat aplikasi dengan jenis volume berbeda, lihat Penyimpanan - CSI.
Pilih solusi backup disk
Pilih solusi ketika aplikasi Anda menggunakan volume disk.
| Solusi Cloud Backup | Solusi snapshot ECS | |
|---|---|---|
| Cara kerja | Atur enable_ecs_snapshot: false di csdr-config. Cloud Backup menangani data volume disk. Atur StorageClass target ke disk saat pemulihan. |
Atur enable_ecs_snapshot: true di csdr-config. Bagikan snapshot ECS dari akun backup ke akun pemulihan. Buat VolumeSnapshotContent dan VolumeSnapshot secara manual sebelum menjalankan tugas pemulihan. |
| Keunggulan | Tidak perlu konfigurasi manual tambahan | Lebih cepat; menjamin konsistensi data pada disk yang sama |
| Kekurangan | Lebih lambat; tidak dapat menjamin konsistensi data | Langkah manual diperlukan untuk setiap volume disk |
| Gunakan saat | Aplikasi Anda tidak memerlukan konsistensi data ketat, atau Anda memiliki banyak volume disk | Aplikasi Anda memerlukan konsistensi data dan Anda dapat melakukan langkah berbagi snapshot |
Untuk aplikasi tanpa volume disk, gunakan solusi Cloud Backup.
(Opsional) Langkah 1: Uninstal komponen pusat cadangan di kluster backup
Lewati langkah ini jika migrate-controller tidak terinstal di kluster backup.
Jika pusat cadangan sudah terinstal di kluster backup, uninstal terlebih dahulu. Templat untuk kluster terdaftar berbeda dari kluster ACK standar, dan keduanya tidak dapat berjalan bersamaan.
-
Login ke Konsol ACK dengan akun kluster backup. Di panel navigasi kiri, klik Clusters.
-
Di halaman Clusters, klik nama kluster backup. Di panel navigasi kiri, klik Add-ons.
-
Di halaman Add-ons, klik tab Manage Applications.
-
Temukan migrate-controller dan klik Uninstall.
-
Pada pesan Uninstall, klik OK.
Langkah 2: Instal komponen pusat cadangan di kluster terdaftar
-
Gunakan akun pemulihan untuk membuat kluster terdaftar dan hubungkan kluster backup ke kluster tersebut.buat kluster terdaftar dan hubungkan kluster backup ke kluster tersebut.
-
Instal migrate-controller dan berikan izin di kluster terdaftar.
Kluster terdaftar berada di wilayah yang sama dengan kluster backup, sehingga tidak diperlukan rute jaringan internal OSS.
Langkah 3: Buat tugas backup di kluster terdaftar
Lakukan langkah ini di kluster terdaftar di bawah akun pemulihan, bukan di kluster backup.
Solusi Cloud Backup
Pilih opsi ini untuk pengaturan yang lebih sederhana dengan volume disk, atau ketika aplikasi Anda tidak memiliki volume disk.
-
Nonaktifkan fitur snapshot ECS.
-
Edit ConfigMap
csdr-config:kubectl -ncsdr edit cm csdr-config -
Atur
enable_ecs_snapshotkefalse. Simpan dan keluar. -
Mulai ulang controller:
kubectl -ncsdr delete pod -l control-plane=csdr-controller
-
-
Jika akun pemulihan belum memiliki penyimpanan cadangan, buat satu dan kaitkan dengan bucket OSS
cnfs-oss-*di akun pemulihan. -
Buat tugas pencadangan untuk aplikasi sts-oss.
-
Atur Backup Volume ke Disable — sts-oss dipetakan ke bucket OSS asli dan tidak memerlukan pencadangan volume.
-
Pilih namespace
oss. Jika namespace berisi aplikasi lain, tambahkan label untuk memilih hanyasts-oss. -
Di tab Backup Records pada halaman Application Backup, tunggu status berubah dari InProgress ke Completed. Klik nama catatan dan pastikan StatefulSet, pod, PVC, PV, dan Secret (berisi Pasangan Kunci Akses) telah dicadangkan.
-
-
Buat tugas pencadangan untuk aplikasi sts-nas dan sts-disk.
-
Atur Backup Volume ke Mounted Volumes.
-
Dengan
enable_ecs_snapshotdiatur kefalse, Cloud Backup menangani data volume disk. Pantau progres di Konsol Cloud Backup di bawah Container Backup > Backup Jobs.
-
Solusi snapshot ECS
Pilih opsi ini ketika aplikasi Anda menggunakan volume disk dan memerlukan konsistensi data.
-
Aktifkan fitur snapshot ECS.
-
Edit ConfigMap
csdr-config:kubectl -ncsdr edit cm csdr-config -
Atur
enable_ecs_snapshotketrue. Simpan dan keluar. -
Mulai ulang controller:
kubectl -ncsdr delete pod -l control-plane=csdr-controller
-
-
Jika akun pemulihan belum memiliki penyimpanan cadangan, buat satu dan kaitkan dengan bucket OSS
cnfs-oss-*di akun pemulihan. -
Buat tugas pencadangan untuk aplikasi sts-oss.
-
Atur Backup Volume ke Disable.
-
Pilih namespace
oss. Jika namespace berisi aplikasi lain, tambahkan label untuk memilih hanyasts-oss. -
Di tab Backup Records, tunggu status berubah ke Completed dan verifikasi semua resource terkait telah dicadangkan.
-
-
Buat tugas pencadangan bernama backup-nas-disk untuk aplikasi sts-nas dan sts-disk.
-
Atur Backup Volume ke Mounted Volumes.
-
Data volume disk dicadangkan menggunakan snapshot ECS secara default. Lihat snapshot di Konsol ECS di bawah Snapshots > Disk Snapshots.
-
Data volume NAS dicadangkan menggunakan Cloud Backup. Pantau progres di Konsol Cloud Backup di bawah Container Backup > Backup Jobs.
-
Langkah 4: Buat tugas pemulihan di kluster pemulihan
Pemulihan bersifat non-destruktif. Jika resource dengan nama yang sama sudah ada di kluster pemulihan, pusat cadangan akan melewatinya.
Perilaku pemulihan Service:
| Jenis Service | Perilaku pemulihan |
|---|---|
| NodePort | Port dipertahankan secara default |
LoadBalancer dengan ExternalTrafficPolicy: Local |
HealthCheckNodePort menggunakan port acak secara default. Atur spec.preserveNodePorts: true saat membuat tugas pemulihan untuk mempertahankan port asli |
| LoadBalancer yang menggunakan instans SLB yang sudah ada | Service yang dipulihkan mempertahankan instans SLB asli tetapi semua pendengar dinonaktifkan. Konfigurasikan pendengar secara manual di Konsol SLB |
| LoadBalancer yang dikelola oleh cloud controller manager (CCM) | CCM membuat instans SLB baru selama pemulihan. Lihat Pertimbangan untuk mengonfigurasi Service tipe LoadBalancer |
Solusi Cloud Backup
Gunakan akun kluster pemulihan untuk melakukan langkah-langkah berikut.
-
Pulihkan aplikasi sts-oss. Lihat Pulihkan aplikasi dan volume.
-
Di halaman Application Backup, klik Back up Now, pilih dan inisialisasi penyimpanan cadangan, lalu tunggu file backup tersinkronisasi.
-
Pilih file backup backup-oss dan buat tugas pemulihan.
-
Verifikasi sts-oss berjalan. Gunakan
kubectl execuntuk login ke kontainer dan pastikan konsistensi data.
-
-
Pulihkan aplikasi sts-nas dan sts-disk dengan konversi StorageClass. Lihat Pulihkan aplikasi dan volume.
-
Di halaman Application Backup, klik Back up Now dan pilih backup-nas-disk. Untuk konversi StorageClass, pilih
alicloud-diskuntukpvc-diskdanalibabacloud-cnfs-nasuntukpvc-nas.alicloud-disksecara default menggunakan StorageClassalicloud-disk-topology-alltypedari plugin CSI. Anda juga dapat menggunakan StorageClass kustom. -
Verifikasi aplikasi dan data. Di Konsol ECS, pastikan disk baru dibuat di akun pemulihan dan dipasang ke node yang benar.
-
Solusi snapshot ECS
-
Dengan akun kluster pemulihan, pulihkan aplikasi sts-oss. Lihat Pulihkan aplikasi dan volume.
-
Di halaman Application Backup, klik Back up Now, pilih dan inisialisasi penyimpanan cadangan, lalu tunggu file backup tersinkronisasi.
-
Pilih file backup backup-oss dan buat tugas pemulihan.
-
Verifikasi sts-oss berjalan dengan
kubectl exec.
-
-
Gunakan akun kluster backup untuk membagikan snapshot disk ke akun pemulihan. Di Konsol ECS, bagikan setiap snapshot. Snapshot pusat cadangan memiliki awalan
snapshot-. Cocokkan dengan catatan backup berdasarkan waktu pembuatan. -
Sebelum menerima snapshot yang dibagikan, catat pemetaan PVC-ke-snapshot di akun backup. Pemetaan ini diperlukan untuk pemulihan manual.
-
Di Konsol ECS, catat pemetaan antara setiap ID snapshot dan ID disk yang sesuai.
-
Di kluster backup, kueri PVC dan ID disk untuk setiap PV yang menggunakan volume disk:
kubectl get pv <PV-Name> -o jsonpath='{"PVC: "}{.spec.claimRef.name}{"\nNamespace: "}{.spec.claimRef.namespace}{"\nVolumeHandle: "}{.spec.csi.volumeHandle}'Output yang diharapkan:
PVC: <disk-pvc-name> Namespace: <disk-pvc-namespace> VolumeHandle: d-2ze323ra0h2v5lxxxxxGunakan pemetaan ini untuk menghubungkan setiap PVC ke ID snapshot yang sesuai.
-
-
Gunakan akun kluster pemulihan untuk login ke Konsol Resource Management dan terima snapshot yang dibagikan. Nama snapshot tetap sama tetapi ID berubah. Gunakan nama dan pemetaan langkah 3 untuk memetakan setiap PVC ke ID snapshot baru.
-
Pulihkan secara manual volume disk di kluster pemulihan.
-
Gunakan provisioning statis untuk membuat VolumeSnapshotContent dan VolumeSnapshot di kluster pemulihan. Lihat Buat snapshot volume disk. Buat VolumeSnapshot di namespace yang sama dengan PVC target. Atur
snapshotHandledi VolumeSnapshotContent ke ID snapshot baru. -
Buat PVC dengan nama yang sama seperti aslinya, merujuk ke VolumeSnapshot. Lihat langkah 6 di Buat snapshot volume disk. PVC baru sesuai dengan konfigurasi asli dengan parameter tambahan
dataSourceyang mengarah ke VolumeSnapshot.
-
-
Pulihkan aplikasi sts-nas dan sts-disk. Lihat Pulihkan aplikasi dan volume. Pusat cadangan secara otomatis melewatkan volume sts-disk karena telah dipulihkan di langkah 5. Tugas pemulihan memasang PVC dengan nama yang sama ke aplikasi.
-
Di halaman Application Backup, klik Back up Now dan pilih backup-nas-disk. Tanpa konversi StorageClass, volume dipulihkan dengan StorageClass asli. Pastikan StorageClass tersebut ada di kluster pemulihan.
-
Di Konsol ECS, pastikan disk baru dibuat di akun pemulihan dan dipasang ke node yang benar.
-
(Opsional) Langkah 5: Putuskan koneksi kluster backup dan redeploy pusat cadangan
Setelah migrasi lintas akun selesai:
-
Jika backup atau pemulihan lintas akun tidak lagi diperlukan, putuskan koneksi kluster backup dari kluster terdaftar.
-
Untuk terus menggunakan pusat cadangan di kluster backup, uninstal komponen dari kluster terdaftar dan instal ulang di kluster backup.