全部产品
Search
文档中心

Container Service for Kubernetes:Backup dan pulihkan aplikasi kluster menggunakan kubectl

更新时间:Dec 19, 2025

Jika Anda tidak dapat mengakses pusat cadangan melalui Konsol Container Service for Kubernetes (ACK) atau perlu mengotomatiskan proses disaster recovery dan backup, Anda dapat menggunakan baris perintah kubectl. Pendekatan ini memungkinkan Anda memigrasikan aplikasi antar kluster dengan menerapkan custom resources (CRs) untuk repositori backup, backup aplikasi, dan pemulihan aplikasi di kluster backup dan pemulihan.

Prasyarat

Instal komponen layanan backup migrate-controller dan konfigurasikan izin

Skenario

  • Anda tidak dapat menggunakan pusat cadangan dari Konsol ACK karena masalah izin.

  • Anda perlu mengotomatiskan proses disaster recovery dan backup.

Catatan

  • Anda tidak dapat menghapus pekerjaan backup dan pemulihan menggunakan perintah kubectl delete. Untuk informasi selengkapnya, lihat Langkah 4: Hapus resource yang terkait dengan pusat cadangan.

  • Pantau rilis baru komponen migrate-controller dan segera perbarui ke versi terbaru. Untuk informasi selengkapnya, lihat Kelola komponen.

  • Jangan hapus parameter konfigurasi dalam contoh berikut. Menghapus parameter ini dapat menyebabkan backup atau pemulihan gagal.

Langkah 1: Buat repositori backup

  1. Di kedua kluster—backup dan pemulihan—buat file bernama backuplocation.yaml yang berisi konten berikut.

    apiVersion: csdr.alibabacloud.com/v1beta1
    kind: BackupLocation
    metadata:
      name: <yourBackuplocationName>
      namespace: csdr
    spec:
      backupSyncPeriod: 0s
      config:
        network: internal
        region: cn-beijing
      objectStorage:
        bucket: <cnfs-oss-yourBucketName>
        prefix: <subDir>
      provider: alibabacloud

    Pertahankan konfigurasi default untuk parameter lainnya.

    Parameter

    Wajib

    Deskripsi

    name

    Ya

    Nama repositori backup. Nama harus mengikuti Konvensi penamaan Kubernetes.

    network

    Ya

    Mode akses jaringan untuk Bucket Object Storage Service (OSS). Nilai yang valid:

    • internal: Mode akses jaringan internal. Semua kluster terkait dan Bucket OSS harus berada di Wilayah yang sama.

    • public: Mode akses jaringan publik. Tidak ada batasan wilayah.

    region

    Ya

    Wilayah tempat Bucket OSS berada.

    bucket

    Ya

    Nama Bucket OSS. Anda harus membuat bucket terlebih dahulu. Nama harus diawali dengan cnfs-oss-****.

    prefix

    Tidak

    Subdirektori dalam Bucket OSS. Jika Anda mengatur parameter ini, konten backup akan disimpan di subdirektori tersebut.

  2. Jalankan perintah berikut di kedua kluster—backup dan pemulihan—untuk menerapkan objek backuplocation.

    kubectl apply -f backuplocation.yaml
  3. Jalankan perintah berikut di kedua kluster—backup dan pemulihan—untuk memeriksa status objek backuplocation.

    kubectl describe backuplocation <yourBackuplocationName> -n csdr

    Output yang diharapkan:

    ...
    Status:
      Last Validation Time:  2022-12-08T04:00:22Z
      Message:               success by csdr-controller
      Phase:                 Available

    Output yang diharapkan menunjukkan bahwa status repositori backup adalah Available. Status ini menunjukkan bahwa kluster memiliki izin yang diperlukan untuk mengakses OSS.

Langkah 2: Buat pekerjaan backup

