Dela via


Kubernetes-lagringshantering på din Azure Stack Edge Pro GPU-enhet

GÄLLER FÖR: Ja för Pro GPU SKUAzure Stack Edge Pro – GPUJa för Pro 2 SKUAzure Stack Edge Pro 2Ja för Pro R SKUAzure Stack Edge Pro RJa för Mini R SKUAzure 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 som StorageClass.

  • 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ängd PersistentVolumes olika som skiljer sig åt på fler sätt än bara storleks- och åtkomstlägen. För dessa behov behöver du resursen StorageClass .

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:

Statisk etablering via PersistentVolumes

Följande steg utförs:

  1. 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.

  2. 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.

  3. 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:

Dynamisk etablering via lagringsklasser

Följande steg utförs:

  1. 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.

  2. 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.

  3. 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.

  4. 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.

Skapa lokal resurs i Azure Portal för statisk etablering

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.

Skapa molnresurs i Azure Portal för statisk etablering

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 StorageClassatt fråga efter .

Inbyggd lagringsklass i Kubernetes-instrumentpanelen

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 den PersistentVolumes 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 PersistentVolumefinns i:

Information om hur du dynamiskt kan etablera en StorageClassfinns i: