すべてのプロダクト
Search
ドキュメントセンター

Container Service for Kubernetes:kubectl を使用したアプリケーションのバックアップと復元

最終更新日:Apr 12, 2025

Container Service for Kubernetes (ACK) コンソールからバックアップセンターを管理できない場合、またはバックアップとディザスタリカバリを自動化したい場合は、kubectl を使用できます。 kubectl を使用することで、バックアップクラスタと復元クラスタに BackupLocation、ApplicationBackup、および ApplicationRestore の CustomResource (CR) をデプロイして、アプリケーションを移行できます。

前提条件

migrate-controller がインストールされ、権限が付与されていること。 詳細については、「migrate-controller のインストールと権限の付与」をご参照ください。

ユースケース

  • 必要な権限がないため、ACK コンソールでバックアップセンターを使用できない。

  • バックアップ手順を自動化したい。

注意事項

  • delete コマンドを実行しても、バックアップタスクまたは復元タスクを削除することはできません。 詳細については、「手順 4: バックアップセンターに関連するリソースの削除」をご参照ください。

  • migrate-controller という名前のバックアップセンターコンポーネントの新しいリリースに細心の注意を払い、できるだけ早くコンポーネントを最新バージョンに更新してください。 詳細については、「コンポーネントの管理」をご参照ください。

  • バックアップファイルを復元できなくなる場合に備えて、以下のサンプルコードのパラメータを削除しないでください。

手順 1: バックアップボールトの作成

  1. バックアップクラスタと復元クラスタの両方で backuplocation.yaml という名前のファイルを作成し、以下の内容をファイルに追加します。

    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

    次の表は、指定する必要のあるパラメータについて説明しています。 その他のパラメータについては、デフォルト設定を維持してください。

    パラメータ

    必須

    説明

    name

    はい

    バックアップボールトの名前。 名前は Kubernetes の命名規則に準拠している必要があります。

    network

    はい

    指定された Object Storage Service (OSS) バケットにアクセスするために使用されるネットワークモード。 有効な値:

    • internal: 内部モード。 関連付けられているすべてのクラスタは、OSS バケットと同じリージョンにデプロイする必要があります。

    • public: パブリックモード。 このモードにはリージョン制限はありません。

    region

    はい

    OSS バケットが存在するリージョン。

    bucket

    はい

    OSS バケットの名前。 OSS バケット名が cnfs-oss- で始まっていることを確認してください。

    prefix

    いいえ

    OSS バケット内のサブディレクトリ。 このパラメータを指定すると、バックアップは指定されたサブディレクトリに保存されます。

  2. バックアップクラスタと復元クラスタの両方で次のコマンドを実行して、backuplocation オブジェクトをデプロイします。

    kubectl apply -f backuplocation.yaml
  3. バックアップクラスタと復元クラスタの両方で次のコマンドを実行して、backuplocation オブジェクトのステータスをクエリします。

    kubectl describe backuplocation <yourBackuplocationName> -n csdr

    期待される出力:

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

    出力は、バックアップボールトが Available 状態であることを示しています。 これは、現在のクラスタが OSS にアクセスする権限を持っていることを意味します。

手順 2: バックアップタスクの作成

ビジネス要件に基づいて、次のバックアップタイプのいずれかを選択できます。

  • アプリケーションバックアップ: クラスタで実行されているアプリケーションをバックアップします。これには、クラスタリソースとアプリケーションで使用されるボリュームが含まれます。

  • データ保護: ボリュームデータをバックアップします。 リソースには、永続ボリューム要求 (PVC) と永続ボリューム (PV) のみが含まれます。

詳細については、「アプリケーションバックアップとデータ保護のシナリオとは」をご参照ください。

アプリケーション バックアップ