Pilih jenis backup berdasarkan skenario Anda:

  • Application backup: Membuat backup layanan yang sedang Berjalan di kluster. Backup mencakup resource kluster dan volume persisten (PVs) yang digunakan oleh layanan tersebut.

  • Data protection: Membuat backup data PV. Backup hanya mencakup persistent volume claims (PVCs) dan PVs.

Untuk informasi selengkapnya, lihat Skenario untuk application backup dan data protection.

Application backup

Buat pekerjaan backup on-demand

  1. Di kluster backup, buat file bernama applicationbackup.yaml yang berisi konten berikut.

    apiVersion: csdr.alibabacloud.com/v1beta1
    kind: ApplicationBackup
    metadata:
      annotations:
        csdr.alibabacloud.com/backuplocations: >-
          {"name":"<yourBackuplocationName>","region":"cn-beijing","bucket":"<cnfs-oss-yourBucketName>","prefix":"<subDir>","provider":"alibabacloud"}}
      name: <yourApplicationBackupName>
      namespace: csdr
    spec:
      includedNamespaces:
        - default
      includedResources:
        - statefulset
      excludedResources:
        - deployment
      labelSelector:
        matchLabels:
          app: mysql-sts
      includeClusterResources: false 
      pvBackup:
        defaultPvBackup: false
      storageLocation: <yourBackuplocationName>
      ttl: 720h0m0s

    Pertahankan konfigurasi default untuk parameter lainnya.

    Parameter

    Wajib

    Deskripsi

    csdr.alibabacloud.com/backuplocations

    Ya

    Informasi tentang repositori backup tempat backup disimpan. Harus konsisten dengan konfigurasi repositori backup.

    name

    Ya

    Nama pekerjaan backup on-demand.

    includedNamespaces

    Ya

    Menentukan nama namespace.

    includedResources

    Tidak

    Menentukan tipe resource kluster.

    Penting

    Untuk menghindari hasil backup yang tidak diinginkan, konfigurasikan hanya salah satu dari includedResources atau excludedResources. Jika keduanya kosong, semua tipe resource akan dibackup.

    excludedResources

    Tidak

    Mengecualikan tipe resource kluster.

    Penting

    Untuk menghindari hasil backup yang tidak diinginkan, konfigurasikan hanya salah satu dari includedResources atau excludedResources. Jika keduanya kosong, semua tipe resource akan dibackup.

    matchLabels

    Tidak

    Menentukan label. Hanya resource yang sesuai dengan label yang akan dibackup.

    includeClusterResources

    Tidak

    Menentukan apakah akan membackup resource tingkat kluster, seperti StorageClass, CRD, dan Webhook.

    • true: Membackup semua resource tingkat kluster.

    • false: Hanya membackup resource tingkat kluster yang direferensikan oleh resource tingkat namespace di namespace yang dipilih. Misalnya, saat Anda membackup pod, ServiceAccount yang direferensikan diberikan ClusterRole, dan ClusterRole tersebut secara otomatis dibackup. Saat Anda membackup CR, CRD-nya secara otomatis dibackup.

    Catatan

    Untuk pekerjaan backup yang dibuat di Konsol Container Service for Kubernetes (ACK), bidang IncludeClusterResources diatur ke false secara default.

    defaultPvBackup

    Menentukan apakah akan membackup PV dan mengaktifkan backup data. Nilai yang valid:

    • true: Membackup aplikasi dan PV.

    • false: Hanya membackup aplikasi.

    storageLocation

    Ya

    Nama repositori backup.

    Catatan

    Jika kluster Anda sudah menggunakan Velero, bergabunglah dengan grup DingTalk (ID: 35532895) untuk mendapatkan bantuan.

    ttl

    Ya

    Periode retensi backup. Ini adalah periode penyimpanan data untuk pekerjaan backup. Setelah periode ini berakhir, data tidak dapat dipulihkan. Formatnya adalah 720h0m0s. Nilainya berkisar antara 24h0m0s hingga 1572864h0m0s.

  2. Jalankan perintah berikut di kluster backup untuk menerapkan objek applicationbackup.

    kubectl apply -f applicationbackup.yaml
  3. Jalankan perintah berikut di kluster backup untuk memeriksa status pekerjaan backup on-demand.

    kubectl describe applicationbackup <yourApplicationBackupName> -n csdr

    Output yang diharapkan:

    ...
    Status:
      Completion Timestamp:  2022-12-05T15:02:35Z
      Expiration:            2023-01-04T15:02:25Z
      Message:               success
      Phase:                 Completed

    Pekerjaan backup selesai ketika statusnya berubah dari Inprogress menjadi Completed.

