Udostępnij za pośrednictwem


Aprowizuj woluminy SMB usługi Azure NetApp Files dla usługi Azure Kubernetes Service

Po skonfigurowaniu usługi Azure NetApp Files dla usługi Azure Kubernetes Service można aprowizować woluminy usługi Azure NetApp Files dla usługi Azure Kubernetes Service.

Usługa Azure NetApp Files obsługuje woluminy przy użyciu systemu plików NFS (NFSv3 lub NFSv4.1), protokołu SMB i podwójnego protokołu (NFSv3 i SMB lub NFSv4.1 i SMB).

Statyczne konfigurowanie dla aplikacji korzystających z woluminów SMB

W tej sekcji opisano sposób tworzenia woluminu SMB w usłudze Azure NetApp Files i uwidaczniania woluminu statycznie na platformie Kubernetes dla konteneryzowanej aplikacji do użycia.

Tworzenie woluminu SMB

  1. Zdefiniuj zmienne dla późniejszego użycia. Zastąp ciąg myresourcegroup, mylocation, myaccountname, mypool1, premium, myfilepath, myvolsize, myvolname i virtnetid odpowiednią wartością dla danego środowiska. Ścieżka pliku musi być unikatowa we wszystkich kontach ANF.

    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. Utwórz wolumin przy użyciu az netappfiles volume create polecenia .

    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
    

Tworzenie wpisu tajnego przy użyciu poświadczeń domeny

  1. Utwórz wpis tajny w klastrze usługi AKS, aby uzyskać dostęp do serwera usługi Active Directory (AD) przy użyciu kubectl create secret polecenia . Ten wpis tajny będzie używany przez trwały wolumin Kubernetes w celu uzyskania dostępu do woluminu SMB usługi Azure NetApp Files. Użyj następującego polecenia, aby utworzyć wpis tajny, zastępując USERNAME ciąg nazwą użytkownika, PASSWORD hasłem i DOMAIN_NAME nazwą domeny usługi AD.

        kubectl create secret generic smbcreds --from-literal=username=USERNAME --from-literal=password="PASSWORD" --from-literal=domain='DOMAIN_NAME'
    
  2. Sprawdź, czy wpis tajny został utworzony.

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

Instalowanie sterownika SMB CSI

Aby utworzyć protokół SMB PersistentVolumekubernetes, należy zainstalować sterownik interfejsu magazynu kontenerów (CSI).

  1. Zainstaluj sterownik SMB CSI w klastrze przy użyciu narzędzia Helm. Pamiętaj, aby ustawić windows.enabled opcję na true:

    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
    

    Inne metody instalowania sterownika SMB CSI można znaleźć w temacie Install SMB CSI driver master version on a Kubernetes cluster (Instalowanie wersji master sterownika SMB CSI w klastrze Kubernetes).

  2. Sprawdź, csi-smb czy zasobnik kontrolera jest uruchomiony, a każdy węzeł roboczy ma uruchomiony zasobnik przy użyciu kubectl get pods polecenia :

    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
    

Tworzenie woluminu trwałego

  1. Wyświetl szczegóły woluminu przy użyciu polecenia az netappfiles volume show. Zastąp zmienne odpowiednimi wartościami z konta i środowiska usługi Azure NetApp Files, jeśli nie zostały zdefiniowane w poprzednim kroku.

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

    Poniższe dane wyjściowe to przykład powyższego polecenia wykonanego z rzeczywistymi wartościami.

    {
      ...
      "creationToken": "myvolname",
      ...
      "mountTargets": [
        {
          ...
          "
             "smbServerFqdn": "ANF-1be3.contoso.com",
          ...
        }
      ],
      ...
    }
    
  2. Utwórz plik o nazwie pv-smb.yaml i skopiuj go w następującym języku YAML. W razie potrzeby zastąp myvolname element i creationToken zastąp ANF-1be3.contoso.com\myvolname wartością smbServerFqdn z poprzedniego kroku. Pamiętaj, aby uwzględnić wpis tajny poświadczeń usługi AD wraz z przestrzenią nazw, w której znajduje się wpis tajny utworzony w poprzednim kroku.

    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. Utwórz wolumin trwały przy użyciu kubectl apply polecenia :

    kubectl apply -f pv-smb.yaml
    
  4. Sprawdź, czy stan woluminu trwałego jest dostępny przy użyciu kubectl describe polecenia :

    kubectl describe pv pv-smb
    

