Share via


Bereitstellen von Azure NetApp Files-SMB-Volumes 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).

Statisches Konfigurieren für Anwendungen, die SMB-Volumes verwenden

In diesem Abschnitt wird beschrieben, wie Sie ein SMB-Volume auf Azure NetApp Files erstellen und das Volume statisch für Kubernetes verfügbar machen, damit eine Containeranwendung verwendet werden kann.

Erstellen eines SMB-Volumes

  1. Definieren Sie Variablen zur späteren Verwendung. Ersetzen Sie myresourcegroup, mylocation, myaccountname, mypool1, premium, myfilepath, myvolsize, myvolname und virtnetid durch einen entsprechenden Wert aus Ihrem Konto und Ihrer Umgebung. Der Dateipfad muss innerhalb aller ANF-Konten eindeutig sein.

    RESOURCE_GROUP="myresourcegroup"
    LOCATION="mylocation"
    ANF_ACCOUNT_NAME="myaccountname"
    POOL_NAME="mypool1"
    SERVICE_LEVEL="premium" # Valid values are standard, premium, and ultra
    UNIQUE_FILE_PATH="myfilepath"
    VOLUME_SIZE_GIB="myvolsize"
    VOLUME_NAME="myvolname"
    VNET_ID="vnetId"
    SUBNET_ID="anfSubnetId"
    
  2. Erstellen Sie ein Volume mithilfe des Befehls az netappfiles volume create.

    az netappfiles volume create \
        --resource-group $RESOURCE_GROUP \
        --location $LOCATION \
        --account-name $ANF_ACCOUNT_NAME \
        --pool-name $POOL_NAME \
        --name "$VOLUME_NAME" \
        --service-level $SERVICE_LEVEL \
        --vnet $VNET_ID \
        --subnet $SUBNET_ID \
        --usage-threshold $VOLUME_SIZE_GIB \
        --file-path $UNIQUE_FILE_PATH \
        --protocol-types CIFS
    

Erstellen eines Geheimnisses mit den Domänenanmeldeinformationen

  1. Erstellen Sie ein Geheimnis in Ihrem AKS-Cluster, um mit dem Befehl kubectl create secret auf den Active Directory (AD)-Server zuzugreifen. Dieses Geheimnis wird vom persistenten Kubernetes-Volume verwendet, um auf das Azure NetApp Files-SMB-Volume zuzugreifen. Verwenden Sie den folgenden Befehl, um das Geheimnis zu erstellen. Ersetzen Sie dabei USERNAME durch Ihren Benutzernamen, PASSWORD durch Ihr Kennwort und DOMAIN_NAME durch den Domänennamen für Ihr AD.

        kubectl create secret generic smbcreds --from-literal=username=USERNAME --from-literal=password="PASSWORD" --from-literal=domain='DOMAIN_NAME'
    
  2. Überprüfen Sie, ob das Geheimnis erstellt wurde.

       kubectl get secret
       NAME       TYPE     DATA   AGE
       smbcreds   Opaque   2      20h
    

Installieren eines SMB-CSI-Treibers

Sie müssen einen CSI (Container Storage Interface)-Treiber installieren, um ein Kubernetes-SMB-PersistentVolumezu erstellen.

  1. Installieren Sie den SMB-CSI-Treiber in Ihrem Cluster mithilfe von Helm. Stellen Sie sicher, dass Sie die Option windows.enabled auf true festlegen:

    helm repo add csi-driver-smb https://raw.githubusercontent.com/kubernetes-csi/csi-driver-smb/master/charts   
    helm install csi-driver-smb csi-driver-smb/csi-driver-smb --namespace kube-system --version v1.13.0 --set windows.enabled=true
    

    Weitere Methoden zur Installation des SMB CSI-Treibers finden Sie unter Installieren der SMB-CSI-Treiber-Hauptversion auf einem Kubernetes-Cluster.

  2. Überprüfen Sie mithilfe des Befehls kubectl get pods, ob der csi-smb-Controllerpod ausgeführt wird und jeder Workerknoten über einen Pod verfügt, der ausgeführt wird:

    kubectl get pods -n kube-system | grep csi-smb
    
    csi-smb-controller-68df7b4758-xf2m9   3/3     Running   0          3m46s
    csi-smb-node-s6clj                    3/3     Running   0          3m47s
    csi-smb-node-win-tfxvk                3/3     Running   0          3m47s
    