Buat jadwal backup

  1. Di kluster backup, buat file bernama backupschedule.yaml yang berisi konten berikut.

    apiVersion: csdr.alibabacloud.com/v1beta1
    kind: BackupSchedule
    metadata:
      annotations:
        csdr.alibabacloud.com/backuplocations: >-
          {"name":"<yourBackuplocationName>","region":"cn-beijing","bucket":"<cnfs-oss-yourBucketName>","prefix":"<subDir>","provider":"alibabacloud"}
      name: <yourBackupScheduleName>
      namespace: csdr
    spec:
      schedule: 1 4 * * *
      template:
        includedNamespaces:
          - default
        includedResources:
          - statefulset
        excludedResources:
          - deployment
        labelSelector:
          matchLabels:
            app: mysql-sts
        includeClusterResources: false 
        pvBackup:
          defaultPvBackup: true
        storageLocation: <yourBackuplocationName>
        ttl: 720h0m0s

    Pertahankan konfigurasi default untuk parameter lainnya.

    Parameter

    Wajib

    Deskripsi

    csdr.alibabacloud.com/backuplocations

    Ya

    Informasi tentang repositori backup tempat backup disimpan. Harus konsisten dengan konfigurasi repositori backup.

    name

    Ya

    Nama jadwal backup.

    schedule

    Ya

    Siklus backup. Gunakan Ekspresi cron. Untuk informasi lebih lanjut tentang aturannya, lihat Bagaimana cara menentukan siklus backup saat membuat rencana backup?.

    includedNamespaces

    Ya

    Menentukan nama namespace.

    includedResources

    Tidak

    Menentukan tipe resource kluster.

    Penting

    Untuk menghindari hasil backup yang tidak diinginkan, konfigurasikan hanya salah satu dari includedResources atau excludedResources. Jika keduanya kosong, semua tipe resource akan dibackup.

    excludedResources

    Tidak

    Mengecualikan tipe resource kluster.

    Penting

    Untuk menghindari hasil backup yang tidak diinginkan, konfigurasikan hanya salah satu dari includedResources atau excludedResources. Jika keduanya kosong, semua tipe resource akan dibackup.

    matchLabels

    Tidak

    Menentukan label. Hanya resource yang sesuai dengan label yang akan dibackup.

    includeClusterResources

    Tidak

    Menentukan apakah akan membackup resource tingkat kluster, seperti StorageClass, CRD, dan Webhook.

    • true: Membackup semua resource tingkat kluster.

    • false: Hanya membackup resource tingkat kluster yang direferensikan oleh resource tingkat namespace di namespace yang dipilih. Misalnya, saat Anda membackup pod, ServiceAccount yang direferensikan diberikan ClusterRole, dan ClusterRole tersebut secara otomatis dibackup. Saat Anda membackup CR, CRD-nya secara otomatis dibackup.

    Catatan

    Untuk pekerjaan backup yang dibuat di Konsol Container Service for Kubernetes (ACK), bidang IncludeClusterResources diatur ke false secara default.

    defaultPvBackup

    Ya

    Menentukan apakah akan membackup PV dan mengaktifkan backup data. Nilai yang valid:

    • true: Membackup aplikasi dan PV.

    • false: Hanya membackup aplikasi.

    storageLocation

    Ya

    Nama repositori backup.

    Catatan

    Jika kluster Anda sudah menggunakan Velero, bergabunglah dengan grup DingTalk (ID: 35532895) untuk mendapatkan bantuan.

    ttl

    Ya

    Periode retensi backup. Ini adalah periode penyimpanan data untuk pekerjaan backup. Setelah periode ini berakhir, data tidak dapat dipulihkan. Formatnya adalah 720h0m0s. Nilainya berkisar antara 24h0m0s hingga 1572864h0m0s.

  2. Jalankan perintah berikut di kluster backup untuk menerapkan objek backupschedule.

    kubectl apply -f backupschedule.yaml
  3. Jalankan perintah berikut di kluster backup untuk memeriksa status jadwal backup.

    kubectl describe backupschedule <yourBackupScheduleName> -n csdr

    Output yang diharapkan:

    ...
    Status:
      Last Backup:          2022-12-07T20:01:11Z
      Last Processed Time:  2022-12-08T13:05:37Z
      Phase:                Enabled

    Jadwal backup berhasil dibuat ketika statusnya adalah Enabled.

  4. Jalankan perintah berikut di kluster backup untuk memeriksa backup yang dibuat secara berkala.

    kubectl get applicationbackup -n csdr | grep <yourBackupScheduleName>

    Output yang diharapkan:

    <yourBackupScheduleName>-20221205225845   2d22h
    <yourBackupScheduleName>-20221206040104   2d17h
    <yourBackupScheduleName>-20221207040137   41h
    <yourBackupScheduleName>-20221208040111   17h

