Delen via


Azure Container Storage gebruiken met Azure Elastic SAN (preview)

Azure Container Storage is een cloudgebaseerde volumebeheer-, implementatie- en indelingsservice die systeemeigen is gebouwd voor containers. Azure Elastic SAN is een volledig geïntegreerde oplossing die het implementeren, schalen, beheren en configureren van een SAN vereenvoudigt, en ook ingebouwde cloudmogelijkheden biedt, zoals hoge beschikbaarheid.

Als preview-functie kunt u Azure Container Storage configureren voor het gebruik van Azure Elastic SAN. In dit artikel wordt beschreven hoe u deze configuratie kunt maken. Aan het einde van dit artikel hebt u een pod die elastic SAN als opslag gebruikt.

Vereisten

  • Als u geen Azure-abonnement hebt, maakt u een gratis account voordat u begint.

  • Voor dit artikel is de nieuwste versie (2.35.0 of hoger) van de Azure CLI vereist. Zie Hoe u de Azure CLI installeert. Als u de Bash-omgeving in Azure Cloud Shell gebruikt, is de nieuwste versie al geïnstalleerd. Als u van plan bent om de opdrachten lokaal uit te voeren in plaats van in Azure Cloud Shell, moet u deze uitvoeren met beheerdersbevoegdheden. Zie Aan de slag met Azure Cloud Shell voor meer informatie.

  • U hebt de Kubernetes-opdrachtregelclient nodig. kubectl Deze is al geïnstalleerd als u Azure Cloud Shell gebruikt of als u deze lokaal kunt installeren door de opdracht uit te az aks install-cli voeren.

  • Als u Azure Container Storage nog niet hebt geïnstalleerd, volgt u de instructies in Azure Container Storage gebruiken met Azure Kubernetes Service.

  • Controleer of uw doelregio wordt ondersteund in Azure Container Storage-regio's.

  • Zorg ervoor dat u de rol Azure Container Storage-eigenaar of Azure Container Storage-inzender hebt voor uw abonnement. Een van deze rollen verleent machtigingen waarmee Azure Container Storage kan communiceren met de elastische SAN-resource. Als u deze wijziging wilt aanbrengen, gaat u naar uw abonnementspagina in Azure Portal. Selecteer Toegangsbeheer (IAM) Roltoewijzing > toevoegen en zoek naar 'Azure Container Storage-eigenaar' of 'Azure Container Storage-inzender' op het tabblad Taakfunctierollen. Selecteer Toewijzingen > toevoegen en > voeg uw account toe.

  • Als u Azure Container Storage wilt gebruiken met Azure Elastic SAN (preview), moet uw AKS-cluster een knooppuntgroep hebben van ten minste drie vm's voor algemeen gebruik, zoals standard_d4s_v5 voor de clusterknooppunten, elk met minimaal vier virtuele CPU's (vCPU's).

Beperkingen

De volgende functies worden momenteel niet ondersteund wanneer u Azure Container Storage gebruikt om een elastisch SAN te implementeren en te organiseren.

  • Momentopnamen van volumes
  • Uitbreiding van opslaggroep

Regionale beschikbaarheid

Azure Container Storage is alleen beschikbaar voor een subset van Azure-regio's:

  • (Afrika) Zuid-Afrika - noord
  • (Azië en Stille Oceaan) Australië - oost
  • (Azië en Stille Oceaan) Oost-Azië
  • (Azië en Stille Oceaan) Japan - oost
  • (Azië en Stille Oceaan) Korea - centraal
  • (Azië en Stille Oceaan) Zuidoost-Azië
  • (Azië en Stille Oceaan) India - centraal
  • (Europa) Frankrijk - centraal
  • (Europa) Duitsland - west-centraal
  • (Europa) Europa - noord
  • (Europa) Europa - west
  • (Europa) UK - zuid
  • (Europa) Zweden - centraal
  • (Europa) Zwitserland - noord
  • (Midden-Oosten) UAE - noord
  • (Noord-Amerika) VS - oost
  • (Noord-Amerika) VS - oost 2
  • (Noord-Amerika) VS - west
  • (Noord-Amerika) VS - west 2
  • (Noord-Amerika) VS - west 3
  • (Noord-Amerika) VS - centraal
  • (Noord-Amerika) VS - noord-centraal
  • (Noord-Amerika) VS - zuid-centraal
  • (Noord-Amerika) VS - west-centraal
  • (Noord-Amerika) Canada - centraal
  • (Noord-Amerika) Canada - oost
  • (Zuid-Amerika) Brazilië - zuid

Permanente volumes maken en koppelen

Volg deze stappen om een permanent volume te maken en te koppelen.

1. Een opslaggroep maken

Maak eerst een opslaggroep, een logische groepering van opslag voor uw Kubernetes-cluster, door deze te definiëren in een YAML-manifestbestand.

Als u Azure Container Storage hebt ingeschakeld met behulp van az aks create of az aks update opdrachten, hebt u mogelijk al een opslaggroep. Gebruik kubectl get sp -n acstor dit om de lijst met opslaggroepen op te halen. Als u al een opslaggroep hebt die u wilt gebruiken, kunt u deze sectie overslaan en doorgaan met het weergeven van de beschikbare opslagklassen.

Volg deze stappen om een opslaggroep te maken met Azure Elastic SAN (preview).

  1. Gebruik uw favoriete teksteditor om een YAML-manifestbestand zoals code acstor-storagepool.yaml.

  2. Plak er de volgende code in. De naamwaarde van de opslaggroep kan de gewenste waarde zijn. Pas de opslag aan om de gewenste opslagcapaciteit in Gi of Ti weer te geven en sla het bestand op. Azure Elastic SAN biedt momenteel geen ondersteuning voor het wijzigen van het formaat van opslaggroepen.

    apiVersion: containerstorage.azure.com/v1
    kind: StoragePool
    metadata:
      name: managed
      namespace: acstor
    spec:
      poolType:
        elasticSan: {}
      resources:
        requests: {"storage": 1Ti}
    
  3. Pas het YAML-manifestbestand toe om de opslaggroep te maken.

    kubectl apply -f acstor-storagepool.yaml 
    

    Wanneer het maken van de opslaggroep is voltooid, ziet u een bericht zoals:

    storagepool.containerstorage.azure.com/managed created
    

    U kunt deze opdracht ook uitvoeren om de status van de opslaggroep te controleren. Vervang door <storage-pool-name> de naamwaarde van uw opslaggroep. In dit voorbeeld wordt de waarde beheerd.

    kubectl describe sp <storage-pool-name> -n acstor
    

Wanneer de opslaggroep wordt gemaakt, maakt Azure Container Storage namens u een opslagklasse met behulp van de naamconventie acstor-<storage-pool-name>. Er wordt ook een elastische SAN-resource van Azure gemaakt.

2. De beschikbare opslagklassen weergeven

Wanneer de opslaggroep gereed is voor gebruik, moet u een opslagklasse selecteren om te definiëren hoe opslag dynamisch wordt gemaakt bij het maken van permanente volumeclaims en het implementeren van permanente volumes.

Voer uit kubectl get sc om de beschikbare opslagklassen weer te geven. Als het goed is, ziet u een opslagklasse met de naam acstor-<storage-pool-name>.

Belangrijk

Gebruik niet de opslagklasse die is gemarkeerd als intern. Het is een interne opslagklasse die nodig is om Azure Container Storage te laten werken.

3. Een permanente volumeclaim maken

Een permanente volumeclaim (PVC) wordt gebruikt om automatisch opslag in te richten op basis van een opslagklasse. Volg deze stappen om een PVC te maken met behulp van de nieuwe opslagklasse.

  1. Gebruik uw favoriete teksteditor om een YAML-manifestbestand zoals code acstor-pvc.yaml.

  2. Plak de volgende code en sla het bestand op. De PVC-waarde name kan zijn wat u wilt.

    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      name: managedpvc
    spec:
      accessModes:
        - ReadWriteOnce
      storageClassName: acstor-managed # replace with the name of your storage class if different
      resources:
        requests:
          storage: 100Gi
    
  3. Pas het YAML-manifestbestand toe om het PVC te maken.

    kubectl apply -f acstor-pvc.yaml
    

    De uitvoer moet er ongeveer zo uitzien:

    persistentvolumeclaim/managedpvc created
    

    U kunt de status van het PVC controleren door de volgende opdracht uit te voeren:

    kubectl describe pvc managedpvc
    

Zodra het PVC is gemaakt, is het klaar voor gebruik door een pod.

4. Implementeer een pod en koppel een permanent volume

Maak een pod met Fio (Flexibele I/O-tester) voor benchmarking en workloadsimulatie en geef een koppelpad op voor het permanente volume. Gebruik voor claimName de naamwaarde die u hebt gebruikt bij het maken van de permanente volumeclaim.

  1. Gebruik uw favoriete teksteditor om een YAML-manifestbestand zoals code acstor-pod.yaml.

  2. Plak de volgende code en sla het bestand op.

    kind: Pod
    apiVersion: v1
    metadata:
      name: fiopod
    spec:
      nodeSelector:
        acstor.azure.com/io-engine: acstor
      volumes:
        - name: managedpv
          persistentVolumeClaim:
            claimName: managedpvc
      containers:
        - name: fio
          image: nixery.dev/shell/fio
          args:
            - sleep
            - "1000000"
          volumeMounts:
            - mountPath: "/volume"
              name: managedpv
    
  3. Pas het YAML-manifestbestand toe om de pod te implementeren.

    kubectl apply -f acstor-pod.yaml
    

    De uitvoer ziet er als volgt uit:

    pod/fiopod created
    
  4. Controleer of de pod wordt uitgevoerd en of de permanente volumeclaim is gebonden aan de pod:

    kubectl describe pod fiopod
    kubectl describe pvc managedpvc
    
  5. Controleer fio-tests om de huidige status ervan te zien:

    kubectl exec -it fiopod -- fio --name=benchtest --size=800m --filename=/volume/test --direct=1 --rw=randrw --ioengine=libaio --bs=4k --iodepth=16 --numjobs=8 --time_based --runtime=60
    

U hebt nu een pod geïmplementeerd die een elastisch SAN als opslag gebruikt en u kunt deze gebruiken voor uw Kubernetes-workloads.

Permanente volumes en opslaggroepen beheren

Nu u een permanent volume hebt gemaakt, kunt u het indien nodig loskoppelen en opnieuw aankoppelen. U kunt ook een opslaggroep verwijderen.

Een permanent volume loskoppelen en opnieuw aankoppelen

Als u een permanent volume wilt loskoppelen, verwijdert u de pod waaraan het permanente volume is gekoppeld. Vervang door <pod-name> de naam van de pod, bijvoorbeeld fiopod.

kubectl delete pods <pod-name>

Als u een permanent volume opnieuw wilt koppelen, verwijst u gewoon naar de naam van de permanente volumeclaim in het YAML-manifestbestand, zoals beschreven in Een pod implementeren en een permanent volume koppelen.

Als u wilt controleren aan welk permanent volume een permanente volumeclaim is gebonden, voert u uit kubectl get pvc <persistent-volume-claim-name>.

Een opslaggroep verwijderen

Als u een opslaggroep wilt verwijderen, voert u de volgende opdracht uit. Vervang door <storage-pool-name> de naam van de opslaggroep.

kubectl delete sp -n acstor <storage-pool-name>

Zie ook