Erstellen des persistenten Volumes

  1. Listen Sie die Details Ihres Volumes mithilfe von az netappfiles volume show auf. Ersetzen Sie die Variablen durch geeignete Werte aus Ihrem Azure NetApp Files-Konto und Ihrer Umgebung, sofern sie nicht in einem vorherigen Schritt definiert wurden.

    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": "myvolname",
      ...
      "mountTargets": [
        {
          ...
          "
             "smbServerFqdn": "ANF-1be3.contoso.com",
          ...
        }
      ],
      ...
    }
    
  2. Erstellen Sie eine Datei namens „pv-smb.yaml“, und fügen Sie den folgenden YAML-Code ein. Ersetzen Sie bei Bedarf myvolname durch das creationToken und ANF-1be3.contoso.com\myvolname durch den Wert von smbServerFqdn aus dem vorherigen Schritt. Stellen Sie sicher, dass Sie Ihr AD-Anmeldeinformationsgeheimnis zusammen mit dem Namespace, in dem sich das Geheimnis befindet und den Sie in einem früheren Schritt erstellt haben, angeben.

    apiVersion: v1
    kind: PersistentVolume
    metadata:
      name: anf-pv-smb
    spec:
      storageClassName: ""
      capacity:
        storage: 100Gi
      accessModes:
        - ReadWriteMany
      persistentVolumeReclaimPolicy: Retain
      mountOptions:
        - dir_mode=0777
        - file_mode=0777
        - vers=3.0
      csi:
        driver: smb.csi.k8s.io
        readOnly: false
        volumeHandle: myvolname  # make sure it's a unique name in the cluster
        volumeAttributes:
          source: \\ANF-1be3.contoso.com\myvolname
        nodeStageSecretRef:
          name: smbcreds
          namespace: default
    
  3. Erstellen Sie das persistente Volume mit dem Befehl kubectl apply:

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

    kubectl describe pv pv-smb
    

Erstellen eines Anspruchs auf ein persistentes Volume

  1. Erstellen Sie eine Datei namens pvc-smb.yaml, und fügen Sie den folgenden YAML-Code ein.

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

    kubectl apply -f pvc-smb.yaml
    

    Überprüfen Sie mit dem Befehl kubectl describe den Status des persistenten Volumeanspruchs als Gebunden:

    kubectl describe pvc pvc-smb
    