Data protection

Buat pekerjaan backup on-demand

  1. Di kluster backup, buat file bernama applicationbackup.yaml yang berisi konten berikut.

    apiVersion: csdr.alibabacloud.com/v1beta1
    kind: ApplicationBackup
    metadata:
      annotations:
        csdr.alibabacloud.com/backuplocations: >-
          {"name":"<yourBackuplocationName>","region":"cn-beijing","bucket":"<cnfs-oss-yourBucketName>","prefix":"<subDir>","provider":"alibabacloud"}}
      name: <yourApplicationBackupName>
      namespace: csdr
    spec:
      backupType: PvBackup # Fixed configuration
      includedNamespaces:
      - default
      pvBackup:
        # Specify volumes
        pvcList:
        - name: essd-pvc-0 
          namespace: default 
        - name: essd-pvc-1
          namespace: default
        # Specify volume types
        storageClassList:
        - disk-essd
        - disk-ssd
      storageLocation: <yourBackuplocationName>
      ttl: 720h0m0s

    Parameter

    Wajib

    Deskripsi

    csdr.alibabacloud.com/backuplocations

    Ya

    Informasi tentang repositori backup tempat backup disimpan. Harus konsisten dengan konfigurasi repositori backup.

    name

    Ya

    Nama pekerjaan backup on-demand.

    includedNamespaces

    Ya

    Menentukan nama namespace.

    pvcList

    Tidak

    Menentukan PVC yang sesuai dengan PV yang ingin Anda backup. name adalah nama PVC.

    Penting
    • Jika Anda menentukan keduanya pvcList dan storageClassList, konfigurasi storageClassList tidak berlaku.

    • Jika Anda tidak menentukan keduanya pvcList maupun storageClassList, semua PV di namespace yang ditentukan akan dibackup.

    storageClassList

    Tidak

    Menentukan tipe PV yang akan dibackup. Ini adalah nama StorageClass.

    storageLocation

    Ya

    Nama repositori backup.

    Catatan

    Jika kluster Anda sudah menggunakan Velero, bergabunglah dengan grup DingTalk (ID: 35532895) untuk mendapatkan bantuan.

    ttl

    Ya

    Periode retensi backup. Ini adalah periode penyimpanan data untuk pekerjaan backup. Setelah periode ini berakhir, data tidak dapat dipulihkan. Formatnya adalah 720h0m0s. Nilainya berkisar antara 24h0m0s hingga 1572864h0m0s.

  2. Jalankan perintah berikut di kluster backup untuk menerapkan objek applicationbackup.

    kubectl apply -f applicationbackup.yaml
  3. Jalankan perintah berikut di kluster backup untuk memeriksa status pekerjaan backup on-demand.

    kubectl describe applicationbackup <yourApplicationBackupName> -n csdr

    Output yang diharapkan:

    ...
    Status:
      Completion Timestamp:  2025-03-25T08:20:24Z
      Expiration:            2025-04-24T08:18:03Z
      Message:               success
      Phase:                 Completed

