Magazyn kontenerów systemu Windows z usługą Azure Kubernetes Service
W poprzedniej lekcji dowiedzieliśmy się, jak platforma Kubernetes zarządza aplikacjami opartymi na kontenerach i skojarzonymi składnikami magazynu oraz organizuje je. Dowiedzieliśmy się również o architekturze klastra Kubernetes, która składa się z płaszczyzny sterowania dla podstawowych usług i węzłów dla zasobów aplikacji.
Usługa Azure Kubernetes Service (AKS) upraszcza wdrażanie zarządzanego klastra Kubernetes na platformie Azure, odciążając obciążenie operacyjne na platformę Azure. Jako hostowana usługa Kubernetes platforma Azure obsługuje krytyczne zadania, takie jak monitorowanie kondycji i konserwacja.
Podczas tworzenia klastra usługi AKSzostanie automatycznie utworzona i skonfigurowana płaszczyzna sterowania. Ta płaszczyzna sterowania jest zapewniana bez kosztów, ponieważ zarządzany zasób platformy Azure jest abstrahowany od użytkownika. Płacisz tylko za węzły dołączone do klastra usługi AKS i zarządzasz nimi.
Na poniższym diagramie pokazano, w jaki sposób płaszczyzna sterowania, która zapewnia podstawowe usługi Kubernetes i aranżację obciążeń aplikacji, jest zarządzana przez usługę AKS, podczas gdy zarządzasz węzłami zawierającymi obciążenia aplikacji.
Klaster AKS
Podczas wdrażania klastra usługi AKS należy określić liczbę i rozmiar węzłów, a usługa AKS wdraża i konfiguruje płaszczyznę sterowania i węzły platformy Kubernetes.
Na poniższym diagramie przedstawiono architekturę klastra usługi AKS.
Węzły usługi AKS działają na maszynach wirtualnych platformy Azure. Domyślnie platforma Azure automatycznie replikuje dysk systemu operacyjnego (dysk systemu operacyjnego) dla maszyny wirtualnej (maszyny wirtualnej) do usługi Azure Storage, aby uniknąć utraty danych po przeniesieniu maszyny wirtualnej do innego hosta. Jednak jak dowiedzieliśmy się wcześniej, kontenery nie są zaprojektowane w sposób umożliwiający utrwalanie stanu lokalnego. Dlatego to zachowanie zapewnia ograniczoną wartość, zapewniając wady, takie jak wolniejsze aprowizowanie węzłów i większe opóźnienie odczytu/zapisu.
Natomiast usługa AKS używa tymczasowych dysków systemu operacyjnego. Te dyski są przechowywane tylko na maszynie hosta, podobnie jak dysk tymczasowy. Dzięki tej konfiguracji uzyskujesz mniejsze opóźnienie odczytu/zapisu wraz z szybszym skalowaniem węzłów i uaktualnieniami klastra.
Magazynowanie woluminów w usłudze AKS
W usłudze AKS tradycyjne woluminy są tworzone jako zasoby Kubernetes wspierane przez Azure Storage. Możesz ręcznie utworzyć woluminy danych, które mają być przypisane bezpośrednio do zasobników lub automatycznie utworzyć je platforma Kubernetes. Aby skojarzyć te woluminy z usługą Azure Storage, usługa AKS korzysta z CSI (Container Storage Interface).
CSI to standard umożliwiający uwidacznianie dowolnych systemów magazynowania bloków i plików w konteneryzowanych obciążeniach na platformie Kubernetes.
Dzięki wdrożeniu i użyciu interfejsu CSI usługa Azure Kubernetes Service (AKS) może zapisywać, wdrażać i iterować wtyczki, aby uwidocznić nowe lub ulepszać istniejące systemy magazynowania w rozwiązaniu Kubernetes bez konieczności dotykania podstawowego kodu Kubernetes i oczekiwania na cykle wydania.
Obsługa sterowników magazynu CSI w usłudze AKS umożliwia natywne korzystanie z następujących rozwiązań:
- Dysków Azure można użyć do utworzenia zasobu Kubernetes DataDisk. Dyski mogą używać usługi Azure Premium Storage, opartej na dyskach SSD o wysokiej wydajności, lub Azure Standard Storage, opartej na zwykłych dyskach twardych (HDD) lub standardowych dyskach SSD. W przypadku większości obciążeń produkcyjnych i programistycznych należy użyć usługi Premium Storage. Dyski platformy Azure są instalowane jako ReadWriteOnce i są dostępne tylko dla jednego węzła w usłudze AKS. W przypadku woluminów magazynu, do których można uzyskiwać dostęp jednocześnie przez wiele węzłów, użyj usługi Azure Files.
- Usługa Azure Files może służyć do instalowania udziału SMB (bloku komunikatów serwera) 3.0/3.1 wspieranego przez konto usługi Azure Storage do zasobników. Usługa Azure Files umożliwia udostępnianie danych między wieloma węzłami i zasobnikami. Usługa Azure Files może używać standardowego magazynu platformy Azure, wspieranego przez zwykłe dyski twarde HDD, lub magazynu Azure Premium, opartego na dyskach SSD o wysokiej wydajności.
- Usługa Azure Blob Storage może służyć do instalowania usługi Blob Storage (lub magazynu obiektów) jako systemu plików w kontenerze lub zasobniku. Korzystanie z usługi Blob Storage umożliwia klastrowi obsługę aplikacji, które współpracują z dużymi zestawami danych bez struktury, takimi jak dane plików dziennika, obrazy lub dokumenty, HPC i inne. Ponadto w przypadku pozyskiwania danych do usługi Azure Data Lake Storage można bezpośrednio zainstalować je i używać w usłudze AKS bez konfigurowania innego tymczasowego systemu plików.
Począwszy od platformy Kubernetes w wersji 1.21, usługa AKS domyślnie używa tylko sterowników CSI, a migracja CSI jest włączona. Chociaż istniejące wbudowane woluminy trwałe nadal działają, począwszy od wersji 1.26, AKS nie będzie już obsługiwać woluminów utworzonych przy użyciu sterownika wbudowanego w drzewo i magazynu aprowizowanego na pliki i dyski.
Woluminy trwałe
Wolumin trwały (PV) to zasób pamięci utworzony i zarządzany przez interfejs API Kubernetes, który może istnieć poza cyklem życia pojedynczego podu. W usłudze AKS możesz użyć usługi Azure Disk lub Azure Files, aby udostępnić PersistentVolume
. Wybór dysków lub plików dla woluminu jest często określany przez potrzebę współbieżnego dostępu do danych lub wymaganego poziomu wydajności.
Administrator klastra może utworzyć PersistentVolume
statycznie lub wolumin może być tworzony dynamicznie przez serwer API Kubernetes. Jeśli zasobnik jest zaplanowany i żąda obecnie niedostępnego magazynu, platforma Kubernetes może utworzyć podstawowy magazyn Azure Disk lub Azure File Storage i dołączyć go do zasobnika. Dynamiczne przydzielanie zasobów używa StorageClass
do identyfikowania typu pamięci masowej platformy Azure, który należy utworzyć.
Klasy przechowywania w usłudze AKS
Aby zdefiniować różne warstwy magazynu, takie jak Premium i Standardowa, można utworzyć klasę StorageClass. Klasa StorageClass definiuje również politykę odzyskiwania. Po usunięciu woluminu trwałego, reclaimPolicy kontroluje zachowanie bazowego zasobu usługi Azure Storage. Podstawowy zasób magazynu można usunąć lub przechowywać do użycia z przyszłym zasobnikem.
W przypadku klastrów korzystających ze sterowników CSI usługa AKS utworzyła następujące dodatkowe StorageClasses
:
Pozwolenie | Powód |
---|---|
managed-csi | Do utworzenia dysku zarządzanego używa magazynu lokalnie nadmiarowego (LRS) usługi Azure StandardSSD. Zasady odzyskiwania zapewniają, że podstawowy dysk Azure jest usuwany, gdy usunięty zostaje trwały wolumin, którego używa. Klasa pamięci również konfiguruje wolumeny trwałe, aby były rozszerzalne; wystarczy edytować żądanie woluminu trwałego na nowy rozmiar. |
managed-csi-premium | Używa magazynu lokalnie nadmiarowego (LRS) platformy Azure w warstwie Premium do utworzenia dysku zarządzanego. Polityka odzyskiwania ponownie zapewnia, że bazowy dysk platformy Azure jest usuwany po usunięciu trwałego woluminu, który go używał. Podobnie ta klasa magazynu umożliwia rozszerzenie woluminów trwałych. |
azurefile-csi | Używa usługi Azure Standard Storage do utworzenia udziału plików w usłudze Azure. Zasady odzyskiwania zapewniają, że bazowy udział plików platformy Azure jest usuwany, gdy usuwany jest trwały wolumin, który z niego korzystał. |
azurefile-csi-premium | Używa Azure Premium Storage do utworzenia udziału plików Azure. Polityka odzyskiwania gwarantuje usunięcie podstawowego udziału plików Azure, gdy trwały wolumin, który go używał, zostanie usunięty. |
azureblob-nfs-premium | Używa usługi Azure Premium Storage do tworzenia kontenera usługi Azure Blob Storage i łączy się przy użyciu protokołu NFS (sieciowego systemu plików) w wersji 3. Polityka odzyskiwania zapewnia usunięcie bazowego kontenera usługi Azure Blob Storage, gdy trwały wolumin, który z niego korzystał, zostanie usunięty. |
azureblob-fuse-premium (opcjonalnie: opis produktu w języku polskim, jeśli dotyczy) | Używa usługi Azure Premium Storage do tworzenia kontenera usługi Azure Blob Storage i nawiązywania połączenia przy użyciu narzędzia BlobFuse. Polityka odzyskiwania zapewnia, że bazowy kontener w usłudze Azure Blob Storage zostaje usunięty po usunięciu trwałego wolumenu, który go używał. |
Jeśli nie określisz klasy StorageClass dla woluminu trwałego, zostanie użyta domyślna klasa StorageClass. Podczas żądania woluminów trwałych należy upewnić się, że woluminy korzystają z odpowiedniego magazynowania, którego potrzebujesz. Domyślna klasa będzie taka sama jak managed-csi
.
Żądania trwałego woluminu
PersistentVolumeClaim
żąda przechowywania określonego StorageClass
, a także trybu dostępu i rozmiaru. Serwer API Kubernetes może dynamicznie udostępniać bazowy zasób usługi Azure Storage, jeśli żaden istniejący zasób nie może spełnić oświadczenia StorageClass
.
Definicja podu zawiera montowanie woluminu po podłączeniu woluminu do podu.
Na poniższym diagramie pokazano, jak PVC funkcjonuje w klastrze AKS.