Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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.
Ważne
W tym artykule wyjaśniono, jak zainstalować usługę Azure Container Storage (wersja 1.x.x), która teraz jawnie wymaga parametru --container-storage-version 1 przypinania wersji do instalacji.
Usługa Azure Container Storage (wersja 2.x.x) jest teraz dostępna.
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.
- Zapoznaj się z wieloma opcjami zaplecza magazynu, aby dostosować magazyn do potrzeb aplikacji.
- Wdróż usługę Azure Container Storage (w wersji 1.x.x) w klastrze usługi AKS i 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.
- Ten samouczek wymaga użycia interfejsu wiersza polecenia platformy Azure w wersji 2.35.0 lub nowszej. Portal i program PowerShell nie są obecnie obsługiwane w usłudze Azure Container Storage. Sprawdź swoją wersję z pomocą
az --version. Aby zainstalować lub uaktualnić, zobacz Instalowanie interfejsu wiersza polecenia platformy Azure. Jeśli korzystasz ze środowiska Bash w usłudze Azure Cloud Shell, najnowsza wersja jest już zainstalowana. - Musisz mieć istniejący klaster AKS oparty na systemie Linux z co najmniej 3 węzłami, z jednostkami SKU maszyn wirtualnych zoptymalizowanymi pod kątem magazynu lub przyspieszonymi jednostkami SKU maszyn wirtualnych GPU. Zobacz Samouczek 3 — Utworzenie klastra AKS.
- Będziesz potrzebować klienta wiersza polecenia Kubernetes,
kubectl. Jest on już zainstalowany, jeśli używasz usługi Azure Cloud Shell lub możesz zainstalować go lokalnie, uruchamiającaz aks install-clipolecenie .
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
Nawiązywanie połączenia z klastrem i sprawdzanie stanu węzła
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ę.
Uruchom następujące polecenie, aby połączyć się z klastrem.
az aks get-credentials --resource-group myResourceGroup --name myAKSClusterSprawdź połączenie z klastrem, używając polecenia
kubectl get. To polecenie zwraca listę węzłów klastra.kubectl get nodesPoniższy przykład danych wyjściowych przedstawia węzły w klastrze. Upewnij się, że stan dla wszystkich węzłów ma wartość Gotowe:
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
Wybieranie opcji magazynu zapasowego
Usługa Azure Container Storage (wersja 1.x.x) używa pul magazynów do aprowizowania trwałych i ogólnych woluminów oraz zarządzania nimi. Oferuje ona różne opcje zaplecza magazynowego dla pul magazynowych, z których każda jest odpowiednia dla konkretnych obciążeń. Wybór odpowiedniego typu magazynu ma kluczowe znaczenie dla optymalizacji wydajności, trwałości i wydajności kosztów obciążeń. Na potrzeby tego samouczka użyjemy efemerycznego dysku z lokalnym dyskiem NVMe jako magazynu zapasowego w celu utworzenia ogólnego woluminu efemerycznego. Jednak przyjrzymy się również innym opcjom przechowywania kopii zapasowych, które umożliwiają tworzenie woluminów trwałych.
Dysk efemeryczny
Dysk efemeryczny korzysta z zasobów magazynu lokalnego w węzłach usługi AKS (lokalnego dysku NVMe lub dysku ssd tymczasowego). Oferuje ona niskie opóźnienia poniżej milisekundy i wysokie IOPS, ale brak trwałości danych, jeśli maszyna wirtualna zostanie uruchomiona ponownie. Dysk efemeryczny najlepiej nadaje się dla aplikacji, takich jak Cassandra, które priorytetują szybkość nad trwałością i idealnie nadają się do obciążeń z własną replikacją na poziomie aplikacji.
Możesz użyć dysku efemerycznego, aby utworzyć ogólne woluminy efemeryczne lub woluminy trwałe, mimo że dane zostaną utracone, jeśli maszyna wirtualna zostanie ponownie uruchomiona.
Dyski Azure
Idealne rozwiązanie dla baz danych, takich jak PostgreSQL i MongoDB, usługa Azure Disks oferuje trwałość, skalowalność i wielowarstwową wydajność, w tym ssd w warstwie Premium i ssd w warstwie Ultra.
Dyski platformy Azure umożliwiają automatyczne przydzielanie woluminów magazynowych oraz zapewniają wbudowaną nadmiarowość i wysoką dostępność.
Azure Elastic SAN (wersja zapoznawcza)
Zaprojektowana z myślą o potrzebach wspólnego magazynowania i baz danych o uniwersalnym zastosowaniu, które wymagają skalowalności i wysokiej dostępności, usługa Azure Elastic SAN jest odpowiednim rozwiązaniem dla obciążeń, takich jak potoki CI/CD (ciągłej integracji/ciągłego wdrażania) lub przetwarzanie danych na dużą skalę.
Włączanie usługi Azure Container Storage (wersja 1.x.x) i tworzenie puli magazynów
Uruchom następujące polecenie, aby zainstalować usługę Azure Container Storage w klastrze i utworzyć lokalną pulę magazynów NVMe.
az aks update -n myAKSCluster -g myResourceGroup --enable-azure-container-storage ephemeralDisk --container-storage-version 1 --storage-pool-option NVMe
Wdrożenie powinno potrwać mniej niż 15 minut.
Weryfikowanie stanu puli magazynu
Po zakończeniu wdrażania składniki wybranego typu puli magazynów zostaną włączone i będziesz mieć domyślną pulę magazynów.
Aby uzyskać listę dostępnych pul magazynów, uruchom następujące polecenie:
kubectl get sp -n acstor
Aby sprawdzić stan puli magazynów, uruchom następujące polecenie:
kubectl describe sp <storage-pool-name> -n acstor
Jeśli Message nie wyświetla StoragePool is ready, to twoja pula magazynowa nadal się tworzy lub napotkała problem.
Wyświetlanie dostępnych klas przechowywania
Gdy pula magazynów jest gotowa do użycia, należy wybrać klasę magazynu, aby zdefiniować sposób dynamicznego tworzenia i wdrażania woluminów magazynu.
Uruchom kubectl get sc, aby wyświetlić dostępne klasy magazynu. Powinna widnieć klasa pamięci o nazwie acstor-<storage-pool-name>. Użyj tej klasy pamięci w następnej sekcji, aby wdrożyć pod.
Wdrażanie zasobnika z ogólnym woluminem efemerycznym
Utwórz pod przy użyciu narzędzia Fio (elastycznego testera wejścia/wyjścia) do testowania porównawczego i symulacji obciążenia, który używa ogólnego efemerycznego woluminu.
Użyj ulubionego edytora tekstów, aby utworzyć plik manifestu YAML, taki jak
code acstor-pod.yaml.Wklej następujący kod i zapisz plik.
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: 1GiJeśli zmienisz rozmiar woluminu, upewnij się, że jest on mniejszy niż dostępna pojemność dysku efemerycznego pojedynczego węzła. Uruchom polecenie
kubectl get diskpool -n acstor, aby sprawdzić dostępną pojemność.Zastosuj plik manifestu YAML, aby wdrożyć pod.
kubectl apply -f acstor-pod.yamlPowinny zostać wyświetlone dane wyjściowe podobne do następujących:
pod/fiopod createdSprawdź, czy zasobnik jest uruchomiony i czy żądanie woluminu efemerycznego zostało pomyślnie powiązane z zasobnikiem.
kubectl describe pod fiopod kubectl describe pvc fiopod-ephemeralvolume
Teraz wdrożyłeś pod korzystający z lokalnego NVMe jako pamięci masowej i może być używany w obciążeniach Kubernetes.
Przed aprowizowaniem dodatkowych woluminów sprawdź dostępną pojemność dysków efemerycznych:
kubectl describe node <node-name>
Aby dowiedzieć się więcej o usłudze Azure Container Storage (wersja 1.x.x), w tym o sposobie tworzenia woluminów trwałych, 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.
Usuń pod.
kubectl delete pod fiopodUsuń pulę pamięci masowej.
kubectl delete sp -n acstor <storage-pool-name>Usuń wystąpienie rozszerzenia.
az aks update -n myAKSCluster -g myResourceGroup --disable-azure-container-storage all
Następny krok
W tym samouczku wdrożono usługę Azure Container Storage (w wersji 1.x.x) w klastrze usługi AKS. Nauczyłeś się, jak:
- Włącz usługę Azure Container Storage (w wersji 1.x.x) w klastrze usługi AKS.
- Wybierz typ magazynu zapasowego i utwórz pulę magazynów.
- Wdróż zasobnik z efemerycznym ogólnym woluminem.
W następnym samouczku dowiesz się, jak wdrożyć aplikację w klastrze.
Azure Kubernetes Service