Buat jadwal backup

  1. Di kluster backup, buat file bernama backupschedule.yaml yang berisi konten berikut.

    apiVersion: csdr.alibabacloud.com/v1beta1
    kind: BackupSchedule
    metadata:
      annotations:
        csdr.alibabacloud.com/backuplocations: >-
          {"name":"<yourBackuplocationName>","region":"cn-beijing","bucket":"<cnfs-oss-yourBucketName>","prefix":"<subDir>","provider":"alibabacloud"}
      name: <yourBackupScheduleName>
      namespace: csdr
    spec:
      schedule: 1 4 * * *
      template:
        backupType: PvBackup # Fixed
        includedNamespaces:
        - default
        pvBackup:
          # Specify volumes
          pvcList:
          - name: essd-pvc-0 
            namespace: default
          - name: essd-pvc-1
            namespace: default
          # Specify volume types
          storageClassList:
          - disk-essd
          - disk-ssd
        storageLocation: <yourBackuplocationName>
        ttl: 720h0m0s

    Parameter

    Wajib

    Deskripsi

    csdr.alibabacloud.com/backuplocations

    Ya

    Informasi tentang repositori backup tempat backup disimpan. Harus konsisten dengan konfigurasi repositori backup.

    name

    Ya

    Nama pekerjaan backup on-demand.

    schedule

    Ya

    Siklus backup. Gunakan Ekspresi cron. Untuk informasi lebih lanjut tentang aturannya, lihat Bagaimana cara menentukan siklus backup saat membuat rencana backup?.

    includedNamespaces

    Ya

    Menentukan nama namespace.

    pvcList

    Tidak

    Menentukan PVC yang sesuai dengan PV yang ingin Anda backup. name adalah nama PVC.

    Penting
    • Jika Anda menentukan keduanya pvcList dan storageClassList, konfigurasi storageClassList tidak berlaku.

    • Jika Anda tidak menentukan keduanya pvcList maupun storageClassList, semua PV di namespace yang ditentukan akan dibackup.

    storageClassList

    Tidak

    Menentukan tipe PV yang akan dibackup. Ini adalah nama StorageClass.

    storageLocation

    Ya

    Nama repositori backup.

    Catatan

    Jika kluster Anda sudah menggunakan Velero, bergabunglah dengan grup DingTalk (ID: 35532895) untuk mendapatkan bantuan.

    ttl

    Ya

    Periode retensi backup. Ini adalah periode penyimpanan data untuk pekerjaan backup. Setelah periode ini berakhir, data tidak dapat dipulihkan. Formatnya adalah 720h0m0s. Nilainya berkisar antara 24h0m0s hingga 1572864h0m0s.

  2. Jalankan perintah berikut di kluster backup untuk menerapkan objek backupschedule.

    kubectl apply -f backupschedule.yaml
  3. Anda dapat menjalankan perintah berikut di kluster backup untuk memeriksa status jadwal backup.

    kubectl describe backupschedule <yourBackupScheduleName> -n csdr

    Output yang diharapkan:

    ...
    Status:
      Last Backup:  2025-03-25T09:24:38Z
      Phase:        Enabled