Tworzenie trwałego oświadczenia woluminu

  1. Utwórz nazwę pvc-smb.yaml pliku i skopiuj go w następującym pliku YAML.

    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      name: anf-pvc-smb
    spec:
      accessModes:
        - ReadWriteMany
      volumeName: anf-pv-smb
      storageClassName: ""
      resources:
        requests:
          storage: 100Gi
    
  2. Utwórz oświadczenie trwałego woluminu kubectl apply przy użyciu polecenia :

    kubectl apply -f pvc-smb.yaml
    

    Sprawdź, czy stan trwałego oświadczenia woluminu to Powiązana przy użyciu polecenia kubectl describe :

    kubectl describe pvc pvc-smb
    

Instalowanie za pomocą zasobnika

  1. Utwórz plik o nazwie iis-smb.yaml i skopiuj go w następującym języku YAML. Ten plik zostanie użyty do utworzenia zasobnika usług Internet Information Services w celu zainstalowania woluminu do ścieżki /inetpub/wwwroot.

    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. Utwórz zasobnik przy użyciu polecenia kubectl apply :

    kubectl apply -f iis-smb.yaml
    
  3. Sprawdź, czy zasobnik jest uruchomiony i /inetpub/wwwroot jest zainstalowany z poziomu protokołu SMB, używając polecenia kubectl describe :

    kubectl describe pod iis-pod
    

    Dane wyjściowe polecenia przypominają następujący przykład:

    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. Sprawdź, czy wolumin został zainstalowany na zasobniku za pomocą polecenia kubectl exec , aby nawiązać połączenie z zasobnikiem, a następnie użyj dir polecenia w poprawnym katalogu, aby sprawdzić, czy wolumin jest zainstalowany, a rozmiar odpowiada rozmiarowi aprowizowanego woluminu.

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

    Dane wyjściowe polecenia przypominają następujący przykład:

    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
    

Dynamiczne konfigurowanie dla aplikacji korzystających z woluminów SMB

W tej sekcji opisano sposób używania narzędzia Astra Trident do dynamicznego tworzenia woluminu SMB w usłudze Azure NetApp Files i automatycznego instalowania go w konteneryzowanej aplikacji systemu Windows.

Instalowanie narzędzia Astra Trident

Aby dynamicznie aprowizować woluminy SMB, należy zainstalować aplikację Astra Trident w wersji 22.10 lub nowszej. Dynamiczne aprowizowanie woluminów SMB wymaga węzłów procesu roboczego systemu Windows.

Astra Trident jest dynamicznym aprowizatorem magazynu netApp, który został specjalnie utworzony dla platformy Kubernetes. Uprość zużycie magazynu dla aplikacji Kubernetes przy użyciu standardowego sterownika interfejsu CSI (Container Storage Interface) firmy Astra Trident. Usługa Astra Trident wdraża w klastrach Kubernetes jako zasobniki i udostępnia dynamiczne usługi orkiestracji magazynu dla obciążeń Kubernetes.

Trident można zainstalować przy użyciu operatora Trident (ręcznie lub przy użyciu narzędzia Helm) lub tridentctl. Aby dowiedzieć się więcej o tych metodach instalacji i sposobie ich działania, zobacz Przewodnik instalacji.

Instalowanie narzędzia Astra Trident przy użyciu narzędzia Helm

Program Helm musi być zainstalowany na stacji roboczej, aby zainstalować narzędzie Astra Trident przy użyciu tej metody. Aby zapoznać się z innymi metodami instalowania narzędzia Astra Trident, zobacz Astra Trident Install Guide (Przewodnik instalacji narzędzia Astra Trident). Jeśli masz węzły procesu roboczego systemu Windows w klastrze, upewnij się, że okna mają dowolną metodę instalacji.

  1. Aby zainstalować narzędzie Astra Trident przy użyciu programu Helm dla klastra z węzłami procesu roboczego systemu Windows, uruchom następujące polecenia:

    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
    

    Dane wyjściowe polecenia przypominają następujący przykład:

    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. Aby potwierdzić, że aplikacja Astra Trident została pomyślnie zainstalowana, uruchom następujące kubectl describe polecenie:

    kubectl describe torc trident
    

    Dane wyjściowe polecenia przypominają następujący przykład:

    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
    