Einbinden mit einem Pod

  1. Erstellen Sie eine Datei namens „iis-smb.yaml“, und fügen Sie den folgenden YAML-Code ein. Diese Datei wird verwendet, um einen Internetinformationsdienste-Pod zu erstellen, um das Volume im Pfad /inetpub/wwwrooteinzubinden.

    apiVersion: v1
    kind: Pod 
    metadata:
      name: iis-pod
      labels:
         app: web
    spec:
      nodeSelector:
        "kubernetes.io/os": windows
      volumes:
      - name: smb
        persistentVolumeClaim:
          claimName: anf-pvc-smb 
      containers:
      - name: web
        image: mcr.microsoft.com/windows/servercore/iis:windowsservercore 
        resources:
          limits:
            cpu: 1
            memory: 800M
        ports:
          - containerPort: 80
        volumeMounts:
        - name: smb
          mountPath: "/inetpub/wwwroot"
          readOnly: false
    
  2. Erstellen Sie den Pod mit dem Befehl kubectl apply:

    kubectl apply -f iis-smb.yaml
    
  3. Vergewissern Sie sich mit dem Befehl kubectl describe, dass der Pod ausgeführt und /inetpub/wwwroot aus SMB eingebunden wird:

    kubectl describe pod iis-pod
    

    Die Ausgabe des Befehls sieht in etwa wie im folgenden Beispiel aus:

    Name:         iis-pod
    Namespace:    default
    Priority:     0
    Node:         akswin000001/10.225.5.246
    Start Time:   Fri, 05 May 2023 09:34:41 -0400
    Labels:       app=web
    Annotations:  <none>
    Status:       Running
    IP:           10.225.5.248
    IPs:
      IP:  10.225.5.248
    Containers:
      web:
        Container ID:   containerd://39a1659b6a2b6db298df630237b2b7d959d1b1722edc81ce9b1bc7f06237850c
        Image:          mcr.microsoft.com/windows/servercore/iis:windowsservercore
        Image ID:       mcr.microsoft.com/windows/servercore/iis@sha256:0f0114d0f6c6ee569e1494953efdecb76465998df5eba951dc760ac5812c7409
        Port:           80/TCP
        Host Port:      0/TCP
        State:          Running
          Started:      Fri, 05 May 2023 09:34:55 -0400
        Ready:          True
        Restart Count:  0
        Limits:
          cpu:     1
          memory:  800M
        Requests:
          cpu:        1
          memory:     800M
        Environment:  <none>
        Mounts:
          /inetpub/wwwroot from smb (rw)
          /var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-mbnv8 (ro)
    ...
    
  4. Vergewissern Sie sich, dass Ihr Volume auf dem Pod eingebunden wurde, indem Sie den Befehl kubectl exec verwenden, um eine Verbindung mit dem Pod herzustellen, und verwenden Sie dann den Befehl dir im richtigen Verzeichnis, um zu überprüfen, ob das Volume eingebunden ist und die Größe der Größe des bereitgestellten Volumes entspricht.

    kubectl exec -it iis-pod –- cmd.exe
    

    Die Ausgabe des Befehls sieht in etwa wie im folgenden Beispiel aus:

    Microsoft Windows [Version 10.0.20348.1668]
    (c) Microsoft Corporation. All rights reserved.
    
    C:\>cd /inetpub/wwwroot
    
    C:\inetpub\wwwroot>dir
     Volume in drive C has no label.
     Volume Serial Number is 86BB-AA55
    
     Directory of C:\inetpub\wwwroot
    
    05/04/2023  08:15 PM    <DIR>          .
    05/04/2023  08:15 PM    <DIR>          ..
               0 File(s)              0 bytes
               2 Dir(s)  107,373,838,336 bytes free
    

Dynamisches Konfigurieren für Anwendungen, die SMB-Volumes verwenden

Dieser Abschnitt geht näher darauf ein, wie Sie mit Astra Trident ein SMB-Volume dynamisch auf Azure NetApp Files erstellen und es automatisch in eine containerisierte Anwendung einbinden.

Installieren von Astra Trident

Um SMB-Volumes dynamisch bereitzustellen, müssen Sie Astra Trident Version 22.10 oder höher installieren. Für die dynamische Bereitstellung von SMB-Volumes sind Windows-Workerknoten erforderlich.

Astra Trident ist der dynamische Speicherbereitstellungsdienst von NetApp, der speziell für Kubernetes entwickelt wurde. Vereinfachen Sie die Speichernutzung für Kubernetes-Anwendungen mithilfe von CSI-Treibern (Container Storage Interface) von Astra Trident nach Industriestandard. Astra Trident wird in Kubernetes-Clustern als Pods bereitgestellt und bietet dynamische Speicherorchestrierungsdienste für Ihre Kubernetes-Workloads.

Trident kann mit dem Trident-Operator (manuell oder mit Helm) oder mit tridentctl installiert werden. Weitere Informationen zu diesen Installationsmethoden und deren Funktionsweise finden Sie im Installationsleitfaden.

Installieren von Astra Trident mithilfe von Helm

