Share via


Bereitstellen von Azure NetApp Files-Volumes mit dualem Protokoll in Azure Kubernetes Service

Nachdem Sie Azure NetApp Files für Azure Kubernetes Service konfiguriert haben, können Sie Azure NetApp Files-Volumes für Azure Kubernetes Service bereitstellen.

Azure NetApp Files unterstützt Volumes unter Verwendung von NFS (NFSv3 oder NFSv4.1), SMB oder Dual-Protokoll (NFSv3 and SMB oder NFSv4.1 and SMB).

In diesem Artikel wird die statische Bereitstellung von Volumes für den Dual-Protokoll-Zugriff mit NFS oder SMB beschrieben.

Voraussetzungen

Bereitstellen eines Volumes mit dualem Protokoll in Azure Kubernetes Service

In diesem Abschnitt wird beschrieben, wie Sie ein Azure NetApp Files-Volume mit doppeltem Protokoll statisch für Kubernetes verfügbar machen. Anweisungen werden sowohl für SMB- als auch für NFS-Protokolle bereitgestellt. Sie können dasselbe Volume über SMB für Windows-Workerknoten und über NFS für Linux-Workerknoten verfügbar machen.

Erstellen des persistenten Volumes für NFS

  1. Definieren Sie Variablen zur späteren Verwendung. Ersetzen Sie myresourcegroup, myaccountname, mypool1 und myvolname durch einen entsprechenden Wert aus Ihrem Dual-Protokoll-Volume.

    RESOURCE_GROUP="myresourcegroup"
    ANF_ACCOUNT_NAME="myaccountname"
    POOL_NAME="mypool1"
    VOLUME_NAME="myvolname"
    
  2. Listen Sie die Details Ihres Volumes mithilfe des Befehls az netappfiles volume show auf.

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

    Die folgende Ausgabe ist ein Beispiel für den obigen Befehl, der mit echten Werten ausgeführt wird.

    {
      ...
      "creationToken": "myfilepath2",
      ...
      "mountTargets": [
        {
          ...
          "ipAddress": "10.0.0.4",
          ...
        }
      ],
      ...
    }
    
  3. Erstellen Sie eine Datei namens „pv-nfs.yaml“, und fügen Sie den folgenden YAML-Code ein. Stellen Sie sicher, dass der Server mit der Ausgabe-IP-Adresse aus dem vorherigen Schritt und der Pfad mit der Ausgabe von creationToken oben übereinstimmt. Die Kapazität muss auch mit der Volumegröße aus Schritt 2 übereinstimmen.

    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. Erstellen Sie das persistente Volume mit dem Befehl kubectl apply:

    kubectl apply -f pv-nfs.yaml
    
  5. Überprüfen Sie mithilfe des Befehls kubectl describe, ob der Status des persistenten Volumes Verfügbar ist:

    kubectl describe pv pv-nfs
    

Erstellen eines Anspruchs auf ein persistentes Volume für NFS

  1. Erstellen Sie eine Datei namens „pvc-nfs.yaml“, und fügen Sie den folgenden YAML-Code ein. Mit diesem Manifest wird einen PVC mit dem Namen pvc-nfs für den Speicher- und ReadWriteMany-Zugriffsmodus 100Gi erstellt, der dem von Ihnen erstellten PV entspricht.

    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      name: pvc-nfs
    spec:
      accessModes:
        - ReadWriteMany
      storageClassName: ""
      resources:
        requests:
          storage: 100Gi
    
  2. Erstellen Sie den Anspruch des persistenten Volumes mit dem Befehl kubectl apply:

    kubectl apply -f pvc-nfs.yaml
    
  3. Überprüfen Sie, ob der Status des Anspruchs auf persistentes Volume Gebunden ist, indem Sie den Befehl kubectl describe verwenden:

    kubectl describe pvc pvc-nfs
    

Einbinden in einen Pod mithilfe von NFS

  1. Erstellen Sie eine Datei namens „nginx-nfs.yaml“, und fügen Sie den folgenden YAML-Code ein. Mit diesem Manifest wird ein nginx-Pod definiert, der den Anspruch auf persistentes Volume verwendet.

    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. Erstellen Sie den Pod mit dem Befehl kubectl applykubectl-apply:

    kubectl apply -f nginx-nfs.yaml
    
  3. Überprüfen Sie, ob der Pod ausgeführt wird, indem Sie den Befehl kubectl apply verwenden:

    kubectl describe pod nginx-nfs
    
  4. Stellen Sie sicher, dass Ihr Volume in den Pod eingebunden wurde, indem Sie kubectl exec verwenden, um eine Verbindung mit dem Pod herzustellen, und überprüfen Sie dann mit df -h, ob das Volume eingebunden ist.

    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
    ...
    

Nächste Schritte

Astra Trident unterstützt zahlreiche Features für Azure NetApp Files. Weitere Informationen finden Sie unter