Azure Kubernetes Service 用の Azure NetApp Files のデュアルプロトコル ボリュームをプロビジョニングする

Azure Kubernetes Service 用の Azure NetApp Files を構成した後に、Azure Kubernetes Service 用の Azure NetApp Files ボリュームをプロビジョニングできます。

Azure NetApp Files では、NFS (NFSv3 または NFSv4.1)、SMB、デュアル プロトコル (NFSv3 と SMB、または NFSv4.1 と SMB) を使用したボリュームがサポートされています。

この記事では、NFS または SMB を使用し、デュアルプロトコル アクセス用のボリュームを静的にプロビジョニングする方法について説明します。

開始する前に

Azure Kubernetes Service でデュアルプロトコル ボリュームをプロビジョニングする

このセクションでは、Azure NetApp Files デュアルプロトコル ボリュームを Kubernetes に静的に公開する方法について説明します。 手順は、SMB と NFS プロトコル両方に対して提供されています。 SMB 経由で Windows ワーカー ノードに、NFS 経由で Linux ワーカー ノードに同じボリュームを公開できます。

NFS の永続ボリュームを作成する

  1. 後で使用するために変数を定義します。 myresourcegroupmyaccountnamemypool1myvolname を、デュアルプロトコル ボリュームの適切な値に置換します。

    RESOURCE_GROUP="myresourcegroup"
    ANF_ACCOUNT_NAME="myaccountname"
    POOL_NAME="mypool1"
    VOLUME_NAME="myvolname"
    
  2. az netappfiles volume show コマンドを使用して、ボリュームの詳細を一覧表示します。

    az netappfiles volume show \
        --resource-group $RESOURCE_GROUP \
        --account-name $ANF_ACCOUNT_NAME \
        --pool-name $POOL_NAME \
        --volume-name $VOLUME_NAME -o JSON
    

    次の出力は、実際の値で上記のコマンドを実行した例です。

    {
      ...
      "creationToken": "myfilepath2",
      ...
      "mountTargets": [
        {
          ...
          "ipAddress": "10.0.0.4",
          ...
        }
      ],
      ...
    }
    
  3. pv-nfs.yaml という名前のファイルを作成し、そこに以下の YAML をコピーします。 サーバーが前のステップの出力 IP アドレスと一致し、パスが上記の出力 creationToken と一致していることを確認します。 容量は、ステップ 2 のボリューム サイズと一致している必要もあります。

    apiVersion: v1
    kind: PersistentVolume
    metadata:
      name: pv-nfs
    spec:
      capacity:
        storage: 100Gi
      accessModes:
        - ReadWriteMany
      mountOptions:
        - vers=3
      nfs:
        server: 10.0.0.4
        path: /myfilepath2
    
  4. kubectl apply コマンドを使用して永続ボリュームを作成します。

    kubectl apply -f pv-nfs.yaml
    
  5. kubectl describe コマンドを使用して、永続ボリュームが使用可能な状態であることを確認します。

    kubectl describe pv pv-nfs
    

NFS の永続ボリューム要求を作成する

  1. pvc-nfs.yaml という名前のファイルを作成し、そこに以下の YAML をコピーします。 このマニフェストでは、作成した PV と一致する 100Gi ストレージおよび ReadWriteMany アクセス モード用の pvc-nfs という名前の PVC を作成します。

    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      name: pvc-nfs
    spec:
      accessModes:
        - ReadWriteMany
      storageClassName: ""
      resources:
        requests:
          storage: 100Gi
    
  2. kubectl apply コマンドを使用して永続ボリューム要求を作成します。

    kubectl apply -f pvc-nfs.yaml
    
  3. kubectl describe コマンドを使用して、永続ボリューム要求の状態Bound であることを確認します。

    kubectl describe pvc pvc-nfs
    

NFS を使用してポッド内にマウントする

  1. nginx-nfs.yaml という名前のファイルを作成し、そこに以下の YAML をコピーします。 このマニフェストは、永続ボリューム要求を使用する nginx ポッドを定義します。

    kind: Pod
    apiVersion: v1
    metadata:
      name: nginx-nfs
    spec:
      containers:
      - image: mcr.microsoft.com/oss/nginx/nginx:1.15.5-alpine
        name: nginx-nfs
        command:
        - "/bin/sh"
        - "-c"
        - while true; do echo $(date) >> /mnt/azure/outfile; sleep 1; done
        volumeMounts:
        - name: disk01
          mountPath: /mnt/azure
      volumes:
      - name: disk01
        persistentVolumeClaim:
          claimName: pvc-nfs
    
  2. kubectl applykubectl-apply コマンドを使用してポッドを作成します。

    kubectl apply -f nginx-nfs.yaml
    
  3. kubectl apply コマンドを使用してポッドが Running であることを確認します。

    kubectl describe pod nginx-nfs
    
  4. kubectl exec を使用してボリュームがポッドにマウントされていることを確認してポッドに接続してから、df -h を使用してボリュームがマウントされているかどうかを確認します。

    kubectl exec -it nginx-nfs -- sh
    
    / # df -h
    Filesystem             Size  Used Avail Use% Mounted on
    ...
    10.0.0.4:/myfilepath2  100T  384K  100T   1% /mnt/azure
    ...
    

次のステップ

Astra Trident では、Azure NetApp Files の多くの機能がサポートされています。 詳細については、次のトピックを参照してください。