Helm muss auf Ihrer Arbeitsstation installiert sein, damit Sie Astra Trident mit dieser Methode installieren können. Weitere Methoden zum Installieren von Astra Trident finden Sie im Astra Trident-Installationsleitfaden. Wenn Sie Windows-Workerknoten im Cluster haben, stellen Sie sicher, dass Sie Windows mit einer beliebigen Installationsmethode aktivieren.

  1. Führen Sie die folgenden Befehle aus, um Astra Trident mit Helm für einen Cluster nur mit Windows-Workerknoten zu installieren:

    helm repo add netapp-trident https://netapp.github.io/trident-helm-chart
    
    helm install trident netapp-trident/trident-operator --version 23.04.0  --create-namespace --namespace trident –-set windows=true
    

    Die Ausgabe des Befehls sieht in etwa wie im folgenden Beispiel aus:

    NAME: trident
    LAST DEPLOYED: Fri May  5 14:23:05 2023
    NAMESPACE: trident
    STATUS: deployed
    REVISION: 1
    TEST SUITE: None
    NOTES:
    Thank you for installing trident-operator, which will deploy and manage NetApp's Trident CSI
    storage provisioner for Kubernetes.
    
    Your release is named 'trident' and is installed into the 'trident' namespace.
    Please note that there must be only one instance of Trident (and trident-operator) in a Kubernetes cluster.
    
    To configure Trident to manage storage resources, you will need a copy of tridentctl, which is available in pre-packaged Trident releases.  You may find all Trident releases and source code online at https://github.com/NetApp/trident.
    
    To learn more about the release, try:
    
      $ helm status trident
      $ helm get all trident
    
  2. Führen Sie den folgenden Befehl kubectl describe aus, um zu überprüfen, ob Astra Trident erfolgreich installiert wurde:

    kubectl describe torc trident
    

    Die Ausgabe des Befehls sieht in etwa wie im folgenden Beispiel aus:

    Name:         trident
    Namespace:    
    Labels:       app.kubernetes.io/managed-by=Helm
    Annotations:  meta.helm.sh/release-name: trident
                  meta.helm.sh/release-namespace: trident
    API Version:  trident.netapp.io/v1
    Kind:         TridentOrchestrator
    Metadata:
        ...
    Spec:
      IPv6:                  false
      Autosupport Image:     docker.io/netapp/trident-autosupport:23.04
      Autosupport Proxy:     <nil>
      Disable Audit Log:     true
      Enable Force Detach:   false
      Http Request Timeout:  90s
      Image Pull Policy:     IfNotPresent
      k8sTimeout:            0
      Kubelet Dir:           <nil>
      Log Format:            text
      Log Layers:            <nil>
      Log Workflows:         <nil>
      Namespace:             trident
      Probe Port:            17546
      Silence Autosupport:   false
      Trident Image:         docker.io/netapp/trident:23.04.0
      Windows:               true
    Status:
      Current Installation Params:
        IPv6:                       false
        Autosupport Hostname:       
        Autosupport Image:          docker.io/netapp/trident-autosupport:23.04
        Autosupport Proxy:          
        Autosupport Serial Number:  
        Debug:                      false
        Disable Audit Log:          true
        Enable Force Detach:        false
        Http Request Timeout:       90s
        Image Pull Policy:          IfNotPresent
        Image Pull Secrets:
        Image Registry:       
        k8sTimeout:           30
        Kubelet Dir:          /var/lib/kubelet
        Log Format:           text
        Log Layers:           
        Log Level:            info
        Log Workflows:        
        Probe Port:           17546
        Silence Autosupport:  false
        Trident Image:        docker.io/netapp/trident:23.04.0
      Message:                Trident installed
      Namespace:              trident
      Status:                 Installed
      Version:                v23.04.0
    Events:
      Type    Reason      Age   From                        Message
      ----    ------      ----  ----                        -------
      Normal  Installing  74s   trident-operator.netapp.io  Installing Trident
      Normal  Installed   46s   trident-operator.netapp.io  Trident installed
    

Erstellen eines Back-Ends

