Pojęcia dotyczące magazynu dla platformy Kubernetes
Kubernetes to otwarta platforma, która zarządza aplikacjami opartymi na kontenerach i skojarzonymi z nimi składnikami sieci i magazynu. Zapewnia ona deklaratywne podejście do wdrożeń, wspierane przez niezawodny zestaw interfejsów API na potrzeby operacji zarządzania.
Nowoczesne, przenośne, oparte na mikrousługach aplikacje można tworzyć i uruchamiać przy użyciu platformy Kubernetes do organizowania składników aplikacji i zarządzania nimi .
Zarządzanie kontenerami i orkiestracja
Zarządzanie kontenerami to proces organizowania, dodawania, usuwania lub aktualizowania znacznej liczby kontenerów. Orkiestrator kontenerów to system, który automatycznie wdraża aplikacje konteneryzowane i zarządza nimi. Na przykład orkiestrator może dynamicznie reagować na zmiany w środowisku w celu zwiększenia lub zmniejszenia wdrożonych wystąpień aplikacji zarządzanej lub może zapewnić zaktualizowanie wszystkich wdrożonych wystąpień kontenera w przypadku wydania nowej wersji usługi.
Architektura platformy Kubernetes
Architektura platformy Kubernetes jest oparta na klastrach. Klaster Kubernetes jest podzielony na dwa podstawowe składniki infrastruktury:
- Płaszczyzna sterowania, która zapewnia podstawowe usługi Kubernetes i aranżację obciążeń aplikacji.
- Węzły uruchamiające obciążenia aplikacji. Każdy klaster ma co najmniej jeden węzeł, ale można zdefiniować liczbę i rozmiar węzłów. Pula węzłów to grupa węzłów, która współużytkuje tę samą konfigurację.
Zasoby obciążeń aplikacji znajdują się w zasobnikach. Zasobnik na platformie Kubernetes to efemeryczny zasób reprezentujący pojedyncze wystąpienie aplikacji. Składa się z co najmniej jednego kontenera z udostępnionym magazynem i zasobami sieciowymi oraz specyfikacją sposobu uruchamiania kontenerów. Zawartość zasobnika jest zawsze współlokowana i współplanowana i uruchamiana w kontekście udostępnionym.
Magazyn trwały na platformie Kubernetes
W poprzedniej lekcji przedstawiono mechanizmy obsługi w kontenerach systemu Windows, które umożliwiają zapewnienie trwałego magazynu dla aplikacji w środowisku lokalnym za pomocą instalacji powiązanych i nazwanych woluminów. Jednak woluminy i instalacje powiązane mają pewne wady w przypadku użycia w środowisku rozproszonym, takich jak Kubernetes.
Woluminy i instalacje powiązane są powiązane z określoną maszyną hosta, co oznacza, że nie są przenośne między węzłami w klastrze. Jeśli kontener jest zaplanowany w innym węźle niż ten, w którym są przechowywane jego dane, nie będzie mógł uzyskać do niego dostępu. Ponadto woluminy i instalacje powiązane nie są skalowalne ani odporne, ponieważ zależą one od dostępności i pojemności pojedynczej maszyny hosta.
Platforma Kubernetes rozwiązuje problemy związane z magazynem kontenerów, wprowadzając dwie abstrakcje: woluminy trwałe i trwałe oświadczenia woluminów.
Trwałe woluminy
Wolumin trwały (PV) to zasób magazynu w klastrze utworzony i zarządzany przez interfejs API kubernetes, który może istnieć poza okresem istnienia pojedynczego zasobnika. Administrator klastra może statycznie utworzyć serwer interfejsu PersistentVolume
API platformy Kubernetes lub utworzyć go dynamicznie przy użyciu klas magazynu. Pv to zasób w klastrze, tak jak węzeł jest zasobem klastra. Telewizory mają cykl życia niezależny od każdego pojedynczego zasobnika korzystającego z pv.
Trwałe woluminy — oświadczenia
Trwałe oświadczenie woluminu (PVC) żąda przechowywania określonego StorageClass
, trybu dostępu i rozmiaru. PCV działa jako sprawdzanie oświadczenia dla zasobu magazynu. Serwer interfejsu API Kubernetes może dynamicznie aprowizować bazowy zasób magazynu, jeśli żaden istniejący zasób nie może spełnić oświadczenia na podstawie zdefiniowanej klasy magazynu.
Element StorageClass
zapewnia administratorom możliwość opisania "klas" oferowanego przez nich magazynu. Różne klasy mogą być mapowane na poziomy jakości usług lub do zasad tworzenia kopii zapasowych lub do dowolnych zasad określonych przez administratorów klastra. Sama platforma Kubernetes nie jestopiniona co do tego, jakie klasy reprezentują.
Gdy serwer interfejsu API Kubernetes przypisze dostępny zasób magazynu do zasobnika żądającego magazynu, pv jest powiązana z pvc. Woluminy trwałe to mapowanie "jeden do jednego" do trwałego oświadczenia woluminu.