Rozwiązywanie problemów z usługą Azure Container Storage w wersji zapoznawczej
Usługa Azure Container Storage to oparta na chmurze usługa zarządzania woluminami, wdrażania i orkiestracji wbudowana natywnie dla kontenerów. Skorzystaj z tego artykułu, aby rozwiązać typowe problemy z usługą Azure Container Storage i znaleźć rozwiązania problemów.
Rozwiązywanie problemów z instalacją
Nie można zainstalować usługi Azure Container Storage
Po uruchomieniu az aks create
polecenia może zostać wyświetlony komunikat Nie można zainstalować usługi Azure Container Storage. Klaster usługi AKS jest tworzony. Uruchom polecenie az aks update
wraz z poleceniem --enable-azure-container-storage
, aby włączyć usługę Azure Container Storage.
Ten komunikat oznacza, że usługa Azure Container Storage nie została zainstalowana, ale klaster usługi AKS został prawidłowo utworzony.
Aby zainstalować usługę Azure Container Storage w klastrze i utworzyć pulę magazynów, uruchom następujące polecenie. 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
.
az aks update -n <cluster-name> -g <resource-group> --enable-azure-container-storage <storage-pool-type>
Nie można ustawić typu puli magazynów na NVMe
Jeśli spróbujesz zainstalować usługę Azure Container Storage z dyskiem efemerycznym, w szczególności z lokalnym dyskiem NVMe w klastrze, w którym jednostka SKU maszyny wirtualnej nie ma dysków NVMe, zostanie wyświetlony następujący komunikat o błędzie: Nie można ustawić opcji --storage-pool-as NVMe, ponieważ żadna z pul węzłów nie może obsługiwać efemerycznego dysku NVMe.
Aby rozwiązać ten problem, utwórz pulę węzłów przy użyciu jednostki SKU maszyny wirtualnej z dyskami NVMe i spróbuj ponownie. Zobacz Maszyny wirtualne zoptymalizowane pod kątem magazynu.
Rozwiązywanie problemów z pulą magazynów
Aby sprawdzić stan pul magazynów, uruchom polecenie kubectl describe sp <storage-pool-name> -n acstor
. Poniżej przedstawiono niektóre problemy, które mogą wystąpić.
Tworzenie elastycznej sieci SAN kończy się niepowodzeniem
Jeśli próbujesz utworzyć elastyczną pulę magazynów SIECI SAN, może zostać wyświetlony komunikat Tworzenie elastycznej sieci SAN platformy Azure nie powiodło się: Maksymalna możliwa liczba elastycznych sieci SAN dla utworzonej już subskrypcji. Oznacza to, że osiągnięto limit liczby elastycznych zasobów sieci SAN, które można wdrożyć w regionie na subskrypcję. Limit można sprawdzić tutaj: Elastyczna skalowalność sieci SAN i cele wydajności. Rozważ usunięcie wszystkich istniejących elastycznych zasobów sieci SAN w ramach subskrypcji, które nie są już używane, lub spróbuj utworzyć pulę magazynów w innym regionie.
Nie znaleziono urządzeń zablokowanych
Jeśli zostanie wyświetlony ten komunikat, prawdopodobnie próbujesz utworzyć pulę magazynów dysków efemerycznych w klastrze, w którym jednostka SKU maszyny wirtualnej nie ma dysków NVMe.
Aby rozwiązać ten problem, utwórz pulę węzłów przy użyciu jednostki SKU maszyny wirtualnej z dyskami NVMe i spróbuj ponownie. Zobacz Maszyny wirtualne zoptymalizowane pod kątem magazynu.
Typ puli magazynów jest już włączony
Jeśli spróbujesz włączyć typ puli magazynów, który jest już włączony, zostanie wyświetlony następujący komunikat: Nieprawidłowa --enable-azure-container-storage
wartość. Usługa Azure Container Storage jest już włączona dla typu <storage-pool-type>
puli magazynów w klastrze. Możesz sprawdzić, czy istnieją istniejące pule magazynów utworzone, uruchamiając polecenie kubectl get sp -n acstor
.
Wyłączanie typu puli magazynów
Podczas wyłączania typu puli magazynów za pośrednictwem usługi Azure Container Storage lub odinstalowywania go za pośrednictwem az aks update --disable-azure-container-storage <storage-pool-type>
az aks update --disable-azure-container-storage all
programu , jeśli istnieje istniejąca pula magazynów tego typu, zostanie wyświetlony następujący komunikat:
Wyłączenie usługi Azure Container Storage dla typu <storage-pool-type>
puli magazynów spowoduje wymuszone usunięcie wszystkich pul magazynów tego samego typu i wpłynie na aplikacje korzystające z tych pul magazynów. Wymuszone usunięcie pul magazynów może również prowadzić do wycieku zasobów magazynu, które są używane. Czy chcesz sprawdzić, czy którekolwiek z pul magazynów typu <storage-pool-type>
są używane przed wyłączeniem usługi Azure Container Storage? (Y/n)
Jeśli wybierzesz wartość Y, zostanie uruchomiona automatyczna walidacja, aby upewnić się, że nie ma woluminów trwałych utworzonych z puli magazynów. Wybranie n pomija tę walidację i wyłącza typ puli magazynów, usuwając wszystkie istniejące pule magazynów i potencjalnie wpływające na aplikację.
Nie można usunąć grupy zasobów zawierającej klaster usługi AKS
Jeśli utworzono elastyczną pulę magazynów SIECI SAN, być może nie będzie można usunąć grupy zasobów, w której znajduje się klaster usługi AKS.
Aby rozwiązać ten problem, zaloguj się do witryny Azure Portal i wybierz pozycję Grupy zasobów. Znajdź utworzoną grupę zasobów usługi AKS (nazwa grupy zasobów rozpoczyna się od MC_). Wybierz obiekt zasobu SIECI SAN w tej grupie zasobów. Ręcznie usuń wszystkie woluminy i grupy woluminów. Następnie ponów próbę usunięcia grupy zasobów zawierającej klaster usługi AKS.
Rozwiązywanie problemów z trwałym woluminem
Nie można utworzyć woluminów trwałych z pul magazynów dysków efemerycznych
Ponieważ dyski efemeryczne (lokalne dyski NVMe i SSD tymczasowe) są efemeryczne i nie trwałe, wymuszamy użycie ogólnych woluminów efemeryjnych Kubernetes. Jeśli spróbujesz utworzyć trwałe oświadczenie woluminu przy użyciu efemerycznej puli dysków, zostanie wyświetlony następujący błąd: Błąd z serwera (Zabronione): błąd podczas tworzenia "eph-pvc.yaml": odmowa elementu webhook przyjęcia "pvc.acstor.azure.com" żądanie: w pulach magazynu efemerycznego dozwolone są tylko ogólne woluminy efemeryczny.
Jeśli potrzebujesz woluminu trwałego, w którym wolumin ma cykl życia niezależny od każdego zasobnika korzystającego z woluminu, usługa Azure Container Storage obsługuje replikację dla urządzenia NVMe. Możesz utworzyć pulę magazynów z replikacją i utworzyć woluminy trwałe z tego miejsca. Aby uzyskać wskazówki, zobacz Tworzenie puli magazynów z replikacją woluminów. Należy pamiętać, że ponieważ efemeryczne pule magazynów dysków zużywają wszystkie dostępne dyski NVMe, przed utworzeniem nowej puli magazynów z włączoną replikacją należy usunąć wszystkie istniejące pule magazynów efemerycznych dysków. Jeśli nie potrzebujesz trwałości, możesz utworzyć ogólny wolumin efemeryczny.
Oczekiwanie na utworzenie zasobnika z powodu efemerycznego rozmiaru woluminu powyżej dostępnej pojemności
Wolumin efemeryczny jest przydzielany w jednym węźle. Podczas konfigurowania rozmiaru woluminów efemerycznych dla zasobników rozmiar powinien być mniejszy niż dostępna pojemność efemerycznego dysku jednego węzła. W przeciwnym razie tworzenie zasobnika będzie w stanie oczekiwania.
Użyj następującego polecenia, aby sprawdzić, czy tworzenie zasobnika jest w stanie oczekiwania.
$ kubectl get pods
NAME READY STATUS RESTARTS AGE
fiopod 0/1 Pending 0 17s
W tym przykładzie zasobnik fiopod
jest w Pending
stanie.
Użyj następującego polecenia, aby sprawdzić, czy zasobnik ma zdarzenie ostrzegawcze dotyczące trwałego tworzeniavolumeclaim.
$ kubectl describe pod fiopod
...
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Warning FailedScheduling 40s default-scheduler 0/3 nodes are available: waiting for ephemeral volume controller to create the persistentvolumeclaim "fiopod-ephemeralvolume". preemption: 0/3 nodes are available: 3 Preemption is not helpful for scheduling..
W tym przykładzie zasobnik wyświetla zdarzenie ostrzegawcze podczas tworzenia trwałego oświadczenia fiopod-ephemeralvolume
woluminu .
Użyj następującego polecenia, aby sprawdzić, czy nie można aprowizować trwałego oświadczenia woluminu z powodu niewystarczającej pojemności.
$ kubectl describe pvc fiopod-ephemeralvolume
...
Warning ProvisioningFailed 107s (x13 over 20m) containerstorage.csi.azure.com_aks-nodepool1-29463073-vmss000000_7f5bd88d-be76-40d2-a59e-e51ce000e35e failed to provision volume with StorageClass "acstor-ephemeraldisk-temp": rpc error: code = Internal desc = Operation failed: GenericOperation("error in response: status code '507 Insufficient Storage', content: 'RestJsonError { details: \"Operation failed due to insufficient resources: Not enough suitable pools available, 0/1\", message: \"SvcError :: NotEnoughResources\", kind: ResourceExhausted }'")
W tym przykładzie Insufficient Storage
przedstawiono przyczynę niepowodzenia aprowizacji woluminów.
Uruchom następujące polecenie, aby sprawdzić dostępną pojemność dysku efemerycznego pojedynczego węzła.
$ kubectl get diskpool -n acstor
NAME CAPACITY AVAILABLE USED RESERVED READY AGE
ephemeraldisk-temp-diskpool-jaxwb 75660001280 75031990272 628011008 560902144 True 21h
ephemeraldisk-temp-diskpool-wzixx 75660001280 75031990272 628011008 560902144 True 21h
ephemeraldisk-temp-diskpool-xbtlj 75660001280 75031990272 628011008 560902144 True 21h
W tym przykładzie dostępna pojemność dysku tymczasowego dla jednego węzła to 75031990272
bajty lub 69 GiB.
Dostosuj rozmiar magazynu woluminów poniżej dostępnej pojemności i ponownie wdróż zasobnik. Zobacz Wdrażanie zasobnika z ogólnym woluminem efemerycznym.
Zobacz też
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla