Zagadnienia dotyczące magazynu związane z usługą Azure Kubernetes Service (AKS)
Aby uruchamiać określone obciążenia aplikacji, organizacja lub przedsiębiorstwo musi zaprojektować odpowiednie możliwości platformy Azure Kubernetes Service (AKS). Te obciążenia prawdopodobnie mają różne wymagania dotyczące magazynu. Podczas wybierania odpowiedniego rozwiązania magazynu dla aplikacji masz wiele zagadnień, w tym wydajność, dostępność, możliwości odzyskiwania, zabezpieczenia i koszty. Celem tego artykułu jest wybranie odpowiedniej opcji lub kombinacji opcji dla obciążenia.
Platforma Kubernetes może uruchamiać obciążenia bezstanowe i stanowe. Obciążenia stanowe często wymagają rozwiązania magazynu do przechowywania stanu. Usługa AKS obsługuje wiele, zintegrowanych opcji magazynu natywnego, które obejmują zarządzane bazy danych, dyski (lub bloki) oraz pliki i magazyn obiektów blob (lub obiektów). Każda z tych opcji oferuje różne jednostki SKU, rozmiary i charakterystykę wydajności. Wybranie odpowiedniej opcji wymaga starannego rozważenia.
W tym artykule opisano czynniki i opcje, które należy wziąć pod uwagę w artykule Wybieranie odpowiedniej usługi magazynu i zagadnienia dotyczące projektowania. Zawiera konkretne zalecenia w temacie Zalecenia dotyczące projektowania.
Wybieranie odpowiedniej usługi magazynu
Wybranie odpowiednich jednostek SKU i rozmiarów dla początkowych wdrożeń wymaga pewnych ocen i, potencjalnie, weryfikacji koncepcji lub środowiska testowego. Poniżej przedstawiono ogólne wytyczne ułatwiające rozpoczęcie pracy z magazynem dla usługi AKS:
Dane ustrukturyzowane. W przypadku danych ustrukturyzowanych, które aplikacja może przechowywać w zarządzanej bazie danych dostępnej na platformie (na przykład Azure SQL), zalecamy użycie zarządzanej bazy danych.
Dane nieustrukturyzowane. W przypadku danych bez struktury, takich jak zdjęcia, filmy wideo i dokumenty tekstowe, użyj magazynu obiektów blob. Aplikacja może to zrobić przy użyciu obiektów blob, które są instalowane jako pliki za pośrednictwem sieciowego systemu plików (NFS) lub dostępne jako wirtualny system plików przy użyciu programu BlobFuse. Alternatywnie aplikacja może bezpośrednio odczytywać i zapisywać dane w magazynie obiektów blob.
Udostępnione dane aplikacji. W przypadku danych aplikacji udostępnionych, które wymagają wysokiej wydajności, użyj usługi Azure NetApp Files lub warstwy Premium usługi Azure Files. W przypadku udostępnionych danych konfiguracyjnych, które wymagają tylko ograniczonej wydajności, użyj warstwy Standardowa usługi Azure Files.
Przepustowość żądań aplikacji i magazynu. Upewnij się, że węzły mają wystarczającą przepustowość sieci do obsługi żądań aplikacji i żądań magazynu. Ruch magazynu przechodzi przez stos sieciowy, niezależnie od tego, czy protokół dla transferów jest blokiem komunikatów serwera (SMB) czy systemem plików NFS.
Małe opóźnienia, duża ilość operacji we/wy na sekundę. Użyj dysków do magazynowania, jeśli aplikacja potrzebuje stale małego opóźnienia w przypadku aplikacji do obsługi komunikatów i dużych operacji we/wy na sekundę (IOPS) i wysokiej przepływności do uruchamiania własnych baz danych na platformie Kubernetes. Aby uzyskać najlepszą wydajność, rozważ użycie dysków SSD Azure Premium, Azure Premium SSD w wersji 2 lub Azure Ultra Disk Storage.
Uwagi dotyczące projektowania
Poniżej przedstawiono zagadnienia dotyczące projektowania magazynu dla usługi AKS. Zastanów się, gdzie magazyn jest wymagany w środowisku usługi AKS i określ najlepsze rozwiązanie dla każdego wymagania.
Dyski systemu operacyjnego (OS)
W przypadku dysków systemu operacyjnego (OS) należy wziąć pod uwagę następujące czynniki:
Efemeryczne dyski dla systemu operacyjnego. Każda maszyna wirtualna na platformie Azure wymaga dysku dla swojego systemu operacyjnego. Ponieważ węzły platformy Kubernetes są efemeryczne, usługa AKS domyślnie używa efemerycznych dysków systemu operacyjnego w obsługiwanych rozmiarach maszyn wirtualnych. Aby uzyskać więcej informacji na temat efemerycznych dysków systemu operacyjnego, zobacz Efemeryczny system operacyjny.
Dyski zarządzane dla systemu operacyjnego. Jeśli obciążenie ich wymaga, możesz zamiast tego używać zwykłych dysków zarządzanych dla węzłów w klastrze usługi AKS. W ten sposób obsługiwane są obciążenia wymagające trwałych danych na dysku systemu operacyjnego. Aby uzyskać więcej informacji na temat opcji magazynu trwałego, zobacz Opcje magazynu dla aplikacji w usłudze Azure Kubernetes Service (AKS).
Ustalanie rozmiaru dysków zarządzanych. W przypadku wybrania dysku zarządzanego jako dysku systemu operacyjnego upewnij się, że rozmiar jest odpowiedni do obsługi wymagań systemu operacyjnego, systemu Kubernetes i obciążenia. Aby uzyskać więcej informacji na temat opcji i różnic, zobacz Typy dysków zarządzanych platformy Azure.
Dane aplikacji
Niektóre obciążenia wymagają spójnego magazynu danych do przechowywania danych aplikacji. Jeśli aplikacja wymaga bazy danych, rozważ eksplorowanie zarządzanych baz danych na platformie Azure, które obejmują następujące opcje:
Rozwiązania magazynu w usłudze AKS
Jeśli zarządzana baza danych nie spełnia wymagań aplikacji, rozważ użycie innej opcji magazynu dostępnej dla usługi AKS w celu przechowywania spójnych danych. Opcje obejmują rozwiązania oparte na dyskach, dyski efemeryczne, rozwiązania oparte na plikach, magazyn obiektów blob i inne opcje, które nie zostały omówione w tym artykule.
Rozwiązania oparte na dyskach
Dyski lub magazyn blokowy są idealne do przechowywania danych bezpośrednio na nieprzetworzonym urządzeniu opartym na blokach. Magazyn oparty na dyskach jest idealny do przechowywania danych dla baz danych hostów klastra Kubernetes. Na platformie Azure dyski zarządzane są rozwiązaniem umożliwiającym uzyskanie magazynu opartego na blokach.
Statyczny lub dynamicznie tworzony magazyn dyskowy. Zastanów się, czy chcesz użyć dysku statycznego utworzonego poza usługą AKS, czy chcesz, aby usługa AKS dynamicznie tworzyła magazyn dysków jako zasobnik lub zasobniki. Magazyn tworzony dynamicznie można również dynamicznie usuwać. Aby uzyskać więcej informacji, zobacz:
Nadmiarowość i wydajność. Rozważ nadmiarowość magazynu i wydajność wymaganą przez obciążenie. Aby uzyskać więcej informacji, zobacz:
Dysk udostępniony. Zastanów się, czy potrzebujesz dysku udostępnionego. Aby uzyskać więcej informacji na temat opcji, zobacz Udostępnianie dysku zarządzanego platformy Azure.
Rozmiar węzła dla dysków i przepływności. Rozważ rozmiar węzła Kubernetes. Musi być wystarczająco duża, aby obsługiwać zarówno liczbę dysków, jak i zagregowane wymagania dotyczące przepływności. Aby uzyskać informacje o rozmiarach i cechach, zobacz Rozmiary maszyn wirtualnych na platformie Azure.
Rozmiar dysku i wymagana wydajność. Zastanów się, czy dysk zarządzany ma odpowiedni rozmiar dla wymagań dotyczących wydajności obciążenia. Wydajność wzrasta wraz ze wzrostem rozmiaru dysku dla dysków HDD w warstwie Standardowa, SSD w warstwie Standardowa i SSD w warstwie Premium w wersji 1. Aby uzyskać więcej informacji na temat dysków zarządzanych, zobacz Typy dysków zarządzanych platformy Azure.
Rozwiązania dotyczące dysków efemerycznych
Zastanów się, czy aplikacja wymaga nietrwalego, tymczasowego magazynu lub miejsca, w którym chcesz używać dysków o wysokiej wydajności na maszynach wirtualnych zoptymalizowanych pod kątem magazynu. Aby nawiązać połączenie z woluminem efemerycznym, możesz użyć opcji emptyDir na platformie Kubernetes lub sterownika dla woluminu lokalnego CSI. Zalecamy użycie wartości emptyDir dla danych efemerycznych, takich jak miejsce tymczasowe. W przypadku magazynu w serii maszyn wirtualnych zoptymalizowanych pod kątem magazynu zalecamy używanie interfejsu CSI z efemerycznym woluminem lokalnym. Aby uzyskać więcej informacji na temat sterowników CSI, zobacz Sterowniki interfejsu magazynu kontenerów (CSI) w usłudze Azure Kubernetes Service (AKS).
Rozwiązania oparte na plikach
Zastanów się, czy zasobniki muszą współużytkować system plików. Udostępniony system plików jest idealny dla danych aplikacji i konfiguracji, które są odczytywane i współużytkowane przez wiele zasobników w klastrze Kubernetes. Magazyn plików uwidacznia udostępniony system plików za pośrednictwem systemu plików NFS lub SMB/Common Internet File System (CIFS). Platforma Azure oferuje dwa rozwiązania dla magazynu opartego na plikach: Azure Files i Azure NetApp Files.
Azure Files
W przypadku usługi Azure Files rozważ następujące opcje:
Statyczny lub dynamicznie utworzony udział plików. Zastanów się, czy chcesz użyć statycznego udziału plików utworzonego poza usługą AKS, czy chcesz, aby usługa AKS dynamicznie utworzyła udział plików w Twoim imieniu. Aby uzyskać więcej informacji, zobacz:
Wydajność w warstwie Standardowa lub Premium. Oceń, czy wydajność w warstwie Standardowa jest wystarczająca, czy potrzebujesz wydajności Premium z usługi Azure Files.
SMB/CIFS lub NFS. Aby uzyskać dostęp do usługi Azure Files, sprawdź, czy obciążenie powinno używać interfejsu API dla domyślnego protokołu, protokołu SMB/CIFS, czy też jeśli obciążenie wymaga obsługi systemu plików NFS.
Model sieci na potrzeby dostępu. Rozważ model sieci, którego chcesz użyć do uzyskiwania dostępu do usługi Azure Files: dostęp za pośrednictwem bezpośredniego publicznego adresu IP, punktu końcowego usługi lub łącza prywatnego.
Azure NetApp Files
W przypadku usługi Azure NetApp Files rozważ następujące opcje:
Udział statyczny lub dynamicznie tworzony w usłudze Azure NetApp Files. Zastanów się, czy obciążenie ma używać statycznego udziału usługi Azure NetApp Files utworzonego poza usługą AKS, czy chcesz, aby usługa AKS dynamicznie utworzyła udział plików za pośrednictwem kontrolki Astra. Aby uzyskać więcej informacji, zobacz:
Ocena wydajności. Oceń, która warstwa wydajności jest wymagana dla obciążenia. Aby uzyskać więcej informacji, zobacz Kwestie dotyczące wydajności usługi Azure NetApp Files.
Zaplanuj sieć. Zapoznaj się z zaleceniami dotyczącymi sieci dla usługi Azure NetApp Files. Aby uzyskać więcej informacji, zobacz Wytyczne dotyczące planowania sieci usługi Azure NetApp Files.
Blob storage
Rozważ ilość danych bez struktury, które aplikacja musi przechowywać. Usługa Azure Blob Storage jest dostępna za pośrednictwem interfejsu API HTTP lub za pośrednictwem zestawów SDK. Instalowanie magazynu obiektów blob jako systemu plików w kontenerze lub zasobniku jest idealne w przypadku obciążeń aplikacji, które mają ogromne ilości danych bez struktury, takich jak pliki dziennika, obrazy, dokumenty, nośniki strumieniowe i dane odzyskiwania po awarii.
Nadmiarowość danych. Rozważ, która nadmiarowość danych pasuje do aplikacji. Aby uzyskać więcej informacji, zobacz Nadmiarowość usługi Azure Storage. Nadmiarowość danych jest wybierana na poziomie konta magazynu.
Warstwa wydajności. Rozważ warstwę wydajności magazynu obiektów blob wymaganą przez aplikację. Aby uzyskać więcej informacji, zobacz Warstwy dostępu Gorąca, Chłodna i Archiwum dla danych obiektów blob.
Metoda uwierzytelniania na potrzeby dostępu. Rozważ metodę uwierzytelniania, której aplikacja powinna używać do uzyskiwania dostępu do magazynu obiektów blob: klucz magazynu, sygnatura dostępu współdzielonego lub identyfikator entra firmy Microsoft. Aby uzyskać więcej informacji, zobacz Autoryzowanie dostępu do danych w usłudze Azure Storage.
Interfejs API do abstrakcyjnego magazynu obiektów blob. Rozważ użycie interfejsu API. Zazwyczaj aplikacje, które uzyskują dostęp do magazynu obiektów blob, używają interfejsu API w aplikacji za pomocą jednego z zestawów SDK, co stanowi abstrakcję interakcji z magazynem obiektów blob z klastra Kubernetes. Aby uzyskać więcej informacji na temat bibliotek dla różnych języków programowania, zobacz Wprowadzenie do usługi Azure Blob Storage.
Statyczny lub dynamicznie tworzony magazyn obiektów blob. Zastanów się, czy chcesz użyć statycznego kontenera magazynu obiektów blob utworzonych poza usługą AKS, czy chcesz, aby usługa AKS dynamicznie utworzyła kontener magazynu obiektów blob w Twoim imieniu. Aby uzyskać więcej informacji, zobacz:
Sterownik umożliwiający uzyskiwanie dostępu do magazynu. Zastanów się, jak aplikacja powinna uzyskiwać dostęp do magazynu obiektów blob. Aby uzyskać dostęp do niego jako system plików, możesz użyć sterownika CSI obiektu blob w rozwiązaniu Kubernetes. Ten sterownik umożliwia dostęp do magazynu obiektów blob za pośrednictwem protokołu NFSv3 lub sterownika bezpiecznika.
Inne rozwiązania magazynu
Rozważ inne typy magazynu, jeśli aplikacja wymaga czegoś, co nie zostało opisane w tym artykule. Na platformie Azure istnieje wiele wyspecjalizowanych rozwiązań magazynu, które można zintegrować z platformą Kubernetes. Ten artykuł nie obejmuje tych elementów, ale poniższa lista identyfikuje możliwe rozwiązania:
Azure HPC Cache. Usługa HPC Cache przyspiesza dostęp do danych na potrzeby zadań obliczeń o wysokiej wydajności (HPC). Dzięki buforowaniu plików na platformie Azure usługa Azure HPC Cache zapewnia skalowalność przetwarzania w chmurze do istniejącego przepływu pracy. Aby uzyskać więcej informacji, zobacz Integrowanie usługi Azure HPC Cache z usługą Azure Kubernetes Service.
Azure Data Lake Storage Gen2. Data Lake Storage Gen2 to specjalny typ magazynu obiektów blob zoptymalizowany pod kątem obciążeń danych big data, takich jak Hadoop i Spark. Aby uzyskać więcej informacji, zobacz Wprowadzenie do usługi Azure Data Lake Storage Gen2.
Zalecenia dotyczące projektowania
Ta sekcja zawiera zalecenia, które są oparte na tym, co okazało się skuteczne dla klientów platformy Azure.
Użyj usługi Azure Private Link. W przypadku zabezpieczeń zalecamy użycie usługi Azure Private Link dla wszystkich rozwiązań magazynu, które go obsługują. Usługa Azure Private Link umożliwia dostęp do usług platformy Azure, takich jak Azure Storage i SQL Database, oraz usług hostowanych na platformie Azure za pośrednictwem prywatnego punktu końcowego w sieci wirtualnej. Aby uzyskać więcej informacji, zobacz Co to jest usługa Azure Private Link?
Używaj efemerycznych dysków dla systemu operacyjnego. W przypadku dysków systemu operacyjnego zalecamy używanie dysków efemerycznych. Aby skorzystać z tej funkcji, wybierz rozmiar maszyny wirtualnej o odpowiednim rozmiarze dysku tymczasowego. Aby uzyskać więcej informacji, zobacz Efemeryczny dysk systemu operacyjnego dla maszyn wirtualnych platformy Azure.
Użyj zarządzanych baz danych. W przypadku danych aplikacji zalecamy używanie zarządzanych baz danych. Aby uzyskać listę opcji bazy danych, zobacz Typy baz danych na platformie Azure.
W poniższych sekcjach opisano więcej zaleceń dotyczących dysków platformy Azure, usługi Azure Files i magazynu obiektów blob.
Dyski platformy Azure
W przypadku dysków platformy Azure zalecamy następujące opcje projektowania:
Użyj dysków w warstwie Premium lub Ultra. W większości przypadków zalecamy użycie dysków w warstwie Premium lub Ultra, aby zapewnić odpowiednią wydajność. Aby uzyskać więcej informacji, zobacz Azure Disk Storage.
Rozmiar węzła dla dysków i przepływności. Zalecamy zapewnienie, że rozmiar węzła Kubernetes jest wystarczająco duży, aby obsługiwać liczbę dysków i ilość zagregowanej przepływności. Aby uzyskać informacje o rozmiarach i cechach, zobacz Rozmiary maszyn wirtualnych na platformie Azure.
Tworzenie migawek woluminów trwałych. Zalecamy utworzenie migawek woluminów trwałych, aby aprowizować nowe woluminy, które są wstępnie wypełnione danymi migawki, lub przywrócić istniejący wolumin do poprzedniego stanu przy użyciu funkcji migawki sterownika CSI usługi Azure Disks. Aby uzyskać więcej informacji, zobacz Migawki woluminów.
Unikaj rozsyłania dysku na dyskach. Zalecamy unikanie usuwania wielu dysków na platformie Kubernetes.
Użyj pv/PVC. Zalecamy używanie pv i PVC na platformie Kubernetes w celu dynamicznego tworzenia dysków tam, gdzie jest to wymagane. Aby uzyskać więcej informacji na temat magazynu trwałego, zobacz Opcje magazynu dla aplikacji w usłudze Azure Kubernetes Service (AKS).
Azure Files
W przypadku usługi Azure Files zalecamy następujące opcje projektowania:
Wybierz pozycję Premium. Jeśli wydajność jest krytyczna, zalecamy użycie warstwy Premium.
Utwórz dedykowane konta magazynu. Zalecamy udostępnianie dedykowanych kont magazynu dla udziałów plików.
Wybierz statyczne lub dynamicznie utworzone udziały plików. Zalecamy dokładne rozważenie, czy usługa AKS ma utworzyć udziały plików, czy też utworzyć je statycznie poza platformą Kubernetes. Magazyn tworzony dynamicznie można również dynamicznie usuwać. Aby uzyskać więcej informacji na temat dynamicznego tworzenia udziałów plików w usłudze AKS, zobacz Dynamiczne tworzenie i używanie trwałego woluminu w usłudze Azure Files.
Azure NetApp Files
W przypadku usługi Azure NetApp Files zalecamy następujące opcje projektowania:
Wybierz warstwę wydajności na podstawie wymagań aplikacji. Usługa Azure NetApp Files oferuje 3 warstwy wydajności, które oferują różne klasy wydajności. Aby uzyskać więcej informacji, zobacz Kwestie dotyczące wydajności usługi Azure NetApp Files.
Utwórz pule pojemności w tym samym regionie świadczenia usługi Azure co klaster usługi AKS. Aby uzyskać więcej informacji, zobacz Tworzenie puli pojemności dla usługi Azure NetApp Files.
Użyj typu Auto QoS dla pul pojemności.
Zaplanuj sieć. Istnieją dwie opcje projektowania sieci:
- Jeśli używasz tej samej sieci wirtualnej dla usług AKS i Azure NetApp Files, utwórz dedykowaną podsieć dla usługi Azure NetApp Files i deleguj podsieć do usługi Microsoft.NetApp/Volumes.
- Jeśli używasz różnych sieci wirtualnych, ustanów między nimi komunikację równorzędną sieci wirtualnych.
Blob storage
W przypadku magazynu obiektów blob zalecamy następujące opcje projektowania:
Używanie zestawu SDK do interfejsu z magazynem. Zalecamy używanie zestawu SDK na poziomie aplikacji do interfejsu z magazynem obiektów blob.
Interfejs CSI z systemem plików NFS umożliwia interfejs z magazynem. Jeśli nie możesz użyć zestawu SDK na poziomie aplikacji do interfejsu z magazynem obiektów blob, zalecamy użycie opcji NFS w wersji 3 w sterowniku CSI obiektu blob. Aby uzyskać więcej informacji, zobacz Używanie sterownika interfejsu CSI (Container Storage Interface) usługi Azure Blob Storage.
Użyj identyfikatora Entra firmy Microsoft, aby uzyskać dostęp. Zalecamy używanie identyfikatora Entra firmy Microsoft do autoryzowania dostępu do magazynu obiektów blob. Unikaj używania klucza współużytkowanego konta magazynu. Aby uzyskać więcej informacji, zobacz Autoryzowanie dostępu do obiektów blob przy użyciu identyfikatora Entra firmy Microsoft.
Dostosowywanie poziomów warstwy. Zalecamy używanie zasad zarządzania cyklem życia w celu przenoszenia rzadko używanych danych do chłodniejszej warstwy dostępu. Aby uzyskać więcej informacji, zobacz Warstwy dostępu Gorąca, Chłodna i Archiwum dla danych obiektów blob.
Następne kroki
Dowiedz się, jak ograniczyć alokację kosztów do wdrożenia, usługi, etykiety, zasobnika lub przestrzeni nazw w usłudze AKS przy użyciu rozwiązania Kubecost.