Delen via


Zelfstudie: Azure Container Storage (versie 1.x.x) implementeren op een AKS-cluster

Deze zelfstudie introduceert Azure Container Storage en laat zien hoe u containereigen opslag implementeert en beheert voor toepassingen die worden uitgevoerd in Azure Kubernetes Service (AKS). Als u Azure Container Storage nu niet wilt implementeren, kunt u deze zelfstudie overslaan en rechtstreeks doorgaan met het implementeren van een toepassing in AKS. U hebt Azure Container Storage niet nodig voor de basic storefront-toepassing in deze reeks zelfstudies.

Belangrijk

In dit artikel wordt uitgelegd hoe u Azure Container Storage (versie 1.x.x) installeert. Hiervoor is nu expliciet een parameter --container-storage-version 1 voor het vastmaken van versies vereist voor de installatie. Azure Container Storage (versie 2.x.x) is nu beschikbaar.

Azure Container Storage vereenvoudigt het beheer van stateful toepassingen in Kubernetes door containereigen opslag aan te bieden die is afgestemd op verschillende workloads, waaronder databases, analyseplatforms en hoogwaardige toepassingen.

Aan het einde van deze zelfstudie gaat u het volgende doen:

  • Meer informatie over hoe Azure Container Storage ondersteuning biedt voor diverse workloads in Kubernetes.
  • Verken meerdere back-endopties voor opslag om de opslag aan te passen aan de behoeften van uw toepassing.
  • Implementeer Azure Container Storage (versie 1.x.x) op uw AKS-cluster en maak een algemeen kortstondig volume.

Voordat u begint

In eerdere zelfstudies hebt u een containerimage gemaakt, deze geüpload naar een ACR-instance en een AKS-cluster gemaakt. Begin met Handleiding 1 - bereid de toepassing voor om verder te gaan met AKS.

  • Voor deze zelfstudie is het gebruik van Azure CLI versie 2.35.0 of hoger vereist. Portal en PowerShell worden momenteel niet ondersteund voor Azure Container Storage. Controleer uw versie met az --version. Voor het installeren of upgraden, zie Azure CLI installeren. Als u de Bash-omgeving in Azure Cloud Shell gebruikt, is de nieuwste versie al geïnstalleerd.
  • U moet een bestaand AKS-cluster op basis van Linux hebben met ten minste drie knooppunten met door Storage geoptimaliseerde VM-SKU's of met GPU versnelde VM-SKU's. Zie zelfstudie 3: Een AKS-cluster maken.
  • 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.

De Kubernetes-extensie installeren

Installeer of upgrade naar de nieuwste versie van k8s-extension door de volgende opdracht uit te voeren.

az extension add --upgrade --name k8s-extension

Verbinding maken met het cluster en de status van het knooppunt controleren

Als u nog niet bent verbonden met uw cluster uit de vorige zelfstudie, voert u de volgende opdrachten uit. Als u al verbinding hebt, kunt u deze sectie overslaan.

  1. Voer de volgende opdracht uit om verbinding te maken met het cluster.

    az aks get-credentials --resource-group myResourceGroup --name myAKSCluster
    
  2. Controleer de verbinding met uw cluster met behulp van de kubectl get opdracht. Met deze opdracht wordt een lijst met de clusterknooppunten geretourneerd.

    kubectl get nodes
    
  3. In het volgende uitvoervoorbeeld ziet u de knooppunten in uw cluster. Controleer of de status voor alle knooppunten Gereed is:

    NAME                                STATUS   ROLES   AGE   VERSION
    aks-nodepool1-34832848-vmss000000   Ready    agent   80m   v1.30.9
    aks-nodepool1-34832848-vmss000001   Ready    agent   80m   v1.30.9
    aks-nodepool1-34832848-vmss000002   Ready    agent   80m   v1.30.9
    

Een back-upopslagoptie kiezen

Azure Container Storage (versie 1.x.x) maakt gebruik van opslaggroepen voor het inrichten en beheren van permanente en algemene volumes. Het biedt verschillende opties voor back-endopslag voor uw opslaggroepen, die elk geschikt zijn voor specifieke workloads. Het selecteren van het juiste opslagtype is essentieel voor het optimaliseren van workloadprestaties, duurzaamheid en kostenefficiëntie. Voor deze tutorial gebruiken we Ephemeral Disk met lokale NVMe als onderliggende opslag om een generiek ephemeral volume te creëren. We verkennen echter ook de andere opties voor achterliggende opslag waarmee u persistente volumes kunt maken.

Tijdelijke schijf

Tijdelijke schijf maakt gebruik van lokale opslagresources op de AKS-knooppunten (lokale NVMe of tijdelijke SSD). Het biedt een lage latentie van sub ms en hoge IOPS, maar geen gegevenspersistentie als de VIRTUELE machine opnieuw wordt opgestart. Verliesbare schijf is het meest geschikt voor toepassingen zoals Cassandra die snelheid boven persistentie stellen en is ideaal voor workloads die inherent replicatie op toepassingsniveau hebben.