インスタントバックアップタスクの作成

  1. バックアップクラスタで applicationbackup.yaml という名前のファイルを作成し、以下の内容をファイルに追加します。

    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

    次の表は、指定する必要のあるパラメータについて説明しています。 その他のパラメータについては、デフォルト設定を維持してください。

    パラメータ

    必須

    説明

    csdr.alibabacloud.com/backuplocations

    はい

    バックアップを格納するバックアップボールト。 情報がバックアップボールトの構成と同じであることを確認してください。

    name

    はい

    リアルタイムバックアップタスクの名前。

    includedNamespaces

    はい

    名前空間の名前。

    includedResources

    いいえ

    バックアップリストに含めるクラスタリソースのタイプ。

    重要

    予期しないバックアップ結果を避けるために、includedResources パラメータと excludedResources パラメータのいずれか 1 つのみを構成する必要があります。 両方のパラメータを空のままにすると、すべてのリソースタイプがバックアップされます。

    excludedResources

    いいえ

    バックアップリストから除外するクラスタリソースのタイプ。

    重要

    予期しないバックアップ結果を避けるために、includedResources パラメータと excludedResources パラメータのいずれか 1 つのみを構成する必要があります。 両方のパラメータを空のままにすると、すべてのリソースタイプがバックアップされます。

    matchLabels

    いいえ

    バックアップするリソースのラベル。

    includeClusterResources

    いいえ

    StorageClass、CustomResourceDefinition (CRD)、Webhook など、すべてのクラスタレベルリソースをバックアップするかどうかを指定します。

    • true: すべてのクラスタレベルリソースをバックアップします。

    • false: 指定された名前空間にある名前空間レベルリソースによって使用されるクラスタレベルリソースのみをバックアップします。 たとえば、システムがポッドをバックアップする場合、ポッドによって使用されるサービスアカウントにはクラスタロールが割り当てられます。 この場合、クラスタロールは自動的にバックアップされます。 システムが CustomResource (CR) をバックアップする場合、対応する CRD がバックアップされます。

    説明

    デフォルトでは、IncludeClusterResourcesfalseACK コンソール で作成されたバックアップタスクでは、IncludeClusterResources は false に設定されています。

    defaultPvBackup

    ボリュームをバックアップするかどうかを指定します。 有効な値:

    • true: アプリケーションとボリュームをバックアップします。

    • false: アプリケーションのみをバックアップします。

    storageLocation

    はい

    バックアップボールトの名前。

    説明

    ACK クラスタで Velero を使用している場合は、DingTalk グループ 35532895 に参加してテクニカルサポートをリクエストしてください。

    ttl

    はい

    バックアップの有効期間。 有効期限が切れたバックアップからデータを復元することはできません。 期間は 720h0m0s 形式で指定します。 有効な値: 24h0m0s から 1572864h0m0s。

  2. バックアップクラスタで次のコマンドを実行して、applicationbackup オブジェクトをデプロイします。

    kubectl apply -f applicationbackup.yaml
  3. バックアップクラスタで次のコマンドを実行して、リアルタイムバックアップタスクのステータスをクエリします。

    kubectl describe applicationbackup <yourApplicationBackupName> -n csdr

    期待される出力:

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

    リアルタイムバックアップタスクのステータスが Inprogress から Completed に変わると、タスクが作成されます。

