Udostępnij przez


Samouczek — wdrażanie usługi Azure Container Storage w klastrze usługi AKS

W tym samouczku przedstawiono usługę Azure Container Storage i pokazano, jak wdrażać i zarządzać magazynem natywnym dla kontenerów dla aplikacji działających w usłudze Azure Kubernetes Service (AKS). Jeśli nie chcesz teraz wdrażać usługi Azure Container Storage, możesz pominąć ten samouczek i przejść bezpośrednio do sekcji Wdrażanie aplikacji w usłudze AKS. Usługa Azure Container Storage nie będzie potrzebna dla podstawowej aplikacji storefront w tej serii samouczków.

Usługa Azure Container Storage upraszcza zarządzanie stanowymi aplikacjami na platformie Kubernetes, oferując magazyn natywne dla kontenerów dostosowany do różnych obciążeń, w tym baz danych, platform analitycznych i aplikacji o wysokiej wydajności.

Po ukończeniu tego samouczka wykonasz następujące elementy:

  • Dowiedz się, jak usługa Azure Container Storage obsługuje różne obciążenia na platformie Kubernetes.
  • Wdróż usługę Azure Container Storage w klastrze usługi AKS.
  • Utwórz ogólny wolumin efemeryczny.

Zanim rozpoczniesz

W poprzednich samouczkach utworzyłeś obraz kontenera, przekazałeś go do wystąpienia ACR i utworzyłeś klaster AKS. Rozpocznij od Samouczka 1 — przygotuj aplikację dla usługi AKS, aby śledzić postępowanie.

  • Upewnij się, że region docelowy jest obsługiwany, przeglądając dostępność regionalną usługi Azure Container Storage.

  • Zainstaluj najnowszą wersję interfejsu wiersza polecenia platformy Azure (2.83.0 lub nowszą), a następnie zaloguj się przy użyciu polecenia az login. Nie używaj usługi Azure Cloud Shell, ponieważ az upgrade nie jest dostępna.

  • Zainstaluj klienta wiersza polecenia platformy Kubernetes, kubectl. Możesz zainstalować go lokalnie, uruchamiając polecenie az aks install-cli.

Ważne

Ten samouczek dotyczy usługi Azure Container Storage (wersja 2.x.x),która obsługuje lokalny dysk NVMe i usługę Azure Elastic SAN jako typy magazynu zapasowego. W tym samouczku używa się lokalnego dysku NVMe i tworzy uniwersalny wolumin efemeryczny. Aby korzystać z lokalnego urządzenia NVMe, jednostka SKU maszyny wirtualnej musi obsługiwać lokalne dyski danych NVMe, takie jak maszyny wirtualne zoptymalizowane pod kątem magazynu lub przyspieszone przez procesor GPU .

Jeśli wolisz używać usługi Azure Elastic SAN, zobacz Używanie usługi Azure Container Storage z elastyczną siecią SAN platformy Azure.

Instalowanie rozszerzenia Kubernetes

Dodaj lub zaktualizuj do najnowszej wersji programu k8s-extension, uruchamiając następujące polecenie.

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

Włączanie usługi Azure Container Storage w klastrze usługi AKS

Uruchom następujące polecenie, aby włączyć usługę Azure Container Storage w istniejącym klastrze usługi AKS przy użyciu lokalnego urządzenia NVMe. Usługa Azure Container Storage automatycznie instaluje najnowszą dostępną wersję i aktualizuje się automatycznie. Wybór wersji ręcznej nie jest obsługiwany.

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

Wdrożenie może potrwać do pięciu minut. Gdy konfiguracja zostanie zakończona, na klastrze AKS zainstalowany jest Azure Container Storage, a składniki dla lokalnego typu magazynu NVMe są wdrożone. Tworzy również domyślną local klasę przechowywania.

Nawiązywanie połączenia z klastrem i weryfikowanie stanu

Jeśli nie masz jeszcze połączenia z klastrem z poprzedniego samouczka, uruchom następujące polecenia. Jeśli masz już połączenie, możesz pominąć tę sekcję.

  1. Pobierz poświadczenia klastra i skonfiguruj interfejs wiersza polecenia platformy Kubernetes do ich użycia. Domyślnie poświadczenia są przechowywane w pliku ~/.kube/config. W razie potrzeby podaj inną ścieżkę przy użyciu argumentu --file .

    az aks get-credentials --resource-group myResourceGroup --name myAKSCluster
    
  2. Sprawdź połączenie, wyświetlając listę węzłów klastra.

    kubectl get nodes
    
  3. Upewnij się, że wszystkie węzły zgłaszają stan Ready.

Weryfikowanie klasy magazynu

Uruchom następujące polecenie, aby sprawdzić, czy klasa magazynu została utworzona:

kubectl get storageclass local

Powinny zostać wyświetlone dane wyjściowe podobne do następujących:

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

Wdróż pod z uniwersalnym woluminem efemerycznym

Utwórz pod przy użyciu narzędzia Fio (elastycznego testera we/wy) do testowania porównawczego i symulacji obciążenia przy użyciu ogólnego woluminu efemerycznego.

  1. Użyj ulubionego edytora tekstów, aby utworzyć plik manifestu YAML, taki jak code fiopod.yaml.

  2. Wklej następujący kod i zapisz plik.

    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
                resources:
                  requests:
                    storage: 10Gi
    
  3. Zastosuj plik manifestu YAML, aby wdrożyć pod.

    kubectl apply -f fiopod.yaml
    

Weryfikowanie wdrożenia i uruchamianie testów porównawczych

Sprawdź, czy pod jest uruchomiony:

kubectl get pod fiopod

Powinieneś zobaczyć pod w stanie Działający. Po uruchomieniu możesz wykonać test porównawczy fio:

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

Teraz wdrożyłeś pod korzystający z lokalnego NVMe jako pamięci masowej i może być używany w obciążeniach Kubernetes.

Aby dowiedzieć się więcej o usłudze Azure Container Storage, zobacz Co to jest usługa Azure Container Storage?

Czyszczenie zasobów

W pozostałej części tej serii samouczków nie będzie potrzebna usługa Azure Container Storage, dlatego zalecamy jego usunięcie, aby uniknąć naliczania niepotrzebnych opłat za platformę Azure.

  1. Usuń pod.

    kubectl delete pod fiopod
    
  2. Usuń ogólny wolumin efemeryczny.

    kubectl delete pv ephemeralvolume
    
  3. Usuń wystąpienie rozszerzenia.

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

Następny krok

W tym samouczku wdrożyłeś Azure Container Storage w klastrze AKS. Nauczyłeś się, jak:

  • Włącz usługę Azure Container Storage w klastrze usługi AKS.
  • Wdróż zasobnik z efemerycznym ogólnym woluminem.

W następnym samouczku dowiesz się, jak wdrożyć aplikację w klastrze.