All Products
Search
Document Center

Container Service for Kubernetes:Migrasikan aplikasi dari klaster Kubernetes di platform cloud pihak ketiga ke klaster ACK

Last Updated:Jul 06, 2025

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.

    Penting
    • Klaster 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.

  • Cloud Backup diaktifkan.

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 csdr

    Output yang Diharapkan:

    alibaba-addon-secret   Opaque   2      5d22h
  • Klaster 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.

  1. Jalankan perintah berikut untuk membuat namespace bernama test1:

    kubectl create namespace test1
  2. Gunakan 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.

  3. Jalankan perintah berikut untuk memeriksa apakah aplikasi MySQL telah diterapkan:

    kubectl -n test1 get pod| grep mysql-sts

    Output yang Diharapkan:

    mysql-sts-0   1/1     Running   0         1m02s
  4. Jalankan perintah berikut untuk mengonfirmasi konfigurasi volume:

    kubectl -n test1 get pv mysql-pv -oyaml 

    Output yang Diharapkan:

      csi:
        driver: ****
        volumeAttributes:
          xxxx: xxxx
          xxxx: xxxx
        volumeHandle: mysql-pv

    Output menunjukkan bahwa konfigurasi volume berisi bidang CSI.

  5. Jalankan perintah berikut untuk masuk ke kontainer MySQL:

    kubectl -n test1 exec -it mysql-sts-0 -- /bin/bash
  6. Jalankan perintah berikut di dalam kontainer untuk membuat file uji untuk pencadangan:

    cd /mnt && touch test && ls

    Output 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:

  1. (Opsional) Buat vault cadangan jika tidak ada vault cadangan dalam akun saat ini. Untuk informasi lebih lanjut, lihat Buat Vault Cadangan.

  2. 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.

  3. 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.

  1. Di halaman Application Backup, klik Restore.

  2. 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.

  3. Setelah inisialisasi selesai, pilih tugas pemulihan di vault cadangan dan klik OK.

  4. 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.

  1. 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.

  2. Klik View Restoration Records di sisi kanan Restore. Setelah status tugas mysql-restore berubah dari InProgress menjadi Completed, aplikasi dan data telah dipulihkan.

  3. Jalankan perintah berikut di klaster ACK untuk memeriksa apakah aplikasi MySQL telah diterapkan:

    kubectl -n test2 get pod | grep mysql-sts

    Output yang Diharapkan:

    mysql-sts-0   1/1     Running   0          4s
  4. Jalankan perintah berikut di klaster ACK untuk memeriksa apakah data telah dipulihkan.

    1. Periksa apakah StorageClass PVC diubah menjadi alibaba-cnfs-nas:

      kubectl -n test2 get pvc | grep mysql-pvc

      Output yang Diharapkan:

      mysql-pvc   Bound    nas-****   25Gi       RWO            alibabacloud-cnfs-nas   3m24s
    2. Periksa 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-0
    3. Konfirmasikan bahwa data uji telah dipulihkan. Jalankan perintah berikut untuk masuk ke kontainer MySQL:

      kubectl -n test2 exec -it mysql-sts-0 -- /bin/bash
    4. Kueri data uji di kontainer MySQL:

      cd /mnt && ls

      Output yang Diharapkan:

      test

      Output menunjukkan bahwa data uji telah dipulihkan.