Azure Container Storage プレビューで永続ボリュームをクローンする

Azure Container Storage の永続ボリュームはクローンすることができます。 クローンされたボリュームは、既存の永続ボリュームの複製となります。 クローンできるのは、同じストレージ・プール内にある同じサイズのボリュームのみです。

前提条件

  • この記事では、Azure CLI のバージョン 2.0.64 以降が必要です。 「Azure CLI のインストール方法」を参照してください。 Azure Cloud Shell を使用している場合は、最新バージョンが既にインストールされています。 Azure Cloud Shell ではなくローカルでコマンドを実行する場合は、必ず管理特権で実行してください。
  • クラスター ノード用の少なくとも 3 つの仮想マシン (VM) (それぞれが少なくとも 4 つの仮想 CPU (vCPU) を持つ) のノード プールを持つ Azure Kubernetes Service (AKS) クラスターが必要になります。
  • この記事では、AKS クラスターに Azure Container Storage を既にインストールしていることと、Azure Disksエフェメラル ディスク (ローカル ストレージ) を使用してストレージ プールと永続ボリューム要求 (PVC) を作成していることを前提としています。 Azure Elastic SAN では、ボリュームのサイズ変更はサポートされていません。

ボリュームを複製する

永続ボリュームをクローンするには、以下の手順に従います。

  1. 任意のテキスト エディターを使用して、code acstor-clonevolume.yaml などの YAML マニフェスト ファイルを作成します。

  2. 次のコードを貼り付けて、ファイルを保存します。 組み込みのストレージ クラスではボリュームのクローンがサポートされているため、dataSource では Azure Container Storage ストレージ クラスによって以前に作成された PVC を必ず参照してください。 たとえば、Azure Disk 用の PVC を作成した場合、それは azurediskpvc と呼ばれることがあります。 ストレージでは、元の PVC のサイズを指定します。

    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      name: pvc-acstor-cloning
    spec:
      accessModes:
        - ReadWriteOnce
      storageClassName: acstor-azuredisk
      resources:
        requests:
          storage: 100Gi
      dataSource:
        kind: PersistentVolumeClaim
        name: azurediskpvc
    
  3. YAML マニフェスト ファイルを適用して PVC をクローンします。

    kubectl apply -f acstor-clonevolume.yaml 
    

    次のような出力が表示されます。

    persistentvolumeclaim/pvc-acstor-cloning created
    
  4. 任意のテキスト エディターを使用して、code acstor-pod.yaml などの YAML マニフェスト ファイルを作成します。

  5. 次のコードを貼り付けて、ファイルを保存します。 claimName では、必ずクローンされた PVC を参照してください。

    kind: Pod
    apiVersion: v1
    metadata:
      name: fiopod2
    spec:
      nodeSelector:
        acstor.azure.com/io-engine: acstor
      volumes:
        - name: azurediskpv
          persistentVolumeClaim:
            claimName: pvc-acstor-cloning
      containers:
        - name: fio
          image: nixery.dev/shell/fio
          args:
            - sleep
            - "1000000"
          volumeMounts:
            - mountPath: "/volume"
              name: azurediskpv
    
  6. YAML マニフェスト ファイルを適用して新しいポッドをデプロイします。

    kubectl apply -f acstor-pod.yaml
    

    次のような出力が表示されます。

    pod/fiopod2 created
    
  7. ポッドが実行されていること、および永続ボリューム要求がポッドに正常にバインドされていることを確認します。

    kubectl describe pod fiopod2
    kubectl describe pvc azurediskpvc
    

関連項目