Es muss ein Back-End angelegt werden, um Astra Trident über das Azure NetApp Files-Abonnement und den Ort zu informieren, an dem Volumes erstellt werden müssen. Weitere Informationen zu Back-Ends finden Sie unter Azure NetApp Files Back-End-Konfigurationsoptionen und Beispiele.

  1. Erstellen Sie eine Datei namens „backend-secret-smb.yaml“, und fügen Sie den folgenden YAML-Code ein. Ändern Sie die Werte Client ID und clientSecret in die richtigen Werte für Ihre Umgebung.

    apiVersion: v1
    kind: Secret
    metadata:
      name: backend-tbc-anf-secret
    type: Opaque
    stringData:
      clientID: abcde356-bf8e-fake-c111-abcde35613aa
      clientSecret: rR0rUmWXfNioN1KhtHisiSAnoTherboGuskey6pU
    
  2. Erstellen Sie eine Datei namens „backend-anf-smb.yaml“, und fügen Sie den folgenden YAML-Code ein. Ändern Sie die Werte ClientID, clientSecret, subscriptionID, tenantID, location und serviceLevel in die richtigen Werte für Ihre Umgebung. tenantID, clientID und clientSecret sind in einer Anwendungsregistrierung in Microsoft Entra ID mit ausreichenden Berechtigungen für den Azure NetApp Files-Dienst zu finden. Die Anwendungsregistrierung umfasst die von Azure vordefinierte Rolle „Besitzer“ oder „Mitwirkender“. Ein Azure-Standort muss mindestens ein delegiertes Subnetz enthalten. Der serviceLevel muss mit dem serviceLevel für den Kapazitätspool konfigurierten in Konfigurieren von Azure NetApp Files für AKS-Workloads übereinstimmen.

    apiVersion: trident.netapp.io/v1
    kind: TridentBackendConfig
    metadata:
      name: backend-tbc-anf-smb
    spec:
      version: 1
      storageDriverName: azure-netapp-files
      subscriptionID: 12abc678-4774-fake-a1b2-a7abcde39312
      tenantID: a7abcde3-edc1-fake-b111-a7abcde356cf
      location: eastus
      serviceLevel: Premium
      credentials:
        name: backend-tbc-anf-secret
      nasType: smb
    
  3. Erstellen Sie das Geheimnis und das Back-End mithilfe des Befehls kubectl apply.

    Erstellen des Geheimnisses:

    kubectl apply -f backend-secret.yaml -n trident
    

    Die Ausgabe des Befehls sieht in etwa wie im folgenden Beispiel aus:

    secret/backend-tbc-anf-secret created
    

    Erstellen des Back-Ends:

    kubectl apply -f backend-anf.yaml -n trident
    

    Die Ausgabe des Befehls sieht in etwa wie im folgenden Beispiel aus:

    tridentbackendconfig.trident.netapp.io/backend-tbc-anf created
    
  4. Führen Sie den folgenden Befehl aus, um sich zu vergewissern, dass das Back-End ordnungsgemäß erstellt wurde:

    kubectl get tridentbackends -n trident
    

    Die Ausgabe des Befehls sieht in etwa wie im folgenden Beispiel aus:

    NAME        BACKEND               BACKEND UUID
    tbe-9shfq   backend-tbc-anf-smb   09cc2d43-8197-475f-8356-da7707bae203
    

Erstellen eines Geheimnisses mit den Domänenanmeldeinformationen für SMB

  1. Erstellen Sie ein Geheimnis in Ihrem AKS-Cluster, um mit dem Befehl kubectl create secret auf den AD-Server zuzugreifen. Dieses Informationen werden vom persistenten Kubernetes-Volume verwendet, um auf das Azure NetApp Files-SMB-Volume zuzugreifen. Verwenden Sie den folgenden Befehl. Ersetzen Sie DOMAIN_NAME\USERNAME dabei durch Ihren Domänennamen und Benutzernamen und PASSWORD durch Ihr Kennwort.

    kubectl create secret generic smbcreds --from-literal=username=DOMAIN_NAME\USERNAME –from-literal=password="PASSWORD" 
    
  2. Vergewissern Sie sich, dass das Geheimnis erstellt wurde.

    kubectl get secret
    

    Die Ausgabe ähnelt dem folgenden Beispiel:

    NAME       TYPE     DATA   AGE
    smbcreds   Opaque   2      2h
    