スケジュールバックアップタスクの作成

  1. バックアップクラスタで backupschedule.yaml という名前のファイルを作成し、以下の内容をファイルに追加します。

    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

    次の表は、指定する必要のあるパラメータについて説明しています。 その他のパラメータについては、デフォルト設定を維持してください。

    パラメータ

    必須

    説明

    csdr.alibabacloud.com/backuplocations

    はい

    バックアップを格納するバックアップボールト。 情報がバックアップボールトの構成と同じであることを確認してください。

    name

    はい

    スケジュールバックアップタスクの名前。

    schedule

    はい

    バックアップサイクルを指定する Cron 式。 Cron 式の指定方法の詳細については、「バックアッププランを作成するときにバックアップサイクルを指定するにはどうすればよいですか。」をご参照ください。

    includedNamespaces

    はい

    名前空間の名前。

    includedResources

    いいえ

    バックアップリストに含めるクラスタリソースのタイプ。

    重要

    予期しないバックアップ結果を避けるために、includedResources パラメータと excludedResources パラメータのいずれか 1 つのみを構成する必要があります。 両方のパラメータを空のままにすると、すべてのリソースタイプがバックアップされます。

    excludedResources

    いいえ

    バックアップリストから除外するクラスタリソースのタイプ。

    重要

    予期しないバックアップ結果を避けるために、includedResources パラメータと excludedResources パラメータのいずれか 1 つのみを構成する必要があります。 両方のパラメータを空のままにすると、すべてのリソースタイプがバックアップされます。

    matchLabels

    いいえ

    バックアップするリソースのラベル。

    includeClusterResources

    いいえ

    StorageClass、CustomResourceDefinitions (CRD)、Webhook など、すべてのクラスタレベルリソースをバックアップするかどうかを指定します。

    • true: すべてのクラスタレベルリソースをバックアップします。

    • false: 指定された名前空間にある名前空間レベルリソースによって使用されるクラスタレベルリソースのみをバックアップします。 たとえば、システムがポッドをバックアップする場合、ポッドによって使用されるサービスアカウントにはクラスタロールが割り当てられます。 この場合、クラスタロールは自動的にバックアップされます。 システムが CustomResource (CR) をバックアップする場合、対応する CRD がバックアップされます。

    説明

    デフォルトでは、IncludeClusterResourcesfalseACK コンソール で作成されたバックアップタスクでは、IncludeClusterResources は false に設定されています。

    defaultPvBackup

    はい

    ボリュームをバックアップするかどうかを指定します。有効な値:

    • true: アプリケーションとボリュームをバックアップします。

    • false: アプリケーションのみをバックアップします。

    storageLocation

    はい

    バックアップボールトの名前。

    説明

    ACK クラスタで Velero を使用している場合は、DingTalk グループ 35532895 に参加してテクニカルサポートをリクエストしてください。

    ttl

    はい

    バックアップの有効期間。 有効期限が切れたバックアップからデータを復元することはできません。 期間は 720h0m0s 形式で指定します。 有効な値: 24h0m0s から 1572864h0m0s。

  2. バックアップクラスタで次のコマンドを実行して backupschedule オブジェクトをデプロイします。

    kubectl apply -f backupschedule.yaml
  3. バックアップクラスタで次のコマンドを実行して、スケジュールバックアップタスクのステータスをクエリします。

    kubectl describe backupschedule <yourBackupScheduleName> -n csdr

    期待される出力:

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

    バックアッププランが Enabled 状態の場合、バックアッププランは作成されています。

  4. バックアップクラスタで次のコマンドを実行して、定期的に作成されるバックアップをクエリします。

    kubectl get applicationbackup -n csdr | grep <yourBackupScheduleName>

    期待される出力:

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

データ保護

インスタントバックアップタスクを作成する

  1. バックアップクラスタに applicationbackup.yaml という名前のファイルを作成し、ファイルに次の内容を追加します。

    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 # 固定構成
      icludedNamespaces:
      - default
      pvBackup:
        # データボリュームを指定します
        pvcList:
        - name: essd-pvc-0 
          namespace: default 
        - name: essd-pvc-1
          namespace: default
        # データボリュームのタイプを指定します
        storageClassList:
        - disk-essd
        - disk-ssd
      storageLocation: <yourBackuplocationName>
      ttl: 720h0m0s

    パラメーター

    必須

    説明

    csdr.alibabacloud.com/backuplocations

    はい

    バックアップを保存するバックアップボールト。 情報がバックアップボールトの構成と同じであることを確認してください。

    name

    はい

    リアルタイムバックアップタスクの名前。

    includedNamespaces

    はい

    名前空間の名前。

    pvcList

    いいえ

    バックアップするボリュームに対応する PVC。name パラメーターは、PVC の名前を指定します。

    重要
    • pvcListstorageClassList の両方が指定されている場合、storageClassList の構成は無効になります。

    • pvcListstorageClassList も指定されていない場合、指定された名前空間のすべてのボリュームがバックアップされます。

    storageClassList

    いいえ

    バックアップするボリュームのタイプ。StorageClass の名前です。

    storageLocation

    はい

    バックアップボールトの名前。

    説明

    ACK クラスタで Velero を使用している場合は、DingTalk グループ 35532895 に参加してテクニカルサポートをリクエストしてください。

    ttl

    はい

    バックアップの有効期間。期限切れのバックアップからデータを復元することはできません。 720h0m0s 形式で期間を指定します。有効な値: 24h0m0s から 1572864h0m0s。

  2. バックアップクラスタで次のコマンドを実行して、applicationbackup オブジェクトをデプロイします。

    kubectl apply -f applicationbackup.yaml
  3. バックアップクラスタで次のコマンドを実行して、リアルタイムバックアップタスクのステータスをクエリします。

    kubectl describe applicationbackup <yourApplicationBackupName> -n csdr

    期待される出力:

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