Langkah 3: Buat pekerjaan pemulihan

  1. Di kluster pemulihan, buat file bernama applicationrestore.yaml yang berisi konten berikut.

    apiVersion: csdr.alibabacloud.com/v1beta1
    kind: ApplicationRestore
    metadata:
      annotations:    
        csdr.alibabacloud.com/backuplocations: >-
          {"name":"<yourBackuplocationName>","region":"cn-beijing","bucket":"<cnfs-oss-yourBucketName>","prefix":"<subDir>","provider":"alibabacloud"}
      name: <yourApplicationRestoreName>
      namespace: csdr
    spec:
      appRestoreOnly: false
      preserveNodePorts: true
      includedNamespaces:
        - default
      includedResources:
        - statefulset
      excludedResources:
        - secret
      convertedarg:
      - convertToStorageClassType: alicloud-disk-topology-alltype
        convertToAccessModes:
        - ReadWriteOnce
        namespace: nas
        persistentVolumeClaim: pvc-nas
      - convertToStorageClassType: alicloud-disk-topology-alltype
        namespace: oss
        persistentVolumeClaim: pvc-oss
      backupName: <yourApplicationBackupName>
      namespaceMapping:
        <backupNamespace>: <restoreNamespace>
      imageRegistryMapping:
        <oldImageRegistry>: <newImageRegistry>

    Pertahankan konfigurasi default untuk parameter lainnya.

    Catatan

    Parameter appRestoreOnly, preserveNodePorts, includedResources, dan excludedResources hanya berlaku untuk application backup. Parameter ini diabaikan dalam skenario data protection.

    Parameter

    Wajib

    Deskripsi

    csdr.alibabacloud.com/backuplocations

    Ya

    Informasi tentang repositori backup tempat backup disimpan. Harus konsisten dengan konfigurasi repositori backup.

    name

    Ya

    Nama pekerjaan pemulihan.

    appRestoreOnly

    Tidak

    Parameter ini hanya berlaku untuk pekerjaan application backup. Tidak berlaku untuk pekerjaan data protection.

    Untuk backup yang mencakup PV, menentukan apakah hanya memulihkan aplikasi tanpa PVC, PV, dan data terkaitnya. Nilai yang valid:

    • true: Hanya memulihkan aplikasi. Untuk mengubah sumber data aplikasi yang dibackup, Anda dapat membuat PVC dan PV secara manual, lalu membuat pekerjaan pemulihan dan mengatur parameter ini ke true.

    • false: Memulihkan aplikasi dan data penyimpanan terkait. Ini adalah nilai default.

    preserveNodePorts

    Tidak

    Parameter ini hanya berlaku untuk pekerjaan application backup. Tidak berlaku untuk pekerjaan data protection.

    Menentukan apakah akan mempertahankan NodePort aplikasi. Ketika kluster backup dan kluster pemulihan sama, nilai default adalah false. Nilai port diubah secara acak untuk menghindari konflik dengan aplikasi sejenis yang sudah ada. Jika tidak, atur ke true.

    includedNamespaces

    Ya

    Menentukan nama namespace yang akan dipulihkan. Jika Anda biarkan kosong, semua namespace yang dibackup akan dipulihkan.

    includedResources

    Tidak

    Parameter ini hanya berlaku untuk pekerjaan application backup. Tidak berlaku untuk pekerjaan data protection.

    Menentukan tipe resource kluster yang akan dipulihkan.

    Penting
    • Untuk menghindari hasil yang tidak diinginkan, konfigurasikan hanya salah satu dari includedResources atau excludedResources. Jika keduanya kosong, semua tipe resource yang dibackup akan dipulihkan.

    excludedResources

    Tidak

    Parameter ini hanya berlaku untuk pekerjaan application backup. Tidak berlaku untuk pekerjaan data protection.

    Mengecualikan tipe resource kluster yang akan dipulihkan.

    Penting
    • Untuk menghindari hasil yang tidak diinginkan, konfigurasikan hanya salah satu dari includedResources atau excludedResources. Jika keduanya kosong, semua tipe resource yang dibackup akan dipulihkan.

    backupName

    Ya

    Nama backup yang akan dipulihkan. Jika Anda menggunakan fitur backup terjadwal, Anda harus menentukan nama backup yang dibuat pada titik waktu tertentu, misalnya <yourBackupScheduleName>-20221205225845.

    namespaceMapping

    Tidak

    Memetakan ulang namespace. Nilai yang valid:

    • <backupNamespace>: Namespace di kluster backup yang ditentukan saat pekerjaan backup dibuat.

    • <restoreNamespace>: Namespace di kluster pemulihan tempat resource dari backup dibuat. Jika tidak diatur, resource akan dipulihkan ke namespace dengan nama yang sama secara default.

    Catatan

    Jika <restoreNamespace> tidak ada, namespace baru akan dibuat.

    imageRegistryMapping

    Tidak

    Memetakan ulang alamat repository image. Ini berlaku untuk konfigurasi image semua aplikasi yang sesuai aturan. Nilai yang valid:

    • <oldImageRegistry>: Alamat repository image asli aplikasi dalam backup.

    • <newImageRegistry>: Alamat repository image target untuk pemulihan. Jika tidak diatur, konfigurasi image dalam aplikasi tidak diubah.

    Contoh:

    Aplikasi asli menggunakan image registry.cn-beijing.aliyuncs.com/my-registry/nginx:v1. Anda perlu mengubahnya menjadi registry.cn-hangzhou.aliyuncs.com/my-registry/nginx:v1. Konfigurasikan bidang sebagai berikut:

      imageRegistryMapping:
        "registry.cn-beijing.aliyuncs.com/my-registry/": "registry.cn-hangzhou.aliyuncs.com/my-registry/"

    convertedarg

    Tidak

    Daftar transformasi StorageClass. PVC volume tipe data FileSystem (seperti OSS, NAS, CPFS, dan penyimpanan lokal) dalam backup dipulihkan ke StorageClass target di kluster saat ini. Ini memungkinkan transformasi, misalnya, dari penyimpanan NAS ke penyimpanan disk.

    • convertToStorageClassType: StorageClass target. Harus ada di kluster saat ini. Versi saat ini hanya mendukung pemilihan StorageClass disk atau NAS.

    • namespace: Namespace tempat klaim penyimpanan berada.

    • persistentVolumeClaim: Nama PVC.

    Parameter di atas wajib untuk fitur transformasi StorageClass.

    Saat mentransformasi StorageClass, Anda juga dapat memodifikasi konfigurasi AccessModes PV menggunakan parameter opsional berikut.

    • convertToAccessModes: Daftar AccessModes target.

    Catatan

    Ketika PV dengan AccessModes ReadWriteMany atau ReadOnlyMany perlu dipulihkan ke StorageClass disk, Anda juga harus mengubah AccessModes menjadi ReadWriteOnce untuk menghindari risiko disk dilepas paksa.

    Anda dapat menjalankan kubectl -ncsdr describe <backup-name> untuk menanyakan informasi PVC backup. Dalam daftar status.resourceList.dataResource.pvcBackupInfo pada output, bidang dataType menunjukkan tipe data, yaitu FileSystem atau Snapshot. Bidang nameSpace dan pvcName masing-masing adalah namespace dan nama PVC.

  2. Jalankan perintah berikut di kluster pemulihan untuk menerapkan objek applicationrestore.

    kubectl apply -f applicationrestore.yaml
  3. Jalankan perintah berikut di kluster pemulihan untuk memeriksa status pekerjaan pemulihan.

    kubectl describe applicationrestore <yourApplicationRestoreName> -n csdr

    Output yang diharapkan:

    ...
    Status:
      Completion Timestamp:  2022-12-05T15:52:19Z
      Phase:                 Completed
      Start Timestamp:       2022-12-05T15:52:09Z

    Pekerjaan pemulihan selesai ketika statusnya berubah dari Inprogress menjadi Completed.