Erstellen einer Speicherklasse

Mit einer Speicherklasse wird festgelegt, wie eine Speichereinheit dynamisch in einem persistenten Volume erstellt wird. Um Azure NetApp Files-Volumes zu nutzen, muss eine Speicherklasse erstellt werden.

  1. Erstellen Sie eine Datei namens „anf-storageclass-smb.yaml“, und fügen Sie den folgenden YAML-Code ein.

    apiVersion: storage.k8s.io/v1
    kind: StorageClass
    metadata:
      name: anf-sc-smb
    provisioner: csi.trident.netapp.io
    allowVolumeExpansion: true
    parameters:
      backendType: "azure-netapp-files"
      trident.netapp.io/nasType: "smb"
      csi.storage.k8s.io/node-stage-secret-name: "smbcreds"
      csi.storage.k8s.io/node-stage-secret-namespace: "default"
    
  2. Verwenden Sie den Befehl kubectl apply, um die Speicherklasse zu erstellen:

    kubectl apply -f anf-storageclass-smb.yaml
    

    Die Ausgabe des Befehls sieht in etwa wie im folgenden Beispiel aus:

    storageclass/anf-sc-smb created
    
  3. Mit dem Befehl kubectl get können Sie den Status der Speicherklasse anzeigen:

    kubectl get sc anf-sc-smb
    NAME         PROVISIONER             RECLAIMPOLICY   VOLUMEBINDINGMODE   ALLOWVOLUMEEXPANSION   AGE
    anf-sc-smb   csi.trident.netapp.io   Delete          Immediate           true                   13s
    

Erstellen eines PVC

Ein Anspruch auf persistente Volumes (Persistent Volume Claim, PVC) ist eine von einem Benutzer gestellte Anforderung an Speicher. Nach der Erstellung eines Anspruchs für ein persistentes Volume erstellt Astra Trident automatisch einen Azure NetApp Files SMB-Anteil und machen diesen für Kubernetes-Workloads verfügbar.

  1. Erstellen Sie eine Datei namens anf-pvc-smb.yaml, und kopieren Sie den folgenden YAML. In diesem Beispiel wird ein 100-GiB-Volume mit ReadWriteMany-Zugriff erstellt, und die in Erstellen einer Speicherklasse erstellte Speicherklasse wird verwendet.

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

    kubectl apply -f anf-pvc-smb.yaml
    

    Die Ausgabe des Befehls sieht in etwa wie im folgenden Beispiel aus:

    persistentvolumeclaim/anf-pvc-smb created
    
  3. Um Informationen zum Anspruch für ein persistentes Volume anzuzeigen, führen Sie den Befehl kubectl get aus:

    kubectl get pvc
    

    Die Ausgabe des Befehls sieht in etwa wie im folgenden Beispiel aus:

    NAME          STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS   AGE
    anf-pvc-smb   Bound    pvc-209268f5-c175-4a23-b61b-e34faf5b6239   100Gi      RWX            anf-sc-smb     5m38s
    
  4. Führen Sie den folgenden Befehl kubectl get aus, um das von Astra Trident erstellte persistente Volume anzuzeigen:

    kubectl get pv
    NAME                                       CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS   CLAIM                 STORAGECLASS   REASON   AGE
    pvc-209268f5-c175-4a23-b61b-e34faf5b6239   100Gi      RWX            Delete           Bound    default/anf-pvc-smb   anf-sc-smb              5m52s
    

Verwenden des persistenten Volumes

