Självstudie – Distribuera Azure Container Storage i ett AKS-kluster

Den här självstudien introducerar Azure Container Storage och visar hur du distribuerar och hanterar containerinbyggt lagringsutrymme för program som körs i Azure Kubernetes Service (AKS). Om du inte vill distribuera Azure Container Storage nu kan du hoppa över den här självstudien och fortsätta direkt till Distribuera ett program i AKS. Du behöver inte Azure Container Storage för det grundläggande storefront-programmet i den här självstudieserien.

Azure Container Storage förenklar hanteringen av tillståndskänsliga program i Kubernetes genom att erbjuda containerbaserad lagring skräddarsydd för en mängd olika arbetsbelastningar, inklusive databaser, analysplattformar och högpresterande program.

Viktigt!

Den här självstudien gäller endast för AKS Standard-kluster. Om du valde AKS Automatic i den föregående självstudien hoppar du över den här självstudien och fortsätter att distribuera ett program i AKS.

I slutet av den här självstudien kommer du att:

  • Förstå hur Azure Container Storage stöder olika arbetsbelastningar i Kubernetes.
  • Distribuera Azure Container Storage i ditt AKS-kluster.
  • Skapa en allmän tillfällig volym.

Innan du börjar

I tidigare självstudier skapade du en containeravbildning, laddade upp den till en ACR-instans och skapade ett AKS-kluster. Börja med Självstudie 1 – Förbered applikationen för AKS för att följa med.

Den här självstudien skapar fakturerbara resurser och kräver behörighet för att uppdatera AKS-klusterinställningar och installera tillägg. Använd en identitet med minst deltagaråtkomst till resursgruppen som innehåller ditt AKS-kluster.

  • Bekräfta att målregionen stöds genom att granska den regionala tillgängligheten för Azure Container Storage.

  • Installera den senaste versionen av Azure CLI (2.83.0 eller senare) och logga sedan in med az login. Använd inte Azure Cloud Shell eftersom az upgrade det inte är tillgängligt.

  • Installera Kubernetes kommandoradsklient, kubectl. Du kan installera det lokalt genom att köra az aks install-cli. Andra installationsalternativ finns i Installera kubectl.

Viktigt!

Den här självstudien gäller för Azure Container Storage (version 2.x.x), som stöder lokal NVMe-disk och Azure Elastic SAN som bakgrundslagringstyper. Den här självstudien använder lokal NVMe och skapar en allmän tillfällig volym. Om du vill använda lokal NVMe måste din virtuella dators SKU ha stöd för lokala NVMe-datadiskar, till exempel lagringsoptimerade eller GPU-accelererade virtuella datorer.

Om du föredrar att använda Azure Elastic SAN kan du läsa Använda Azure Container Storage med Azure Elastic SAN.

Installera Kubernetes-tillägget

Lägg till eller uppgradera till den senaste versionen av k8s-extension genom att köra följande kommando.

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

Kontrollera att tillägget är tillgängligt innan du fortsätter:

az extension show --name k8s-extension --query version --output tsv

Aktivera Azure Container Storage i ditt AKS-kluster

Kör följande kommando för att aktivera Azure Container Storage i ett befintligt AKS-kluster med hjälp av lokal NVMe. Azure Container Storage installerar den senaste tillgängliga versionen och uppdaterar sig själv automatiskt. Manuell versionsval stöds inte.

az aks update -n myAKSCluster -g myResourceGroup --enable-azure-container-storage ephemeralDisk

Om det här kommandot misslyckas med ett auktoriseringsfel kör du az account show för att verifiera den aktiva prenumerationen och bekräfta att din identitet har behörighet att uppdatera AKS-klustret.

Distributionen kan ta upp till fem minuter. När det är klart har AKS-klustret Azure Container Storage installerat och komponenterna för lokal NVMe-lagringstyp har distribuerats. Den skapar också standardlagringsklassen local-csi .

Anslut till klustret och verifiera status

Om du inte redan är ansluten till klustret från föregående tutorial, kör du följande kommandon. Om du redan är ansluten kan du hoppa över det här avsnittet.

  1. Ladda ned autentiseringsuppgifterna för klustret och konfigurera Kubernetes CLI så att de används. Som standard lagras autentiseringsuppgifterna i ~/.kube/config. Ange en alternativ väg med --file argumentet om det behövs.

    az aks get-credentials --resource-group myResourceGroup --name myAKSCluster
    

    Fortsätt efter att kommandot rapporterar att kontextposter har sammanfogats till ~/.kube/config.

  2. Verifiera anslutningen genom att visa en lista över klusternoderna.

    kubectl get nodes
    
  3. Kontrollera att alla noder rapporterar statusen Ready.

Verifiera lagringsklassen

Kör följande kommando för att kontrollera att lagringsklassen har skapats:

kubectl get storageclass local-csi

Du bör se utdata som liknar följande:

NAME        PROVISIONER               RECLAIMPOLICY   VOLUMEBINDINGMODE      ALLOWVOLUMEEXPANSION   AGE
local-csi   localdisk.csi.acstor.io   Delete          WaitForFirstConsumer   true                   10s

Distribuera en podd med allmän tillfällig volym

Skapa en podd med Fio (flexibel I/O-testare) för benchmarking och arbetsbelastningssimulering som använder en allmän tillfällig volym.

  1. Skapa en YAML-manifestfil med namnet fiopod.yaml. Kör till exempel code fiopod.yaml.

  2. Klistra in följande kod och spara filen.

    kind: Pod
    apiVersion: v1
    metadata:
      name: fiopod
    spec:
      nodeSelector:
        "kubernetes.io/os": linux
      containers:
        - name: fio
          image: mayadata/fio
          args: ["sleep", "1000000"]
          volumeMounts:
            - mountPath: "/volume"
              name: ephemeralvolume
      volumes:
        - name: ephemeralvolume
          ephemeral:
            volumeClaimTemplate:
              spec:
                volumeMode: Filesystem
                accessModes: ["ReadWriteOnce"]
                storageClassName: local-csi
                resources:
                  requests:
                    storage: 10Gi
    
  3. Använd YAML-manifestfilen för att distribuera podden.

    kubectl apply -f fiopod.yaml
    

Verifiera distributionen och kör prestandatest

Kontrollera att podden körs:

kubectl get pod fiopod

Du bör se podden i körläge. När du har kört kan du köra ett Fio-benchmark-test:

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

Nu har du distribuerat en podd som använder lokal NVMe som lagringsplats, och du kan använda den för dina Kubernetes-arbetsbelastningar.

Mer information om Azure Container Storage finns i Vad är Azure Container Storage?

Rensa resurser

Du behöver inte Azure Container Storage för resten av den här självstudieserien, så vi rekommenderar att du tar bort den nu för att undvika onödiga Azure-avgifter.

  1. Ta bort podden.

    kubectl delete pod fiopod
    
  2. Ta bort den generiska tillfälliga volymen.

    kubectl delete pv ephemeralvolume
    

    Om det här kommandot returnerar NotFoundfortsätter du. Allmänna tillfälliga volymer tas bort automatiskt när podden tas bort.

  3. Ta bort tilläggsinstansen.

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

Nästa steg

I den här självstudien distribuerade du Azure Container Storage i ditt AKS-kluster. Du har lärt dig att:

  • Aktivera Azure Container Storage i ditt AKS-kluster.
  • Distribuera en podd med en allmän tillfällig volym.

I nästa handledning får du lära dig hur du distribuerar ett program till klustret.