Langkah 4: Hapus resource yang terkait dengan pusat cadangan

Penting

Anda tidak dapat menghapus resource BackupLocation dari pusat cadangan. Hal ini karena repositori backup mungkin sedang digunakan oleh kluster lain.

Hapus jadwal backup

Jalankan perintah berikut untuk menghapus resource BackupSchedule dan menghentikan backup terjadwal.

kubectl delete backupschedule <yourBackupSchedule> -n csdr

Hapus pekerjaan backup atau pemulihan

  1. Di kluster yang berisi pekerjaan yang ingin Anda hapus, buat file bernama deleterequest.yaml yang berisi konten berikut.

    apiVersion: csdr.alibabacloud.com/v1beta1
    kind: DeleteRequest
    metadata:
      name: <objectName-dbr>
      namespace: csdr
    spec:
      deleteObjectName: <objectName>
      deleteObjectType: "Backup"

    Pertahankan konfigurasi default untuk parameter lainnya.

    Parameter

    Wajib

    Deskripsi

    name

    Ya

    Nama permintaan penghapusan.

    • Untuk pekerjaan backup: Nama ApplicationBackup yang akan dihapus, ditambah "-dbr".

    • Untuk pekerjaan pemulihan: Nama ApplicationRestore yang akan dihapus, ditambah "-dbr".

    deleteObjectName

    Ya

    Nama resource yang akan dihapus.

    deleteObjectType

    Ya

    Tipe resource yang akan dihapus. Nilai yang valid:

    • "Backup": Menghapus pekerjaan ApplicationBackup dan resource terkaitnya.

    • "Restore": Menghapus pekerjaan ApplicationRestore dan resource terkaitnya.

    Catatan
    • Menghapus pekerjaan backup tidak memengaruhi replika yang telah disinkronkan ke kluster.

    • Menghapus pekerjaan pemulihan tidak memengaruhi konten yang telah dipulihkan.

  2. Jalankan perintah berikut di kluster yang berisi pekerjaan yang ingin Anda hapus untuk menerapkan objek deleterequest.

    kubectl apply -f deleterequest.yaml
  3. Gunakan perintah berikut untuk memeriksa status resource.

    • Check the deleted backup job

      • Jalankan perintah berikut untuk memeriksa status penghapusan pekerjaan backup.

        kubectl get applicationbackup <yourApplicationBackupName> -n csdr

        Output yang diharapkan:

        Error from server (NotFound): applicationbackups.csdr.alibabacloud.com "yourApplicationBackupName" not found

        Output kosong menunjukkan bahwa resource pekerjaan backup telah dihapus.

      • Jalankan perintah berikut untuk memeriksa status resource permintaan penghapusan.

        kubectl get deleterequest <yourApplicationBackupName-dbr> -n csdr

        Output yang diharapkan:

        Error from server (NotFound): deleterequests.csdr.alibabacloud.com "yourApplicationBackupName-dbr" not found

        Output menunjukkan bahwa resource pekerjaan backup dan resource permintaan penghapusannya secara otomatis dihapus.

    • Check the deleted restore job

      • Jalankan perintah berikut untuk memeriksa status pekerjaan pemulihan yang dihapus.

        kubectl get applicationrestore <yourApplicationRestoreName> -n csdr

        Output yang diharapkan:

        Error from server (NotFound): applicationrestores.csdr.alibabacloud.com "yourApplicationRestoreName" not found

        Output kosong menunjukkan bahwa resource pekerjaan pemulihan telah dihapus.

      • Jalankan perintah berikut untuk memeriksa status resource permintaan penghapusan.

        kubectl get deleterequest <yourApplicationRestoreName-dbr> -n csdr

        Output yang diharapkan:

        Error from server (NotFound): deleterequests.csdr.alibabacloud.com "yourApplicationRestoreName-dbr" not found

        Output kosong menunjukkan bahwa resource permintaan penghapusan terkait juga secara otomatis dihapus.

Referensi