Tworzenie zaplecza

Należy utworzyć zaplecze, aby poinstruować aplikację Astra Trident o subskrypcji usługi Azure NetApp Files i miejscu, w którym musi tworzyć woluminy. Aby uzyskać więcej informacji na temat zapleczy, zobacz Opcje konfiguracji zaplecza i przykłady usługi Azure NetApp Files.

  1. Utwórz plik o nazwie backend-secret-smb.yaml i skopiuj go w następującym języku YAML. Zmień wartości Client ID i clientSecret na poprawne dla danego środowiska.

    apiVersion: v1
    kind: Secret
    metadata:
      name: backend-tbc-anf-secret
    type: Opaque
    stringData:
      clientID: 00001111-aaaa-2222-bbbb-3333cccc4444
      clientSecret: rR0rUmWXfNioN1KhtHisiSAnoTherboGuskey6pU
    
  2. Utwórz plik o nazwie backend-anf-smb.yaml i skopiuj go w następującym języku YAML. Zmień wartości ClientID, , clientSecret, tenantIDsubscriptionID, locationi serviceLevel na poprawne dla danego środowiska. Element tenantID, clientIDi clientSecret można znaleźć w rejestracji aplikacji w usłudze Microsoft Entra ID z wystarczającymi uprawnieniami dla usługi Azure NetApp Files. Rejestracja aplikacji obejmuje rolę Właściciel lub Współautor wstępnie zdefiniowaną przez platformę Azure. Lokalizacja platformy Azure musi zawierać co najmniej jedną delegowana podsieć. Element serviceLevel musi być zgodny ze skonfigurowanym serviceLevel dla puli pojemności w temacie Konfigurowanie obciążeń usługi Azure NetApp Files dla usługi AKS.

    apiVersion: trident.netapp.io/v1
    kind: TridentBackendConfig
    metadata:
      name: backend-tbc-anf-smb
    spec:
      version: 1
      storageDriverName: azure-netapp-files
      subscriptionID: aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e
      tenantID: aaaabbbb-0000-cccc-1111-dddd2222eeee
      location: eastus
      serviceLevel: Premium
      credentials:
        name: backend-tbc-anf-secret
      nasType: smb
    
  3. Utwórz wpis tajny i zaplecze przy użyciu kubectl apply polecenia .

    Utwórz klucz tajny :

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

    Dane wyjściowe polecenia przypominają następujący przykład:

    secret/backend-tbc-anf-secret created
    

    Utwórz zaplecze:

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

    Dane wyjściowe polecenia przypominają następujący przykład:

    tridentbackendconfig.trident.netapp.io/backend-tbc-anf created
    
  4. Sprawdź, czy zaplecze zostało utworzone, uruchamiając następujące polecenie:

    kubectl get tridentbackends -n trident
    

    Dane wyjściowe polecenia przypominają następujący przykład:

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

Tworzenie wpisu tajnego przy użyciu poświadczeń domeny dla protokołu SMB

  1. Utwórz wpis tajny w klastrze usługi AKS, aby uzyskać dostęp do serwera usługi AD przy użyciu kubectl create secret polecenia . Te informacje będą używane przez trwały wolumin Kubernetes w celu uzyskania dostępu do woluminu SMB usługi Azure NetApp Files. Użyj następującego polecenia, zastępując DOMAIN_NAME\USERNAME ciąg nazwą domeny i nazwą użytkownika oraz PASSWORD hasłem.

    kubectl create secret generic smbcreds --from-literal=username=DOMAIN_NAME\USERNAME –from-literal=password="PASSWORD" 
    
  2. Sprawdź, czy wpis tajny został utworzony.

    kubectl get secret
    

    Dane wyjściowe przypominają następujący przykład:

    NAME       TYPE     DATA   AGE
    smbcreds   Opaque   2      2h
    

