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 AKS płaszczyzna sterowania jest tworzona i konfigurowana automatycznie. Ta płaszczyzna sterowania jest dostarczana bezpłatnie jako zarządzany zasób platformy Azure odrębny 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 usługi 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 tak, aby stan lokalny był utrwalone. 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 efemerycznych 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.
Magazyn woluminów w usłudze AKS
W usłudze AKS tradycyjne woluminy są tworzone jako zasoby kubernetes wspierane przez usługę 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 interfejsu 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ń:
- Za pomocą usługi Azure Disks można utworzyć zasób Kubernetes DataDisk. Dyski mogą używać usługi Azure Premium Storage, wspieranej przez dyski SSD o wysokiej wydajności lub Azure Standard Storage, wspierane przez zwykłe dyski TWARDE (dyski twarde) lub dyski SSD w warstwie Standardowa. 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ć magazynu w warstwie Standardowa platformy Azure wspieranego przez zwykłe dyski HDD lub Azure Premium Storage wspierane przez dyski 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 woluminy trwałe w drzewie nadal działają, począwszy od wersji 1.26, usługa AKS nie będzie już obsługiwać woluminów utworzonych przy użyciu sterownika drzewa i magazynu aprowizowanego dla plików i dysków.
Trwałe woluminy
Wolumin trwały (PV) to zasób magazynu utworzony i zarządzany przez interfejs API Kubernetes, który może istnieć poza okresem istnienia pojedynczego zasobnika. W usłudze AKS możesz użyć usługi Azure Disk lub Azure Files, aby udostępnić element 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 statycznie utworzyć wolumin PersistentVolume
lub wolumin jest tworzony dynamicznie przez serwer interfejsu API Kubernetes. Jeśli zasobnik jest zaplanowany i żąda obecnie niedostępnego magazynu, platforma Kubernetes może utworzyć bazowy magazyn usługi Azure Disk lub File Storage i dołączyć go do zasobnika. Aprowizacja dynamiczna używa klasy a StorageClass
do identyfikowania typu magazynu platformy Azure, który należy utworzyć.
Klasy magazynu 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ż zasady odzyskiwania. Po usunięciu woluminu trwałego funkcja 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 elementy StorageClasses
:
Uprawnienie | Przyczyna |
---|---|
managed-csi | Do utworzenia dysku zarządzanego używa magazynu lokalnie nadmiarowego (LRS) usługi Azure StandardSSD. Zasady odzyskiwania zapewniają usunięcie bazowego dysku platformy Azure po usunięciu trwałego woluminu, którego używa. Klasa magazynu konfiguruje również woluminy trwałe, aby można je było rozszerzać. Wystarczy edytować trwałe oświadczenie woluminu o nowym rozmiarze. |
managed-csi-premium | Używa magazynu lokalnie nadmiarowego (LRS) platformy Azure w warstwie Premium do utworzenia dysku zarządzanego. Zasady odzyskiwania ponownie zapewniają usunięcie bazowego dysku platformy Azure po usunięciu trwałego woluminu, który go użył. 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 platformy Azure. Zasady odzyskiwania zapewniają usunięcie bazowego udziału plików platformy Azure po usunięciu trwałego woluminu, który go użył. |
azurefile-csi-premium | Używa usługi Azure Premium Storage do utworzenia udziału plików platformy Azure. Zasady odzyskiwania zapewniają usunięcie bazowego udziału plików platformy Azure po usunięciu trwałego woluminu, który go użył. |
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. Zasady odzyskiwania zapewniają usunięcie bazowego kontenera usługi Azure Blob Storage po usunięciu trwałego woluminu, który go użył. |
azureblob-fuse-premium | 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. Zasady odzyskiwania zapewniają usunięcie bazowego kontenera usługi Azure Blob Storage po usunięciu trwałego woluminu, który go użył. |
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 używają odpowiedniego magazynu. Domyślna klasa będzie taka sama jak managed-csi
.
Trwałe woluminy — oświadczenia
Żąda PersistentVolumeClaim
magazynu określonego StorageClass
, trybu dostępu i rozmiaru. Serwer interfejsu API Kubernetes może dynamicznie aprowizować bazowy zasób usługi Azure Storage, jeśli żaden istniejący zasób nie może spełnić oświadczenia na podstawie zdefiniowanego StorageClass
zasobu .
Definicja zasobnika zawiera instalację woluminu po nawiązaniu połączenia woluminu z zasobnikem.
Na poniższym diagramie pokazano, jak działa pvc w klastrze usługi AKS: