Szybki start: używanie usługi Azure Container Storage z usługą Azure Kubernetes Service
Usługa Azure Container Storage to oparta na chmurze usługa zarządzania woluminami, wdrażania i orkiestracji wbudowana natywnie dla kontenerów. W tym przewodniku Szybki start pokazano, jak nawiązać połączenie z klastrem usługi Azure Kubernetes Service (AKS) opartym na systemie Linux, zainstalować usługę Azure Container Storage i utworzyć pulę magazynów przy użyciu interfejsu wiersza polecenia platformy Azure.
Ważne
Usługa Azure Container Storage jest teraz ogólnie dostępna od wersji 1.1.0. Wersja ogólnie dostępna jest zalecana w przypadku obciążeń produkcyjnych.
Wymagania wstępne
Jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto.
Ten artykuł wymaga najnowszej wersji (2.35.0 lub nowszej) interfejsu wiersza polecenia platformy Azure. Zobacz Jak zainstalować interfejs wiersza polecenia platformy Azure. Jeśli używasz środowiska powłoki Bash w usłudze Azure Cloud Shell, najnowsza wersja jest już zainstalowana. Jeśli planujesz uruchamiać polecenia lokalnie zamiast w usłudze Azure Cloud Shell, pamiętaj, aby uruchamiać je z uprawnieniami administracyjnymi. Aby uzyskać więcej informacji, zobacz Rozpoczynanie pracy z usługą Azure Cloud Shell.
Potrzebny będzie klient wiersza polecenia platformy 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-cli
polecenie .Sprawdź, czy region docelowy jest obsługiwany w regionach usługi Azure Container Storage.
Jeśli klaster usługi AKS nie został jeszcze utworzony, postępuj zgodnie z instrukcjami dotyczącymi instalowania klastra usługi AKS.
Wprowadzenie
Zanotuj identyfikator subskrypcji platformy Azure. Jeśli chcesz użyć usługi Azure Elastic SAN jako magazynu danych, musisz mieć rolę właściciela usługi Azure Container Storage lub rolę współautora usługi Azure Container Storage przypisaną do subskrypcji platformy Azure. Dostęp na poziomie właściciela umożliwia zainstalowanie rozszerzenia usługi Azure Container Storage, przyznanie dostępu do jej zasobów magazynu i udzielenie uprawnień do konfigurowania zasobu elastycznej sieci SAN platformy Azure. Dostęp na poziomie współautora umożliwia zainstalowanie rozszerzenia i przyznanie dostępu do zasobów magazynu. Jeśli planujesz używanie dysków platformy Azure lub efemerycznego dysku jako magazynu danych, nie potrzebujesz specjalnych uprawnień do subskrypcji.
Uruchom usługę Azure Cloud Shell lub jeśli używasz instalacji lokalnej, zaloguj się na platformie Azure przy użyciu polecenia az login .
Jeśli używasz usługi Azure Cloud Shell, może zostać wyświetlony monit o zainstalowanie magazynu. Wybierz subskrypcję platformy Azure, w której chcesz utworzyć konto magazynu, a następnie wybierz pozycję Utwórz.
Instalowanie wymaganego rozszerzenia
Dodaj lub uaktualnij do najnowszej wersji programu k8s-extension
, uruchamiając następujące polecenie.
az extension add --upgrade --name k8s-extension
Ustawianie kontekstu subskrypcji
Ustaw kontekst subskrypcji platformy az account set
Azure przy użyciu polecenia . Możesz wyświetlić identyfikatory subskrypcji dla wszystkich subskrypcji, do których masz dostęp, uruchamiając az account list --output table
polecenie . Pamiętaj, aby zastąpić <subscription-id>
element identyfikatorem subskrypcji.
az account set --subscription <subscription-id>
Łączenie z klastrem
Aby nawiązać połączenie z klastrem, użyj 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ąc az aks install-cli
polecenie .
Skonfiguruj
kubectl
, aby nawiązać połączenie z klastremaz aks get-credentials
przy użyciu polecenia . Następujące polecenie:- Pobiera poświadczenia i konfiguruje interfejs wiersza polecenia platformy Kubernetes do ich używania.
- Używa
~/.kube/config
metody , domyślnej lokalizacji pliku konfiguracji platformy Kubernetes. Możesz określić inną lokalizację pliku konfiguracji platformy Kubernetes przy użyciu argumentu --file .
az aks get-credentials --resource-group <resource-group> --name <cluster-name>
Sprawdź połączenie z klastrem
kubectl get
przy użyciu polecenia . To polecenie zwraca listę węzłów klastra.kubectl get nodes
Poniż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.25.6 aks-nodepool1-34832848-vmss000001 Ready agent 80m v1.25.6 aks-nodepool1-34832848-vmss000002 Ready agent 80m v1.25.6
Zanotuj nazwę puli węzłów. W tym przykładzie będzie to pula nodepool1.
Wybieranie opcji magazynu danych dla puli magazynów
Przed wdrożeniem usługi Azure Container Storage należy zdecydować, której opcji magazynu zaplecza chcesz użyć do utworzenia puli magazynów i woluminów. Obecnie są dostępne trzy opcje:
Elastyczna sieć SAN platformy Azure: Elastyczna sieć SAN platformy Azure jest dobrym rozwiązaniem w przypadku baz danych ogólnego przeznaczenia, usług przesyłania strumieniowego i komunikatów, środowisk ciągłej integracji/ciągłego wdrażania oraz innych obciążeń warstwy 1/warstwy 2. Magazyn jest aprowizowany na żądanie na utworzony wolumin i migawkę woluminu. Wiele klastrów może uzyskiwać dostęp do pojedynczej sieci SAN jednocześnie, jednak woluminy trwałe mogą być dołączane tylko przez jednego użytkownika jednocześnie.
Dyski platformy Azure: dyski platformy Azure są odpowiednie dla baz danych, takich jak MySQL, MongoDB i PostgreSQL. Magazyn jest aprowizowany na docelowy rozmiar puli magazynów kontenerów i maksymalny rozmiar woluminu.
Dysk efemeryczny: ta opcja używa lokalnych dysków NVMe lub dysków SSD tymczasowych w węzłach klastra usługi AKS. Jest ona bardzo wrażliwa na opóźnienia (małe opóźnienie podrzędne ms), dlatego najlepiej jest używać aplikacji bez wymagań dotyczących trwałości danych lub z wbudowaną obsługą replikacji danych, taką jak Cassandra. Usługa AKS odnajduje dostępny magazyn efemeryczny w węzłach usługi AKS i uzyskuje dyski na potrzeby wdrożenia woluminu.
Uwaga
W przypadku usług Azure Elastic SAN i Azure Disks usługa Azure Container Storage wdroży magazyn zapasowy w ramach instalacji. Nie musisz tworzyć własnej elastycznej sieci SAN ani dysku platformy Azure. Aby można było korzystać z elastycznej sieci SAN, musisz mieć rolę właściciela magazynu kontenera platformy Azure lub rolę Współautor usługi Azure Container Storage w subskrypcji platformy Azure.
Użycie zasobów
Usługa Azure Container Storage wymaga pewnych zasobów węzłów do uruchamiania składników usługi. Na podstawie wyboru typu puli magazynów, który określisz podczas instalowania usługi Azure Container Storage, są to zasoby, które będą używane:
Typ puli magazynów | Rdzenie procesora CPU | RAM |
---|---|---|
Azure Elastic SAN | Brak | Brak |
Azure Disks | 1 | 1 GiB |
Dysk efemeryczny — tymczasowy dysk SSD | 1 | 1 GiB |
Dysk efemeryczny — lokalne urządzenie NVMe (warstwa Standardowa) | 25% rdzeni (można zaktualizować warstwę wydajności)* | 1 GiB |
Użyte zasoby są na węzeł i będą używane dla każdego węzła w puli węzłów, w której zostanie zainstalowana usługa Azure Container Storage. Jeśli węzły nie mają wystarczającej ilości zasobów, uruchomienie usługi Azure Container Storage zakończy się niepowodzeniem. Platforma Kubernetes automatycznie spróbuje ponownie zainicjować te nieudane zasobniki, więc jeśli zasoby zostaną wyzwolone, te zasobniki można zainicjować ponownie.
*W typie efemerycznego dysku puli magazynów — lokalne urządzenie NVMe ze standardową (domyślną) warstwą wydajności, jeśli używasz wielu typów jednostek SKU maszyn wirtualnych dla węzłów klastra, używane rdzenie procesora CPU mają zastosowanie do najmniejszej używanej jednostki SKU. Jeśli na przykład używasz kombinacji 8-rdzeniowych i 16-rdzeniowych typów maszyn wirtualnych, użycie zasobów wynosi 2 rdzenie. Możesz zaktualizować warstwę wydajności, aby użyć większej wartości procentowej rdzeni i uzyskać większą liczbę operacji we/wy na sekundę.
Upewnij się, że typ maszyny wirtualnej dla klastra spełnia następujące kryteria
Do korzystania z usługi Azure Container Storage potrzebna jest pula węzłów zawierająca co najmniej trzy maszyny wirtualne z systemem Linux. Każda maszyna wirtualna powinna mieć co najmniej cztery procesory wirtualne (vCPU). Usługa Azure Container Storage będzie używać jednego rdzenia do przetwarzania we/wy na każdej maszynie wirtualnej, w której jest wdrażane rozszerzenie.
Postępuj zgodnie z tymi wytycznymi podczas wybierania typu maszyny wirtualnej dla węzłów klastra. Musisz wybrać typ maszyny wirtualnej, który obsługuje usługę Azure Premium Storage.
- Jeśli zamierzasz używać usługi Azure Elastic SAN lub Azure Disks jako magazynu zapasowego , wybierz typ maszyny wirtualnej ogólnego przeznaczenia, taki jak standard_d4s_v5.
- Jeśli zamierzasz używać dysku efemerycznego z lokalnym dyskiem NVMe, wybierz jednostkę SKU maszyny wirtualnej, która obsługuje lokalne dyski danych NVMe, na przykład jednostki SKU maszyn wirtualnych zoptymalizowane pod kątem magazynu lub jednostki SKU przyspieszonej maszyny wirtualnej procesora GPU.
- Jeśli zamierzasz używać dysku efemerycznego z dyskami SSD tymczasowymi, wybierz maszynę wirtualną z tymczasowym dyskiem SSD, takim jak Ev3 i seria Esv3.
Instalowanie usługi Azure Container Storage w klastrze usługi AKS
Polecenie instalacji różni się w zależności od tego, czy masz już w wersji zapoznawczej wystąpienie usługi Azure Container Storage uruchomione w klastrze usługi AKS, czy też instalujesz usługę Azure Container Storage w klastrze po raz pierwszy.
Uaktualnianie instalacji w wersji zapoznawczej do ogólnie dostępnej wersji
Jeśli masz już w wersji zapoznawczej wystąpienie usługi Azure Container Storage uruchomione w klastrze, zalecamy zaktualizowanie do najnowszej ogólnie dostępnej wersji, uruchamiając następujące polecenie. Jeśli instalujesz usługę Azure Container Storage po raz pierwszy w klastrze, przejdź do sekcji Instalowanie usługi Azure Container Storage i tworzenie puli magazynów. Możesz również zainstalować usługę Azure Container Storage w określonych pulach węzłów.
az k8s-extension update --cluster-type managedClusters --cluster-name <cluster-name> --resource-group <resource-group> --name azurecontainerstorage --version 1.1.0 --auto-upgrade false --release-train stable
Pamiętaj, aby zastąpić <cluster-name>
wartości i <resource-group>
własnymi wartościami.
Instalowanie usługi Azure Container Storage i tworzenie puli magazynów
Przed zainstalowaniem upewnij się, że klaster usługi AKS spełnia wymagania dotyczące maszyny wirtualnej.
Uruchom następujące polecenie, aby zainstalować usługę Azure Container Storage w klastrze i utworzyć pulę magazynów. Zastąp <cluster-name>
wartości i <resource-group>
własnymi wartościami. Zastąp ciąg <storage-pool-type>
ciągiem azureDisk
, ephemeralDisk
lub elasticSan
. W przypadku wybrania ephemeralDisk
opcji możesz również określić --storage-pool-option
wartość , a wartości mogą mieć NVMe
wartość lub Temp
.
Uruchomienie tego polecenia spowoduje włączenie usługi Azure Container Storage w puli węzłów systemowych, która domyślnie ma nazwę nodepool1
*. Jeśli chcesz ją włączyć w innych pulach węzłów, zobacz Instalowanie usługi Azure Container Storage w określonych pulach węzłów. Jeśli chcesz określić dodatkowe parametry, zobacz Parametry puli magazynów usługi Azure Container Storage.
*Jeśli istnieją jakiekolwiek pule węzłów z etykietą acstor.azure.com/io-engine:acstor
, usługa Azure Container Storage zostanie zainstalowana domyślnie. W przeciwnym razie jest on zainstalowany w puli węzłów systemowych.
Ważne
Jeśli klaster usługi AKS został utworzony przy użyciu witryny Azure Portal: klaster prawdopodobnie będzie miał pulę węzłów użytkownika i pulę węzłów systemu/agenta. Jeśli jednak klaster składa się tylko z puli węzłów systemowych, czyli w przypadku klastrów testowych/deweloperskich utworzonych w witrynie Azure Portal, należy najpierw dodać nową pulę węzłów użytkownika, a następnie oznaczyć ją etykietą. Dzieje się tak dlatego, że podczas tworzenia klastra usługi AKS przy użyciu witryny Azure Portal do puli węzłów systemu/agenta jest dodawana taint CriticalAddOnsOnly
, która blokuje instalację usługi Azure Container Storage w puli węzłów systemowych. Ta metoda nie jest dodawana podczas tworzenia klastra usługi AKS przy użyciu interfejsu wiersza polecenia platformy Azure.
az aks update -n <cluster-name> -g <resource-group> --enable-azure-container-storage <storage-pool-type>
Wdrożenie potrwa od 10 do 15 minut. Po zakończeniu będziesz mieć zainstalowany klaster usługi AKS z usługą Azure Container Storage, składniki dla wybranego typu puli magazynów i domyślną pulę magazynów. Jeśli chcesz włączyć dodatkowe typy puli magazynów w celu utworzenia dodatkowych pul magazynów, zobacz Włączanie dodatkowych typów puli magazynów.
Ważne
Jeśli określono usługę Azure Elastic SAN jako magazyn zapasowy dla puli magazynów i nie masz roli właściciela usługi Azure Container Storage ani roli Współautor magazynu kontenera platformy Azure przypisanej do subskrypcji platformy Azure, instalacja usługi Azure Container Storage zakończy się niepowodzeniem i pula magazynu nie zostanie utworzona. Jeśli spróbujesz włączyć usługę Azure Elastic SAN jako dodatkowy typ puli magazynów bez żadnej z tych ról, poprzednia instalacja i pule magazynów pozostaną nienaruszone, a elastyczna pula magazynów SAN nie zostanie utworzona.
Instalowanie usługi Azure Container Storage w określonych pulach węzłów
Jeśli chcesz zainstalować usługę Azure Container Storage w określonych pulach węzłów, postępuj zgodnie z tymi instrukcjami. Pule węzłów muszą zawierać co najmniej trzy maszyny wirtualne z systemem Linux.
Uruchom następujące polecenie, aby wyświetlić listę dostępnych pul węzłów. Zastąp
<resource-group>
wartości i<cluster-name>
własnymi wartościami.az aks nodepool list --resource-group <resource-group> --cluster-name <cluster-name>
Uruchom następujące polecenie, aby zainstalować usługę Azure Container Storage w określonych pulach węzłów. Zastąp
<cluster-name>
wartości i<resource-group>
własnymi wartościami. Zastąp ciąg<storage-pool-type>
ciągiemazureDisk
,ephemeralDisk
lubelasticSan
. W przypadku wybraniaephemeralDisk
opcji możesz również określić opcję --storage-pool-, a wartości mogą miećNVMe
wartość lubTemp
.az aks update -n <cluster-name> -g <resource-group> --enable-azure-container-storage <storage-pool-type> --azure-container-storage-nodepools <comma separated values of nodepool names>
Włączanie dodatkowych typów puli magazynów
Jeśli chcesz włączyć typ puli magazynów, który nie został pierwotnie włączony podczas instalacji usługi Azure Container Storage, uruchom następujące polecenie. Zastąp <cluster-name>
wartości i <resource-group>
własnymi wartościami. W polu <storage-pool-type>
określ azureDisk
wartość , ephemeralDisk
lub elasticSan
.
Jeśli chcesz określić dodatkowe parametry puli magazynów za pomocą tego polecenia, zobacz tę tabelę.
az aks update -n <cluster-name> -g <resource-group> --enable-azure-container-storage <storage-pool-type>
Jeśli włączony typ nowej puli magazynów zajmuje więcej zasobów niż typ puli magazynów, który jest już włączony, użycie zasobów zmieni się na maksymalną kwotę.
Napiwek
Jeśli dodano nową pulę węzłów do klastra i chcesz uruchomić usługę Azure Container Storage w tej puli węzłów, możesz określić pulę --azure-container-storage-nodepools <nodepool-name>
węzłów przy użyciu az aks update
polecenia .
Wyświetlanie dostępnych 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
Message
Jeśli parametr nie powiedzie StoragePool is ready
, pula magazynów nadal tworzy lub napotkała problem. Zobacz Rozwiązywanie problemów z usługą Azure Container Storage.
Wyłączanie typów puli magazynów
Jeśli nie używasz już określonego typu puli magazynów i chcesz wyłączyć go, aby zwolnić zasoby w puli węzłów, uruchom następujące polecenie. Zastąp <cluster-name>
wartości i <resource-group>
własnymi wartościami. W polu <storage-pool-type>
określ azureDisk
wartość , ephemeralDisk
lub elasticSan
.
az aks update -n <cluster-name> -g <resource-group> --disable-azure-container-storage <storage-pool-type>
Uwaga
Jeśli masz istniejącą pulę magazynów typu, który próbujesz wyłączyć, typ puli magazynów nie będzie wyłączony.
Następny krok
Aby utworzyć woluminy, wybierz link dla wybranego typu magazynu zapasowego.
- Tworzenie woluminu trwałego za pomocą dysków zarządzanych platformy Azure
- Tworzenie trwałego woluminu za pomocą elastycznej sieci SAN platformy Azure
- Tworzenie ogólnego woluminu efemerycznego przy użyciu lokalnego urządzenia NVMe
- Tworzenie ogólnego woluminu efemerycznego przy użyciu dysku SSD tymczasowego
- Tworzenie woluminu trwałego przy użyciu lokalnego dysku NVMe i replikacji woluminu