スケジュールバックアップタスクを作成する

  1. バックアップクラスタに backupschedule.yaml という名前のファイルを作成し、次の内容をファイルに追加します。

    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 # 固定構成
        icludedNamespaces:
        - default
        pvBackup:
          # データボリュームを指定します
          pvcList:
          - name: essd-pvc-0 
            namespace: default
          - name: essd-pvc-1
            namespace: default
          # データボリュームのタイプを指定します
          storageClassList:
          - disk-essd
          - disk-ssd
        storageLocation: <yourBackuplocationName>
        ttl: 720h0m0s

    次の表は、指定する必要があるパラメーターについて説明しています。その他のパラメーターについては、デフォルト設定を維持してください。

    パラメーター

    必須

    説明

    csdr.alibabacloud.com/backuplocations

    はい

    バックアップを保存するバックアップボールト。情報がバックアップボールトの構成と同じであることを確認してください。

    name

    はい

    リアルタイムバックアップタスクの名前。

    schedule

    はい

    バックアップサイクルを指定する Cron 式。 Cron 式の指定方法の詳細については、「バックアッププランを作成するときに、バックアップサイクルをどのように指定しますか。」をご参照ください。

    includedNamespaces

    はい

    名前空間の名前。

    pvcList

    いいえ

    バックアップするボリュームに対応する PVC。name パラメーターは、PVC の名前を指定します。

    重要
    • pvcListstorageClassList の両方が指定されている場合、storageClassList の構成は無効になります。

    • pvcListstorageClassList も指定されていない場合、指定された名前空間のすべてのボリュームがバックアップされます。

    storageClassList

    いいえ

    バックアップするボリュームのタイプ。StorageClass の名前です。

    storageLocation

    はい

    バックアップボールトの名前。

    説明

    ACK クラスタで Velero を使用している場合は、DingTalk グループ 35532895 に参加してテクニカルサポートをリクエストしてください。

    ttl

    はい

    バックアップの有効期間。 期限切れのバックアップからデータを復元することはできません。 720h0m0s 形式で期間を指定します。有効な値: 24h0m0s から 1572864h0m0s。

  2. バックアップクラスタで次のコマンドを実行して、backupschedule オブジェクトをデプロイします。

    kubectl apply -f backupschedule.yaml
  3. バックアップクラスタで次のコマンドを実行して、スケジュールバックアップタスクのステータスをクエリします。

    kubectl describe backupschedule <yourBackupScheduleName> -n csdr

    期待される出力:

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

