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

Container Service for Kubernetes:NAS データを復元するためのゴミ箱機能の使用

最終更新日:Jun 17, 2025

Container Network File System (CNFS) は、誤って削除されたファイルを復元するために使用されるゴミ箱機能をサポートしています。このトピックでは、CNFS のゴミ箱機能を使用して削除されたファイルを復元する方法について説明します。インターネットアクセスを持つ NGINX アプリケーションを例として使用します。

背景情報

この例では、CNFS StorageClass を使用してボリュームを要求し、ボリュームを NGINX アプリケーションのポッドにマウントしてから、index.html ファイルをボリュームから削除します。 index.html ファイルが削除されると、NGINX ウェルカムページにアクセスできなくなります。 NGINX ウェルカムページを回復するには、CNFS のゴミ箱機能を使用して index.html ファイルを復元します。

注意事項

  • 課金

    ゴミ箱機能の有効化には課金されません。ただし、ゴミ箱に一時的に保存されているファイルによって占有されるストレージ容量に対しては課金されます。ストレージ料金は、ファイルが削除される前のファイルのストレージタイプに基づいて計算されます。ストレージコストを削減するために、ファイルの保持期間を指定することをお勧めします。詳細については、「汎用型 NAS ファイルシステムの課金」および「汎用型 NAS ファイルシステムの課金」をご参照ください。

  • 権限

    ファイルシステムの所有者または承認された Resource Access Management (RAM) ユーザーのみがゴミ箱機能を使用できます。詳細については、「RAM ポリシーに基づいてアクセス制御を実行する」をご参照ください。

前提条件

手順

CNFS 用の StorageClass を使用してサンプルボリュームを作成し、そのボリュームを NGINX アプリケーションのポッドにマウントします。ボリュームに保存されている index.html ファイルを削除すると、NGINX ウェルカムページにアクセスできなくなります。 NGINX ウェルカムページを回復するには、CNFS のゴミ箱機能を使用して index.html ファイルを復元します。