U kunt tijdelijke schijf gebruiken om algemene tijdelijke volumes of permanente volumes te maken, ook al gaan de gegevens verloren als de virtuele machine opnieuw wordt opgestart.

Azure Disks

Ideaal voor databases zoals PostgreSQL en MongoDB, bieden Azure Disks duurzaamheid, schaalbaarheid en prestatieopties met meerdere lagen, waaronder Premium SSD en Ultra SSD.

Met Azure Disks kunt u automatisch opslagvolumes voorzien, met ingebouwde redundantie en hoge beschikbaarheid.

Elastische SAN van Azure (preview)

Azure Elastic SAN is geschikt voor workloads zoals CI/CD-pijplijnen of grootschalige gegevensverwerking, ontworpen voor gedeelde opslagbehoeften en algemene databases die schaalbaarheid en hoge beschikbaarheid vereisen.

Azure Container Storage (versie 1.x.x) inschakelen en een opslaggroep maken

Voer de volgende opdracht uit om Azure Container Storage op het cluster te installeren en een lokale NVMe-opslaggroep te maken.

az aks update -n myAKSCluster -g myResourceGroup --enable-azure-container-storage ephemeralDisk --container-storage-version 1 --storage-pool-option NVMe

De implementatie duurt minder dan 15 minuten.

De status van de opslaggroep controleren

Wanneer de implementatie is voltooid, worden de onderdelen voor het gekozen type opslaggroep ingeschakeld en hebt u een standaardopslaggroep.

Voer de volgende opdracht uit om de lijst met beschikbare opslaggroepen op te halen:

kubectl get sp -n acstor

Voer de volgende opdracht uit om de status van een opslaggroep te controleren:

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

Als de Message niet StoragePool is ready zegt, is uw opslaggroep nog steeds aan het creëren of er is een probleem opgetreden.

De beschikbare opslagklassen weergeven

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

Voer uit kubectl get sc om de beschikbare opslagklassen weer te geven. U zou een opslagklasse met de naam acstor-<storage-pool-name> moeten zien. Gebruik deze opslagklasse in de volgende sectie om een pod te implementeren.

Een pod implementeren met een algemeen kortstondig volume

Maak een pod met Fio (Flexible I/O Tester) voor benchmarking en workloadsimulatie, die gebruikmaakt van een generiek ephemerisch volume.

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

  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
      containers:
        - name: fio
          image: nixery.dev/shell/fio
          args:
            - sleep
            - "1000000"
          volumeMounts:
            - mountPath: "/volume"
              name: ephemeralvolume
      volumes:
        - name: ephemeralvolume
          ephemeral:
            volumeClaimTemplate:
              metadata:
                labels:
                  type: my-ephemeral-volume
              spec:
                accessModes: [ "ReadWriteOnce" ]
                storageClassName: acstor-ephemeraldisk-nvme # replace with the name of your storage class if different
                resources:
                  requests:
                    storage: 1Gi
    

    Als u de opslaggrootte van het volume wijzigt, moet u ervoor zorgen dat de grootte kleiner is dan de beschikbare capaciteit van de tijdelijke schijf van één knooppunt. Voer uit kubectl get diskpool -n acstor om de beschikbare capaciteit te controleren.

  3. Pas het YAML-manifestbestand toe om de pod te implementeren.

    kubectl apply -f acstor-pod.yaml
    

    U zou een uitvoer moeten zien die lijkt op het volgende:

    pod/fiopod created
    
  4. Controleer of de pod in werking is en of de tijdelijke volumeclaim succesvol aan de pod is gekoppeld.

    kubectl describe pod fiopod
    kubectl describe pvc fiopod-ephemeralvolume
    

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

Controleer de beschikbare capaciteit van tijdelijke schijven voordat u extra volumes inricht:

kubectl describe node <node-name>

Voor meer informatie over Azure Container Storage (versie 1.x.x), waaronder het maken van permanente volumes, raadpleegt u Wat is Azure Container Storage?

De hulpbronnen opschonen

U hebt Azure Container Storage niet nodig voor de rest van deze reeks zelfstudies. Daarom raden we u aan deze nu te verwijderen om onnodige Azure-kosten te voorkomen.

  1. Verwijder de pod.

    kubectl delete pod fiopod
    
  2. Verwijder de opslagpool.

    kubectl delete sp -n acstor <storage-pool-name>
    
  3. Verwijder het extensie-exemplaar.

    az aks update -n myAKSCluster -g myResourceGroup --disable-azure-container-storage all
    

Volgende stap

In deze zelfstudie hebt u Azure Container Storage (versie 1.x.x) geïmplementeerd op uw AKS-cluster. U hebt geleerd hoe u het volgende kunt doen:

  • Schakel Azure Container Storage (versie 1.x.x) in op uw AKS-cluster.
  • Kies een opslagtype voor back-up en maak een opslaggroep.
  • Implementeer een pod met een algemeen kortstondig volume.

In de volgende zelfstudie leert u hoe u een toepassing implementeert in uw cluster.