ステップ 3:リストアタスクを作成する

  1. リストアクラスターに applicationrestore.yaml という名前のファイルを作成し、次の内容をファイルに追加します。

    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>

    次の表は、指定する必要のあるパラメーターについて説明しています。その他のパラメーターについては、デフォルト設定を維持してください。

    説明

    appRestoreOnlypreserveNodePortsincludedResources、および excludedResources パラメーターはアプリケーションバックアップでのみサポートされており、データ保護シナリオで構成しても有効になりません。

    パラメーター

    必須

    説明

    csdr.alibabacloud.com/backuplocations

    はい

    バックアップを保存するバックアップボールト。情報がバックアップボールトの構成と同じであることを確認してください。

    name

    はい

    リストアタスクの名前。

    appRestoreOnly

    いいえ

    このパラメーターはアプリケーションバックアップタスクにのみ有効であり、データ保護タスクでは有効になりません。

    ボリュームデータを含むバックアップからアプリケーションのみをリストアするかどうかを指定します。永続ボリュームクレーム(PVC)、永続ボリューム(PV)、および関連データはリストアされません。有効な値:

    • true:アプリケーションのみをリストアします。アプリケーションをバックアップするデータソースを変更する場合は、手動で PVC と PV を作成し、リストアタスクを作成してから、このパラメーターを true に設定する必要があります。

    • false:アプリケーションと関連するボリュームデータをリストアします。デフォルト値:false。

    preserveNodePorts

    いいえ

    このパラメーターはアプリケーションバックアップタスクにのみ有効であり、データ保護タスクでは有効になりません。

    アプリケーションの NodePort を保持するかどうかを指定します。バックアップクラスターとリストアクラスターが同じ NodePort を使用する場合は、このパラメーターを false に設定して、NodePort をランダムなポートに変更します。その他のシナリオでは、パラメーターを true に設定します。

    includedNamespaces

    はい

    リストアする名前空間の名前。このパラメーターを空のままにすると、バックアップされているすべての名前空間がリストアされます。

    includedResources

    いいえ

    このパラメーターはアプリケーションバックアップタスクにのみ有効であり、データ保護タスクでは有効になりません。

    リストアリストに含めるクラスターリソースのタイプ。

    重要

    バックアップが想定どおりに作成されるようにするには、includedResourcesexcludedResources のいずれか一方のパラメーターのみを指定します。両方のパラメーターを空のままにすると、すべてのリソースタイプがバックアップされます。

    excludedResources

    いいえ

    このパラメーターはアプリケーションバックアップタスクにのみ有効であり、データ保護タスクでは有効になりません。

    リストアリストから除外するクラスターリソースのタイプ。

    重要

    バックアップが想定どおりに作成されるようにするには、includedResourcesexcludedResources のいずれか一方のパラメーターのみを指定します。両方のパラメーターを空のままにすると、すべてのリソースタイプがバックアップされます。

    backupName

    はい

    リストアするバックアップの名前。スケジュールバックアップ機能を使用する場合は、特定の時点で作成されたバックアップの名前を指定する必要があります。例:<yourBackupScheduleName>-20221205225845

    namespaceMapping

    いいえ

    このパラメーターは、バックアップクラスターの名前空間をリストアクラスターの名前空間にマップします。有効な値:

    • <backupNamespace>:バックアップクラスター内のバックアップの名前空間。

    • <restoreNamespace>:リストアクラスター内でリソースがリストアされる名前空間。このパラメーターを指定しない場合、リソースはバックアップクラスター内の名前空間と同じ名前を使用する名前空間にリストアされます。

    説明

    <restoreNamespace> が存在しない場合、システムによって自動的に作成されます。

    imageRegistryMapping

    いいえ

    このパラメーターは、イメージ リポジトリ アドレスを再指定し、条件を満たすすべてのアプリケーションのイメージ構成に適用されます。有効な値:

    • <oldImageRegistry>:バックアップ時のアプリケーションの元のイメージ レジストリ アドレス。

    • <newImageRegistry>:リストア時のターゲット イメージ レジストリ アドレス。設定されていない場合、アプリケーションのイメージ構成は変更されません。

    例:

    元のクラスターのアプリケーションがイメージ registry.cn-beijing.aliyuncs.com/my-registry/nginx:v1 を使用しており、registry.cn-hangzhou.aliyuncs.com/my-registry/nginx:v1 に調整する必要がある場合は、このフィールドに次の構成を使用します。

      namespaceMapping:
        "registry.cn-beijing.aliyuncs.com/my-registry/": "registry.cn-beijing.aliyuncs.com/my-registry/"

    convertedarg

    いいえ

    StorageClass 変換リスト。OSS、NAS、CPFS、ローカル ボリュームなどのファイルシステムタイプのボリュームの場合、このパラメーターを構成して、リストアプロセス中に PVC の StorageClass を指定された StorageClass に変換できます。たとえば、NAS ボリュームをディスク ボリュームに変換できます。

    • convertToStorageClassType:目的の StorageClass。StorageClass が現在のクラスターに存在することを確認してください。ディスクまたは NAS StorageClass のみ指定できます。

    • namespace:PVC の名前空間。

    • persistentVolumeClaim:PVC の名前。

    上記は、StorageClass 変換機能に必要なパラメーターです。

    StorageClass の変換中に、ボリュームの AccessModes 構成を変更するための次のオプション パラメーターもサポートされています。

    • convertToAccessModes:目的の AccessModes リスト。

    説明

    AccessModesReadWriteMany または ReadOnlyMany に設定されているボリュームをディスクにリストアする場合は、ディスクの強制デタッチを回避するために、AccessModesReadWriteOnce に設定する必要があります。

    kubectl -ncsdr describe <backup-name> コマンドを実行して、バックアップの PVC 情報をクエリできます。返された status.resourceList.dataResource.pvcBackupInfo リストでは、dataType フィールドに PVC のデータ型が表示されます。これは、ファイルシステムまたはスナップショットです。nameSpace フィールドと pvcName フィールドには、PVC の名前空間と名前が表示されます。

  2. リストアクラスターで次のコマンドを実行して、applicationrestore オブジェクトをデプロイします。

    kubectl apply -f applicationrestore.yaml
  3. リストアクラスターで次のコマンドを実行して、リストアタスクのステータスをクエリします。

    kubectl describe applicationrestore <yourApplicationRestoreName> -n csdr

    予想される出力:

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

    リストアタスクのステータスが Inprogress から Completed に変わると、タスクが作成されます。