手順 1:永続ボリューム要求 (PVC) を作成し、NGINX アプリケーションに関連付ける

  1. CNFS オブジェクトのステータスを表示します。

    CNFS オブジェクトが [使用可能] 状態であることを確認します。

    1. 次のコマンドを実行して、CNFS オブジェクトをクエリします。

      kubectl get cnfs

      予期される出力:

      NAME                                      AGE
      default-cnfs-nas-7938cef-20210907193713   21h
    2. 次のコマンドを実行して、CNFS オブジェクトのステータスを表示します。

      kubectl get cnfs default-cnfs-nas-7938cef-20210907193713 -o yaml | grep Available

      予期される出力:

      status: Available
  2. 次の YAML テンプレートを使用して PVC を作成します。

    重要

    CNFS StorageClass は、PVC の storageClassName フィールドで参照されます。この例では、PVC の名前は [cnfs-nas-pvc] で、storageClassName フィールドで参照される StorageClass は [alibabacloud-cnfs-nas] です。

    cat << EOF | kubectl apply -f -
    kind: PersistentVolumeClaim
    apiVersion: v1
    metadata:
      name: cnfs-nas-pvc
    spec:
      accessModes:
        - ReadWriteMany
      storageClassName: alibabacloud-cnfs-nas
      resources:
        requests:
          storage: 30Gi
    EOF
  3. 次の YAML テンプレートを使用してデプロイメントを作成します。

    重要

    デプロイメントは、前の手順で作成された PVC を参照するために使用されます。この例では、デプロイメントの名前は [cnfs-nas-deployment] で、参照される PVC の名前は [cnfs-nas-pvc] です。 PVC はコンテナー内の /app パスにマウントされ、http コンテナポート 8080 が開かれます。

    cat << EOF | kubectl apply -f -
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: cnfs-nas-deployment
      labels:
        app: nginx
    spec:
      selector:
        matchLabels:
          app: nginx
      template:
        metadata:
          labels:
            app: nginx
        spec:
          securityContext:
            runAsUser: 0
          containers:
          - name: nginx
            image: docker.io/bitnami/nginx:1.16.1-debian-9-r56
            volumeMounts:
            - mountPath: "/app"
              name: cnfs-nas-pvc
            ports:
            - containerPort: 8080
              name: http
          volumes:
          - name: cnfs-nas-pvc
            persistentVolumeClaim:
              claimName: cnfs-nas-pvc
    EOF
  4. 次の YAML テンプレートを使用して、デプロイメントのサービスを作成します。

    説明

    次の YAML テンプレートは、LoadBalancer サービスを作成するために使用されます。 Server Load Balancer (SLB) インスタンスは、パブリック IP アドレスを介してサービスを公開するために使用され、デプロイメントにアクセスするために使用できます。この例では、[nginx-default] という名前の LoadBalancer サービスが作成されます。このサービスは、インターネットからの HTTP リクエストを app:nginx ラベル が追加されたポッドに転送するために使用されます。

    cat << EOF | kubectl apply -f -
    apiVersion: v1
    kind: Service
    metadata:
      name: nginx-default
      labels:
        app: nginx
    spec:
      type: LoadBalancer
      externalTrafficPolicy: "Cluster"
      ports:
        - name: http
          port: 80
          targetPort: http
      selector:
        app: nginx
    EOF
  5. 実行中のポッドの /app パスに NGINX ウェルカムページファイルを書き込みます。

    1. 次のコマンドを実行して、ポッドをクエリします。

      kubectl get pod 

      予期される出力:

      NAME                                   READY   STATUS    RESTARTS   AGE
      cnfs-nas-deployment-597bc9fb45-cmkss   1/1     Running   0          3h23m
    2. 次のコマンドを実行して、cnfs-nas-deployment-597bc9fb45-cmkss ポッドの /app パスに切り替えます。

      kubectl exec cnfs-nas-deployment-597bc9fb45-cmkss -ti sh
      cd /app
    3. 次のコマンドを実行して、index.html ファイルを /app パスに書き込みます。

      cat << EOF >> index.html
      <!DOCTYPE html>
      <html>
      <head>
      <title>Welcome to nginx!</title>
      <style>
      html { color-scheme: light dark; }
      body { width: 35em; margin: 0 auto;
      font-family: Tahoma, Verdana, Arial, sans-serif; }
      </style>
      </head>
      <body>
      <h1>Welcome to nginx!</h1>
      <p>If you see this page, the nginx web server is successfully installed and
      working. Further configuration is required.</p>
      
      <p>For online documentation and support please refer to
      <a href="http://nginx.org/">nginx.org</a>.<br/>
      Commercial support is available at
      <a href="http://nginx.com/">nginx.com</a>.</p>
      
      <p><em>Thank you for using nginx.</em></p>
      </body>
      </html>
      EOF
      
      
    4. 次のコマンドを実行して、ポッドを終了します。

      exit
  6. 次のコマンドを実行して、SLB インスタンスのパブリック IP アドレスをクエリします。

    kubectl get svc

    予期される出力:

    NAME            TYPE           CLUSTER-IP        EXTERNAL-IP      PORT(S)        AGE
    nginx-default   LoadBalancer   192.168.XX.XX     47.115.XX.XX     80:30989/TCP   20h
  7. ブラウザのアドレスバーにパブリック IP アドレスを入力します。 NGINX ウェルカムページが表示されます。

    この例では、パブリック IP アドレスは 47.115.XX.XX です。访问nginx

手順 2:CNFS のゴミ箱機能を確認する

次の例では、CNFS によって管理される NAS ボリュームのゴミ箱から削除されたファイルを復元する方法について説明します。

  1. 次のコマンドを実行して、index.html ファイルを削除します。次に、ブラウザを更新して NGINX ウェルカムページを表示します。

    kubectl exec cnfs-nas-deployment-597bc9fb45-cmkss -- rm -rf /app/index.html

    nginx403

  2. ACK コンソール にログインします。左側のナビゲーションウィンドウで、[クラスター] をクリックします。

  3. [クラスター] ページで、管理するクラスターを見つけて、その名前をクリックします。左側のペインで、[ボリューム] > [永続ボリューム] を選択します。

  4. [永続ボリューム] ページで、永続ボリューム (PV) を見つけ、[アクション] 列の [ゴミ箱] をクリックします。

    デフォルトでは、CNFS によって管理される NAS ファイルシステムのゴミ箱機能は有効になっています。 NAS コンソールで index.html ファイルを復元できます。

    この例では、PV の名前は [nas-ecaf6018-5250-4e19-b570-5d9e657d23bc] です。NAS存储卷Nginx

  5. NAS ファイルシステムの [ゴミ箱] タブで、[削除されたファイルとディレクトリ] タブをクリックし、[アクション] 列の [復元] をクリックします。

    恢复删除文件

    [元のパスに復元] をクリックし、[OK] をクリックします。恢复至原路径

  6. ブラウザで NGINX ウェルカムページを更新します。 NGINX ウェルカムページが表示されます。

    これは、NGINX アプリケーションの index.html ファイルが復元されたことを示しています。访问nginx

関連情報

NAS のゴミ箱機能の詳細については、「ゴミ箱」をご参照ください。