Share via


佈建適用於 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 中佈建雙重通訊協定磁碟區

本節說明如何以靜態方式向 Kubernetes 公開 Azure NetApp Files 雙重通訊協定磁碟區。 我們提供了 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 複製進來。 此資訊清單會針對 100Gi 儲存體和 ReadWriteMany 存取模式建立名為 pvc-nfs 的 PVC,並符合您所建立的 PV。

    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 命令,驗證永續性磁碟區宣告的狀態繫結

    kubectl describe pvc pvc-nfs
    

使用 NFS 在 Pod 內掛接

  1. 建立名為 nginx-nfs.yaml 的檔案,然後將下列 YAML 複製進來。 此資訊清單會定義使用永續性磁碟區宣告的 nginx Pod。

    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 命令建立 Pod:

    kubectl apply -f nginx-nfs.yaml
    
  3. 使用 kubectl apply 命令,驗證 Pod 為執行中

    kubectl describe pod nginx-nfs
    
  4. 使用 kubectl exec 連線至 Pod,然後使用 df -h 檢查是否已掛接磁碟區,以驗證已在 Pod 中掛接您的磁碟區。

    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 支援許多功能。 如需詳細資訊,請參閱