ステップ 4:バックアップセンターに関連するリソースを削除する

重要

作成したバックアップボールトは、他のクラスターでも使用されている可能性があります。そのため、バックアップセンターでは BackupLocation オブジェクトを削除することはできません。

バックアップスケジュールを削除する

以下のスケジュールを実行して、バックアップスケジュールの BackupSchedule リソースを削除し、バックアップスケジュールを停止します。

kubectl delete backupschedule <yourBackupSchedule> -n csdr

バックアップタスクまたは復元タスクを削除する

  1. 削除するタスクのクラスターに deleterequest.yaml という名前のファイルを作成し、以下の内容をファイルに追加します。

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

    次の表は、指定する必要のあるパラメーターについて説明しています。その他のパラメーターについては、デフォルト設定を保持します。

    パラメーター

    必須

    説明

    name

    はい

    削除リクエストの名前。

    • バックアップタスクを削除するには、バックアップタスクの ApplicationBackup 名 +「-dbr」の形式でリクエスト名を指定します。

    • 復元タスクを削除するには、復元タスクの ApplicationRestore 名 +「-dbr」の形式でリクエスト名を指定します。

    deleteObjectName

    はい

    削除するリソースの名前。

    deleteObjectType

    はい

    削除するリソースのタイプ。有効な値:

    • 「Backup」: バックアップタスクの ApplicationBackup オブジェクトと関連リソースを削除します。

    • 「Restore」: 復元タスクの ApplicationRestore オブジェクトと関連リソースを削除します。

    説明
    • バックアップタスクを削除しても、クラスターに作成されたバックアップには影響しません。

    • 復元タスクを削除しても、復元されたデータには影響しません。

  2. 削除するタスクのクラスターで、以下のコマンドを実行して deleterequest リソースをデプロイします。

    kubectl apply -f deleterequest.yaml
  3. 以下のコマンドを実行して、リソースの状態をクエリします。

    • 削除されたバックアップタスクをクエリする

      • 次のコマンドを実行して、バックアップタスクの状態をクエリします。

        kubectl get applicationbackup <yourApplicationBackupName> -n csdr

        期待される出力:

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

        この出力は、バックアップタスクのリソースが削除されたことを示しています。

      • 次のコマンドを実行して、deleterequest リソースの状態をクエリします。

        kubectl get deleterequest <yourApplicationBackupName-dbr> -n csdr

        期待される出力:

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

        この出力は、deleterequest リソースも削除されたことを示しています。

    • 削除された復元タスクを表示する

      • 次のコマンドを実行して、復元タスクの状態をクエリします。

        kubectl get applicationrestore <yourApplicationRestoreName> -n csdr

        期待される出力:

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

        この出力は、復元タスクのリソースが削除されたことを示しています。

      • 次のコマンドを実行して、deleterequest リソースの状態をクエリします。

        kubectl get deleterequest <yourApplicationRestoreName-dbr> -n csdr

        期待される出力:

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

        この出力は、deleterequest リソースも削除されたことを示しています。

参考資料