Nachdem der PVC erstellt wurde, kann ein Pod für den Zugriff auf das Azure NetApp Files-Volume gestartet werden. Mithilfe des folgenden Manifests kann ein Internetinformationsdienst (IIS)-Pod definiert werden, der den im vorherigen Schritt erstellten Azure NetApp Files SMB-Anteil einbindet. In diesem Beispiel wird das Volume unter /inetpub/wwwroot eingebunden.

  1. Erstellen Sie eine Datei namens anf-iis-pod.yaml, und fügen Sie den folgenden YAML-Code ein:

    apiVersion: v1
    kind: Pod 
    metadata:
      name: iis-pod
      labels:
         app: web
    spec:
      nodeSelector:
        "kubernetes.io/os": windows
      volumes:
      - name: smb
        persistentVolumeClaim:
          claimName: anf-pvc-smb 
      containers:
      - name: web
        image: mcr.microsoft.com/windows/servercore/iis:windowsservercore 
        resources:
          limits:
            cpu: 1
            memory: 800M
        ports:
          - containerPort: 80
        volumeMounts:
        - name: smb
          mountPath: "/inetpub/wwwroot"
          readOnly: false
    
  2. Erstellen Sie die Bereitstellung mit dem Befehl kubectl apply:

    kubectl apply -f anf-iis-deploy-pod.yaml
    

    Die Ausgabe des Befehls sieht in etwa wie im folgenden Beispiel aus:

    pod/iis-pod created
    

    Vergewissern Sie sich mit dem Befehl kubectl describe, dass der Pod ausgeführt wird und aus SMB in /inetpub/wwwroot eingebunden wird:

    kubectl describe pod iis-pod
    

    Die Ausgabe des Befehls sieht in etwa wie im folgenden Beispiel aus:

    Name:         iis-pod
    Namespace:    default
    Priority:     0
    Node:         akswin000001/10.225.5.246
    Start Time:   Fri, 05 May 2023 15:16:36 -0400
    Labels:       app=web
    Annotations:  <none>
    Status:       Running
    IP:           10.225.5.252
    IPs:
      IP:  10.225.5.252
    Containers:
      web:
        Container ID:   containerd://1e4959f2b49e7ad842b0ec774488a6142ac9152ca380c7ba4d814ae739d5ed3e
        Image:          mcr.microsoft.com/windows/servercore/iis:windowsservercore
        Image ID:       mcr.microsoft.com/windows/servercore/iis@sha256:0f0114d0f6c6ee569e1494953efdecb76465998df5eba951dc760ac5812c7409
        Port:           80/TCP
        Host Port:      0/TCP
        State:          Running
          Started:      Fri, 05 May 2023 15:16:44 -0400
        Ready:          True
        Restart Count:  0
        Limits:
          cpu:     1
          memory:  800M
        Requests:
          cpu:        1
          memory:     800M
        Environment:  <none>
        Mounts:
          /inetpub/wwwroot from smb (rw)
          /var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-zznzs (ro)
    
  3. Stellen Sie sicher, dass Ihr Volume in den Pod eingebunden wurde, indem Sie kubectl exec verwenden, um eine Verbindung mit dem Pod herzustellen. Verwenden Sie dann den Befehl dir im richtigen Verzeichnis, um zu überprüfen, ob das Volume eingebunden ist und die Größe der Größe des bereitgestellten Volumes entspricht.

    kubectl exec -it iis-pod –- cmd.exe
    

    Die Ausgabe des Befehls sieht in etwa wie im folgenden Beispiel aus:

    Microsoft Windows [Version 10.0.20348.1668]
    (c) Microsoft Corporation. All rights reserved.
    
    C:\>cd /inetpub/wwwroot
    
    C:\inetpub\wwwroot>dir
     Volume in drive C has no label.
     Volume Serial Number is 86BB-AA55
    
     Directory of C:\inetpub\wwwroot
    
    05/05/2023  01:38 AM    <DIR>          .
    05/05/2023  01:38 AM    <DIR>          ..
               0 File(s)              0 bytes
               2 Dir(s)  107,373,862,912 bytes free
    
    C:\inetpub\wwwroot>exit
    

Nächste Schritte

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