Tworzenie klasy magazynu

Klasa magazynu służy do definiowania sposobu dynamicznego tworzenia jednostki magazynu przy użyciu woluminu trwałego. Aby korzystać z woluminów usługi Azure NetApp Files, należy utworzyć klasę magazynu.

  1. Utwórz plik o nazwie anf-storageclass-smb.yaml i skopiuj go w następującym języku YAML.

    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. Utwórz klasę magazynu przy użyciu kubectl apply polecenia :

    kubectl apply -f anf-storageclass-smb.yaml
    

    Dane wyjściowe polecenia przypominają następujący przykład:

    storageclass/anf-sc-smb created
    
  3. Uruchom polecenie , kubectl get aby wyświetlić stan klasy magazynu:

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

Tworzenie pcv

Oświadczenie trwałego woluminu (PVC) jest żądaniem magazynu przez użytkownika. Po utworzeniu trwałego oświadczenia woluminu usługa Astra Trident automatycznie tworzy udział SMB usługi Azure NetApp Files i udostępnia je dla obciążeń Kubernetes do użycia.

  1. Utwórz plik o nazwie anf-pvc-smb.yaml i skopiuj następujący kod YAML. W tym przykładzie tworzony jest wolumin 100 GiB z dostępem ReadWriteMany i używa klasy magazynu utworzonej w obszarze Tworzenie klasy magazynu.

    kind: PersistentVolumeClaim
    apiVersion: v1
    metadata:
      name: anf-pvc-smb
    spec:
      accessModes:
        - ReadWriteMany
      resources:
        requests:
          storage: 100Gi
      storageClassName: anf-sc-smb
    
  2. Utwórz oświadczenie trwałego woluminu za kubectl apply pomocą polecenia :

    kubectl apply -f anf-pvc-smb.yaml
    

    Dane wyjściowe polecenia przypominają następujący przykład:

    persistentvolumeclaim/anf-pvc-smb created
    
  3. Aby wyświetlić informacje o trwałym oświadczeniu woluminu, uruchom kubectl get polecenie:

    kubectl get pvc
    

    Dane wyjściowe polecenia przypominają następujący przykład:

    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. Aby wyświetlić wolumin trwały utworzony przez aplikację Astra Trident, uruchom następujące kubectl get polecenie:

    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
    

Używanie woluminu trwałego

Po utworzeniu pcv zasobnik można połączyć w celu uzyskania dostępu do woluminu usługi Azure NetApp Files. Poniższy manifest może służyć do definiowania zasobnika usług Internet Information Services (IIS), który instaluje udział SMB usługi Azure NetApp Files utworzony w poprzednim kroku. W tym przykładzie wolumin jest instalowany pod adresem /inetpub/wwwroot.

  1. Utwórz plik o nazwie anf-iis-pod.yaml i skopiuj go w następującym pliku YAML:

    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. Utwórz wdrożenie przy użyciu kubectl apply polecenia :

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

    Dane wyjściowe polecenia przypominają następujący przykład:

    pod/iis-pod created
    

    Sprawdź, czy zasobnik jest uruchomiony i jest zainstalowany za pośrednictwem protokołu SMB do /inetpub/wwwroot przy użyciu kubectl describe polecenia :

    kubectl describe pod iis-pod
    

    Dane wyjściowe polecenia przypominają następujący przykład:

    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. Sprawdź, czy wolumin został zainstalowany na zasobniku przy użyciu narzędzia kubectl exec w celu nawiązania połączenia z zasobnikiem. Następnie użyj dir polecenia w poprawnym katalogu, aby sprawdzić, czy wolumin jest zainstalowany, a rozmiar jest zgodny z rozmiarem aprowizowanego woluminu.

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

    Dane wyjściowe polecenia przypominają następujący przykład:

    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
    

Następne kroki

Aplikacja Astra Trident obsługuje wiele funkcji w usłudze Azure NetApp Files. Aby uzyskać więcej informacji, zobacz: