Setelah menghubungkan klaster Kubernetes di platform cloud pihak ketiga ke klaster terdaftar, Anda dapat menggunakan Pusat Cadangan untuk mencadangkan aplikasi dan data di klaster Kubernetes asli. Kemudian, Anda dapat memulihkan aplikasi dan data tersebut di klaster Container Service for Kubernetes (ACK). Ini memungkinkan migrasi aplikasi lintas platform cloud. Topik ini menjelaskan cara menggunakan Pusat Cadangan untuk memigrasikan aplikasi dari klaster terdaftar ke klaster ACK.
Prasyarat
Klaster terdaftar dibuat di Alibaba Cloud Distributed Cloud Container Platform (ACK One) dan dihubungkan ke klaster Kubernetes di platform cloud pihak ketiga yang menjalankan Kubernetes 1.16 atau lebih baru. Untuk informasi lebih lanjut, lihat Buat Klaster Terdaftar ACK One.
Klaster ACK dikelola dibuat di wilayah yang sama dengan klaster terdaftar untuk pemulihan aplikasi. Kami merekomendasikan penggunaan Kubernetes 1.18 atau lebih baru.
PentingKlaster pemulihan harus menggunakan Plugin Container Storage Interface (CSI). Pemulihan aplikasi tidak didukung di klaster yang menggunakan FlexVolume atau menggunakan csi-compatible-controller dan FlexVolume.
Pusat Cadangan digunakan untuk mencadangkan dan memulihkan aplikasi. Sebelum menjalankan tugas pemulihan, Anda harus menginstal dan mengonfigurasi komponen sistem di klaster pemulihan. Contoh:
aliyun-acr-credential-helper: Berikan izin ke klaster pemulihan dan konfigurasikan acr-configuration.
alb-ingress-controller: Konfigurasikan ALBConfig.
Komponen backup migrate-controller diinstal dan diberi izin untuk klaster terdaftar dan klaster ACK yang Anda buat.
Rute dikonfigurasi yang menunjuk ke jaringan internal wilayah tempat Bucket Object Storage Service (OSS) untuk klaster terdaftar berada jika klaster dihubungkan ke virtual private cloud (VPC) menggunakan Cloud Enterprise Network (CEN), Express Connect, atau koneksi VPN. Untuk informasi lebih lanjut, lihat Titik Akhir OSS Internal dan Rentang VIP.
Skenario
Cloud Backup untuk pemulihan bencana: Solusi pencadangan, pemulihan bencana, dan migrasi terintegrasi untuk memungkinkan migrasi aplikasi ke cloud dan pemulihan data bencana dengan cepat. Untuk informasi lebih lanjut, lihat Ikhtisar Klaster Terdaftar.
Catatan penggunaan
Saat mencadangkan volume lokal, Anda dapat membuat volume persisten dan persistent volume claims (PVC) untuk memasang volume lokal.
Saat mencadangkan penyimpanan objek, penyimpanan file, atau penyimpanan blok yang disediakan oleh penyedia layanan pihak ketiga, Anda perlu menggunakan plugin CSI untuk memasang volume dengan PV dan PVC.
Klaster terdaftar, klaster ACK, dan Bucket Object Storage Service (OSS) harus diterapkan di wilayah yang sama.
Untuk memastikan konsistensi data aplikasi, hentikan operasi penulisan untuk bisnis Anda sampai pencadangan selesai.
Persiapan
Dalam topik ini, aplikasi MySQL digunakan sebagai contoh. Setelah aplikasi diterapkan di klaster Kubernetes eksternal, hubungkan klaster tersebut ke klaster terdaftar. Kemudian, buat dan jalankan tugas pencadangan di klaster terdaftar untuk mencadangkan aplikasi dan memulihkan aplikasi di klaster ACK. Sebelum memigrasikan aplikasi, pastikan persyaratan berikut terpenuhi.
Klaster Terdaftar
Pengguna Resource Access Management (RAM) dibuat dan diberi izin OSS dan Cloud Backup. Secret bernama alibaba-addon-secret dibuat di namespace csdr klaster terdaftar dan menyimpan ID AccessKey dan Rahasia AccessKey dari pengguna RAM. Jalankan perintah berikut untuk memeriksa apakah Secret alibaba-addon-secret ada:
kubectl get secret alibaba-addon-secret -n csdrOutput yang Diharapkan:
alibaba-addon-secret Opaque 2 5d22hKlaster ACK
Jika menggunakan klaster ACK dikelola, pastikan Cloud Backup diaktifkan dan Bucket OSS bernama cnfs-oss-**** dibuat.
Jika menggunakan klaster ACK khusus, pastikan peran RAM pekerja memiliki izin OSS dan Cloud Backup. Untuk informasi lebih lanjut, lihat Instal migrate-controller dan Berikan Izin.
Langkah 1: Terapkan aplikasi di klaster Kubernetes eksternal
Bagian ini menggunakan aplikasi MySQL yang diterapkan di klaster Kubernetes pada penyedia cloud pihak ketiga sebagai contoh. PVC untuk aplikasi ini adalah mysql-pvc, PV adalah mysql-pv, dan jalur titik pemasangan yang sesuai adalah /mnt.
Jalankan perintah berikut untuk membuat namespace bernama test1:
kubectl create namespace test1Gunakan plugin CSI untuk memasang volume aplikasi MySQL dengan PV dan PVC. Untuk informasi lebih lanjut, lihat dokumentasi CSI yang disediakan oleh penyedia layanan cloud pihak ketiga.
Jika klaster Kubernetes tidak mendukung CSI, hubungkan ke klaster terdaftar dan gunakan plugin CSI yang disediakan oleh Alibaba Cloud. Untuk informasi lebih lanjut, lihat Penyimpanan - CSI.
Jalankan perintah berikut untuk memeriksa apakah aplikasi MySQL telah diterapkan:
kubectl -n test1 get pod| grep mysql-stsOutput yang Diharapkan:
mysql-sts-0 1/1 Running 0 1m02sJalankan perintah berikut untuk mengonfirmasi konfigurasi volume:
kubectl -n test1 get pv mysql-pv -oyamlOutput yang Diharapkan:
csi: driver: **** volumeAttributes: xxxx: xxxx xxxx: xxxx volumeHandle: mysql-pvOutput menunjukkan bahwa konfigurasi volume berisi bidang CSI.
Jalankan perintah berikut untuk masuk ke kontainer MySQL:
kubectl -n test1 exec -it mysql-sts-0 -- /bin/bashJalankan perintah berikut di dalam kontainer untuk membuat file uji untuk pencadangan:
cd /mnt && touch test && lsOutput yang Diharapkan:
test
Langkah 2: Cadangkan aplikasi dan data MySQL di klaster terdaftar
Setelah klaster Kubernetes dihubungkan ke klaster terdaftar, Anda dapat menjalankan tugas pencadangan di klaster terdaftar dengan melakukan langkah-langkah berikut:
(Opsional) Buat vault cadangan jika tidak ada vault cadangan dalam akun saat ini. Untuk informasi lebih lanjut, lihat Buat Vault Cadangan.
Buat tugas pencadangan waktu nyata bernama mysql-backup di klaster terdaftar. Tabel berikut menjelaskan beberapa parameter. Untuk informasi lebih lanjut, lihat Buat Tugas Pencadangan.
Parameter
Contoh
Name
Masukkan mysql-backup.
Backup Vaults
Pilih vault cadangan yang Anda buat di langkah sebelumnya.
Backup Namespaces
Pilih test1.
Volume Backup
Pilih Volume Backup untuk mencadangkan data.
Klik tab Backup Records di halaman Application Backup. Setelah status tugas mysql-backup berubah dari InProgress menjadi Completed, aplikasi dan data telah dicadangkan.
Langkah 3: Asosiasikan vault cadangan dengan klaster ACK
Jika menggunakan vault cadangan yang baru dibuat atau vault cadangan belum diasosiasikan dengan klaster pemulihan, Anda perlu menyiapkan asosiasi terlebih dahulu.
Di halaman Application Backup, klik Restore.
Di panel Restore, tentukan Name dan Backup Vaults, lalu klik Initialize Backup Vault di sisi kanan untuk mengasosiasikan vault cadangan dengan klaster pemulihan.
Setiap vault cadangan hanya dapat diasosiasikan sekali. Setelah vault cadangan diinisialisasi, tugas pencadangan di klaster terdaftar secara otomatis disinkronkan ke klaster ACK.
Setelah inisialisasi selesai, pilih tugas pemulihan di vault cadangan dan klik OK.
Pada tab Backup Records, tunggu hingga sistem menambahkan tugas mysql-backup ke dalam daftar.
Langkah 4: Pulihkan aplikasi dan data MySQL di klaster ACK
Untuk memulihkan aplikasi di klaster ACK, PV yang diprovisioning secara dinamis menggunakan StorageClass alibabacloud-cnfs-nas dipasang ke aplikasi MySQL dan data dipulihkan di PV.
Buat tugas pemulihan bernama mysql-restore dan terapkan aplikasi MySQL di namespace test2 klaster ACK. Tabel berikut menjelaskan beberapa parameter. Untuk informasi lebih lanjut, lihat Pulihkan Aplikasi dan Volume.
Parameter
Contoh
Name
Masukkan mysql-restore.
Backup Vaults
Pilih vault cadangan yang Anda buat.
Select Backup
Pilih mysql-backup.
Reset Namespace
Namespace berubah dari test1 menjadi test2.
StorageClass Conversion
Pilih alibabacloud-cnfs-nas StorageClass untuk PVC mysql-pvc di daftar.
Klik View Restoration Records di sisi kanan Restore. Setelah status tugas mysql-restore berubah dari InProgress menjadi Completed, aplikasi dan data telah dipulihkan.
Jalankan perintah berikut di klaster ACK untuk memeriksa apakah aplikasi MySQL telah diterapkan:
kubectl -n test2 get pod | grep mysql-stsOutput yang Diharapkan:
mysql-sts-0 1/1 Running 0 4sJalankan perintah berikut di klaster ACK untuk memeriksa apakah data telah dipulihkan.
Periksa apakah StorageClass PVC diubah menjadi alibaba-cnfs-nas:
kubectl -n test2 get pvc | grep mysql-pvcOutput yang Diharapkan:
mysql-pvc Bound nas-**** 25Gi RWO alibabacloud-cnfs-nas 3m24sPeriksa apakah PVC mysql-pvc dipasang ke aplikasi MySQL:
kubectl -n test2 describe pvc mysql-pvc | grep "Used By"Output yang Diharapkan:
Used By: mysql-sts-0Konfirmasikan bahwa data uji telah dipulihkan. Jalankan perintah berikut untuk masuk ke kontainer MySQL:
kubectl -n test2 exec -it mysql-sts-0 -- /bin/bashKueri data uji di kontainer MySQL:
cd /mnt && lsOutput yang Diharapkan:
testOutput menunjukkan bahwa data uji telah dipulihkan.