Konfigurera AKS-lagring

Slutförd

Program som körs i Azure Kubernetes Service (AKS) kan behöva lagra och hämta data. För vissa programarbetsbelastningar kan datalagringen använda lokal, snabb lagring på noden som inte längre behövs när poddarna tas bort. Andra programarbetsbelastningar kan kräva lagring som finns kvar på mer vanliga datavolymer på Azure-plattformen. Flera poddar kan behöva dela samma datavolymer eller återansluta datavolymer om podden schemalades om på en annan nod. Slutligen kan du behöva mata in känslig information eller programkonfigurationsinformation i poddar.

Storage alternativ för program i ett Azure Kubernetes Services-kluster.

I det här avsnittet beskrivs de grundläggande begrepp som tillhandahåller lagring för dina program i AKS:

  • Volymer
  • Beständiga volymer
  • Storage klasser
  • Beständiga volymanspråk

Volymer

Program behöver ofta kunna lagra och hämta data. Eftersom Kubernetes vanligtvis behandlar enskilda poddar som tillfälliga, engångsresurser är olika metoder tillgängliga för programanvändning och bevarar data efter behov. En volym representerar ett sätt att lagra, hämta och bevara data mellan poddar och genom programmets livscykel.

Traditionella volymer för att lagra och hämta data skapas som Kubernetes-resurser som backas upp av Azure Storage. Du kan manuellt skapa dessa datavolymer som ska tilldelas till poddar direkt eller få Kubernetes att skapa dem automatiskt. Dessa datavolymer kan använda Azure Disks eller Azure Files:

  • Azure Disks kan användas för att skapa en Kubernetes DataDisk-resurs. Diskar kan använda Azure Premium storage, backat av högpresterande HÅRDDISKAR eller Azure Standard Storage, backat av vanliga hårddiskar. För de flesta arbetsbelastningar för produktion och utveckling Premium lagring. Azure-diskar monteras som ReadWriteOnce, så de är bara tillgängliga för en enda nod. För lagringsvolymer som kan nås av flera noder samtidigt använder du Azure Files.
  • Azure Files kan användas för att montera en SMB 3.0-resurs som backas upp av ett Azure Storage-konto till poddar. Med filer kan du dela data mellan flera noder och poddar. Filer kan använda Azure Standard-lagring som backas upp av vanliga hårddiskar eller Azure Premium storage, backas upp av högpresterande HÅRDDISKAR.

Beständiga volymer

Volymer definieras och skapas som en del av poddlivscykeln bara finns tills podden tas bort. Poddar förväntar sig ofta att lagringen ska finnas kvar om en podd schemalades om på en annan värd under en underhållshändelse, särskilt i StatefulSets. En beständig volym (PV) är en lagringsresurs som skapas och hanteras av Kubernetes-API:et och som kan finnas utanför livslängden för en enskild podd.

Azure-diskar eller -filer används för att tillhandahålla PersistentVolume. Som vi nämnt i föregående avsnitt om volymer bestäms valet av diskar eller filer ofta av behovet av samtidig åtkomst till data eller prestandanivån.

En PersistentVolume kan skapas statiskt av en klusteradministratör eller skapas dynamiskt av Kubernetes API-servern. Om en podd schemaläggs och begär lagring som inte är tillgänglig för närvarande kan Kubernetes skapa den underliggande Azure Disk- eller Files-lagringen och koppla den till podden. Dynamisk etablering använder en StorageClass för att identifiera vilken typ av Azure-lagring som behöver skapas.

Storage klasser

Om du vill definiera olika lagringsnivåer, till exempel Premium och Standard, kan du skapa en StorageClass. StorageClass definierar också reclaimPolicy. Den här reclaimPolicy styr beteendet för den underliggande Azure Storage-resursen när podden tas bort och den beständiga volymen kanske inte längre behövs. Den underliggande lagringsresursen kan tas bort eller behållas för användning med en framtida podd.

I AKS skapas fyra inledande StorageClasses för kluster med hjälp av plugin-programmet för trädlagring:

  • standard – Använder Azure StandardSSD-lagring för att skapa en hanterad disk. Principen för att frigöra garanterar att den underliggande Azure-disken tas bort när den beständiga volymen som använde den tas bort.
  • managed-premium – Använder Azure Premium storage för att skapa en hanterad disk. Återigen säkerställer att den underliggande Azure-disken tas bort när den beständiga volymen som använde den tas bort.
  • azurefile – Använder Azure Standard Storage för att skapa en Azure-filresurs. Principen för att frigöra säkerställer att den underliggande Azure-filresursen tas bort när den beständiga volymen som använde den tas bort.
  • azurefile-premium – Använder Azure Premium storage för att skapa en Azure-filresurs. Principen för att frigöra säkerställer att den underliggande Azure-filresursen tas bort när den beständiga volymen som använde den tas bort.

Om ingen StorageClass har angetts för en beständig volym används storageClass som standard. Var försiktig när du begär beständiga volymer så att de använder rätt lagring som du behöver. Du kan skapa en StorageClass för ytterligare behov med hjälp av kubectl .

Beständiga volymanspråk

En PersistentVolumeClaim begär antingen disk- eller fillagring för en viss StorageClass, åtkomstläge och storlek. Kubernetes API-servern kan dynamiskt etablera den underliggande lagringsresursen i Azure om det inte finns någon befintlig resurs att uppfylla anspråket baserat på den definierade StorageClass. Podddefinitionen innehåller volymmonteringen när volymen har anslutits till podden.

En PersistentVolume är bunden till en PersistentVolumeClaim när en tillgänglig lagringsresurs har tilldelats till den podd som begär det. Det finns en 1:1-mappning av beständiga volymer till anspråk.