Kubernetes-lagringshantering på din Azure Stack Edge Pro GPU-enhet
GÄLLER FÖR: Azure Stack Edge Pro – GPUAzure Stack Edge Pro 2Azure Stack Edge Pro RAzure Stack Edge Mini R
På din Azure Stack Edge Pro-enhet skapas ett Kubernetes-kluster när du konfigurerar beräkningsrollen. När Kubernetes-klustret har skapats kan containerbaserade program distribueras i Kubernetes-klustret i poddar. Det finns olika sätt att tillhandahålla lagring till poddar i ditt Kubernetes-kluster.
Den här artikeln beskriver metoderna för att etablera lagring i ett Kubernetes-kluster i allmänhet och särskilt i kontexten för din Azure Stack Edge Pro-enhet.
Lagringskrav för Kubernetes-poddar
Kubernetes-poddar är tillståndslösa, men de program de kör är vanligtvis tillståndskänsliga. Eftersom poddar kan vara kortvariga och de startar om, redundansväxlar eller flyttar mellan Kubernetes-noder måste följande krav uppfyllas för lagring som är associerad med podden.
Lagringen måste:
- Live utanför podden.
- Var oberoende av poddlivscykeln.
- Vara tillgänglig från alla Kubernetes-noder.
För att förstå hur lagring hanteras för Kubernetes måste man förstå två API-resurser:
PersistentVolume (PV): Det här är en lagringsdel i Kubernetes-klustret. Kubernetes-lagring kan statiskt etableras som
PersistentVolume
. Den kan också etableras dynamiskt somStorageClass
.PersistentVolumeClaim (PVC): Detta är en begäran om lagring av en användare. Datorer använder PV-resurser. Datorer kan begära specifika storleks- och åtkomstlägen.
Eftersom användarna behöver
PersistentVolumes
olika egenskaper för olika problem måste därför klusteradministratörer kunna erbjuda en mängdPersistentVolumes
olika som skiljer sig åt på fler sätt än bara storleks- och åtkomstlägen. För dessa behov behöver du resursenStorageClass
.
Lagringsetablering kan vara statisk eller dynamisk. Var och en av etableringstyperna beskrivs i följande avsnitt.
Statisk etablering
Administratörer för Kubernetes-kluster kan etablera lagringen statiskt. För att göra det kan de använda lagringsserverdelen baserat på SMB/NFS-filsystem eller använda iSCSI-diskar som ansluter lokalt via nätverket i en lokal miljö, eller till och med använda Azure Files eller Azure Disks i molnet. Den här typen av lagring etableras inte som standard och klusteradministratörer måste planera och hantera den här etableringen.
Här är ett diagram som visar hur statiskt etablerad lagring används i Kubernetes:
Följande steg utförs:
Etablera lagring: Klusteradministratören etablerar lagringen. I det här exemplet skapar klusteradministratören en eller flera SMB-resurser som automatiskt skapar beständiga volymobjekt i Kubernetes-klustret som motsvarar dessa resurser.
Anspråkslagring: Du skickar en PVC-distribution som begär lagringen. Det här anspråket för lagring är PersistentVolumeClaim (PVC). Om PV:ens storlek och åtkomstläge matchar PVC:ens storlek och åtkomstläge, är PVC:en bunden till PV:en. PVC- och PV-kartan 1-till-1.
Montera PVC till containern: När PVC är bunden till PV kan du montera denna PVC på en sökväg i containern. När programlogik i containern läser/skriver från/till den här sökvägen skrivs data till SMB-lagringen.
Dynamisk etablering
Här är ett diagram som visar hur statiskt etablerad lagring används i Kubernetes:
Följande steg utförs:
Definiera lagringsklass: Klusteradministratör definierar en lagringsklass beroende på driftsmiljön för ditt Kubernetes-kluster. Klusteradministratören distribuerar också en provisioner, som är ännu en podd eller ett annat program som distribueras i Kubernetes-klustret. Etableringsverktyget har all information för att etablera resurserna dynamiskt.
Anspråkslagring: Du skickar ett program som skulle göra anspråk på lagringen. När en PVC har skapats med den här lagringsklassreferensen anropas etableringsverktyget.
Etablera lagring dynamiskt: Etableringsverktyget skapar dynamiskt den resurs som är associerad med den lokala disklagringen. När resursen har skapats skapar den också ett PV-objekt som automatiskt motsvarar den här resursen.
Montera PVC till container: När PVC är bunden till PV kan du montera PVC på containern på en sökväg på samma sätt som statisk etablering och läsa från eller skriva till resursen.
Lagringsetablering i Azure Stack Edge Pro
På Azure Stack Edge Pro-enheten skapas statiskt PersistentVolumes
etablerade med hjälp av enhetens lagringsfunktioner. När du etablerar en resurs och alternativet Använd resursen med Edge-beräkning är aktiverat skapar den här åtgärden en PV-resurs automatiskt i Kubernetes-klustret.
Om du vill använda molnnivåindelning kan du skapa en Edge-molnresurs med alternativet Använd resursen med Edge-beräkning aktiverat. En PV skapas igen automatiskt för den här resursen. Alla programdata som du skriver till Edge-resursen är nivåindelade i molnet.
Du kan skapa både SMB- och NFS-resurser för att statiskt etablera PV:er på Azure Stack Edge Pro-enheten. När PV har etablerats skickar du en PVC för att göra anspråk på den här lagringen. Här är ett exempel på en PVC-distribution yaml
som gör anspråk på lagringen och använder de resurser som du har etablerat.
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: pvc-smb-flexvol
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: 10Gi
volumeName: <nfs-or-smb-share-name-here>
storageClassName: ""
Om du vill hämta värdet för volumeName
fältet väljer du den lokala monteringspunkten för Edge-beräkningsmoduler när du väljer SMB- eller NFS-resursen när du har skapat den. Det här är samma som resursnamnet.
Mer information finns i Distribuera ett tillståndskänsligt program via statisk etablering på Azure Stack Edge Pro via kubectl.
För att få åtkomst till samma statiskt etablerade lagring är motsvarande volymmonteringsalternativ för lagringsbindningar för IoT följande. /home/input
är den sökväg där volymen är tillgänglig i containern.
{
"HostConfig": {
"Mounts": [
{
"Target": "/home/input",
"Source": "<nfs-or-smb-share-name-here>",
"Type": "volume"
},
{
"Target": "/home/output",
"Source": "<nfs-or-smb-share-name-here>",
"Type": "volume"
}]
}
}
Azure Stack Edge Pro har också ett inbyggt StorageClass
namn ase-node-local
som använder en datadisklagring som är ansluten till Kubernetes-noden. Detta StorageClass
stöder dynamisk etablering. Du kan göra en StorageClass
referens i poddprogrammen och en PV skapas automatiskt åt dig. Mer information finns i Kubernetes-instrumentpanelen för ase-node-local StorageClass
att fråga efter .
Mer information finns i Distribuera ett tillståndskänsligt program via dynamisk etablering på Azure Stack Edge Pro via kuebctl.
Välj lagringstyp
Du kan behöva välja din lagringstyp beroende på vilken arbetsbelastning du distribuerar.
Om du vill
ReadWriteMany
ha åtkomstläge för denPersistentVolumes
där volymerna monteras som skrivskyddade av många noder som distribuerar använder du statisk etablering för SMB/NFS-resurserna.Om de program som du distribuerar har ett KRAV på POSIX-efterlevnad, till exempel program som MongoDB, PostgreSQL, MySQL eller Prometheus, använder du den inbyggda StorageClass. Åtkomstlägena är
ReadWriteOnce
eller volymen monteras som skrivskyddad av en enda nod.
Mer information om åtkomstlägen finns i Åtkomstläge för Kubernetes-volymer.
Nästa steg
Information om hur du statiskt kan etablera en PersistentVolume
finns i:
Information om hur du dynamiskt kan etablera en StorageClass
finns i: