Delen via


Kubernetes-opslagbeheer op uw Azure Stack Edge Pro GPU-apparaat

VAN TOEPASSING OP:Yes for Pro GPU SKUAzure Stack Edge Pro - GPUYes for Pro 2 SKUAzure Stack Edge Pro 2Yes for Pro R SKUAzure Stack Edge Pro RYes for Mini R SKUAzure Stack Edge Mini R

Op uw Azure Stack Edge Pro-apparaat wordt een Kubernetes-cluster gemaakt wanneer u de rekenrol configureert. Zodra het Kubernetes-cluster is gemaakt, kunnen in containers geplaatste toepassingen worden geïmplementeerd in het Kubernetes-cluster in pods. Er zijn verschillende manieren om opslag te bieden aan pods in uw Kubernetes-cluster.

In dit artikel worden de methoden beschreven voor het inrichten van opslag in een Kubernetes-cluster in het algemeen en specifiek in de context van uw Azure Stack Edge Pro-apparaat.

Opslagvereisten voor Kubernetes-pods

Kubernetes-pods zijn staatloos, maar de toepassingen die ze uitvoeren, zijn meestal stateful. Omdat pods korte levensduur kunnen hebben en ze opnieuw opstarten, failover uitvoeren of schakelen tussen Kubernetes-knooppunten, moeten aan de volgende vereisten worden voldaan voor opslag die is gekoppeld aan de pod.

De opslag moet:

  • Leef buiten de pod.
  • Wees onafhankelijk van de levenscyclus van pods.
  • Toegankelijk zijn vanaf alle Kubernetes-knooppunten.

Als u wilt weten hoe opslag wordt beheerd voor Kubernetes, moet u twee API-resources begrijpen:

  • PersistentVolume (PV): dit is een stukje opslag in het Kubernetes-cluster. Kubernetes-opslag kan statisch worden ingericht als PersistentVolume. Het kan ook dynamisch worden ingericht als StorageClass.

  • PersistentVolumeClaim (PVC): dit is een aanvraag voor opslag door een gebruiker. PVC's verbruiken PV-resources. PVC's kunnen specifieke grootte- en toegangsmodi aanvragen.

    Omdat gebruikers verschillende eigenschappen nodig hebben PersistentVolumes voor verschillende problemen, moeten clusterbeheerders een verscheidenheid aan PersistentVolumes die verschillen op meer manieren kunnen bieden dan alleen de grootte- en toegangsmodi. Voor deze behoeften hebt u de StorageClass resource nodig.

Opslaginrichting kan statisch of dynamisch zijn. Elk van de inrichtingstypen wordt besproken in de volgende secties.

Statische inrichting

Kubernetes-clusterbeheerders kunnen de opslag statisch inrichten. Hiervoor kunnen ze back-endopslag gebruiken op basis van SMB/NFS-bestandssysteem of iSCSI-schijven gebruiken die lokaal via het netwerk worden gekoppeld in een on-premises omgeving, of zelfs Azure Files of Azure Disks gebruiken in de cloud. Dit type opslag is niet standaard ingericht en clusterbeheerders moeten deze inrichting plannen en beheren.

Hier volgt een diagram waarin wordt weergegeven hoe statisch ingerichte opslag wordt gebruikt in Kubernetes:

Static provisioning via PersistentVolumes

De volgende stappen worden uitgevoerd:

  1. Opslag inrichten: de clusterbeheerder richt de opslag in. In dit voorbeeld maakt de clusterbeheerder een of meer SMB-shares die automatisch permanente volumeobjecten maken in het Kubernetes-cluster dat overeenkomt met deze shares.

  2. Claimopslag: U verzendt een PVC-implementatie die de opslag aanvraagt. Deze claim voor opslag is de PersistentVolumeClaim (PVC). Als de grootte en de toegangsmodus van de PV overeenkomen met die van het PVC, is het PVC gebonden aan de HW. De PVC- en PV-kaart een-op-een.

  3. Koppel PVC aan de container: Zodra de PVC is gebonden aan de PV, kunt u dit PVC op een pad in uw container monteren. Wanneer de toepassingslogica in de container van/naar dit pad leest/schrijft, worden de gegevens naar de SMB-opslag geschreven.

Dynamische inrichting

Hier volgt een diagram waarin wordt weergegeven hoe statisch ingerichte opslag wordt gebruikt in Kubernetes:

Dynamic provisioning via StorageClasses

De volgende stappen worden uitgevoerd:

  1. Opslagklasse definiëren: clusterbeheerder definieert een opslagklasse, afhankelijk van de bedrijfsomgeving voor uw Kubernetes-cluster. De clusterbeheerder implementeert ook een inrichtingsfunctie. Dit is nog een andere pod of toepassing die is geïmplementeerd in het Kubernetes-cluster. De inrichting heeft alle details om de shares dynamisch in te richten.

  2. Claimopslag: U verzendt een toepassing die de opslag claimt. Zodra een PVC is gemaakt met deze verwijzing naar opslagklasse, wordt de inrichting aangeroepen.

  3. Opslag dynamisch inrichten: de inrichting maakt dynamisch de share die is gekoppeld aan de lokale schijfopslag. Zodra de share is gemaakt, wordt er ook automatisch een PV-object gemaakt dat overeenkomt met deze share.

  4. PVC aan container koppelen: Zodra het PVC is gebonden aan de HW, kunt u het PVC aan de container op dezelfde manier aan een pad koppelen als statische inrichting en lezen van of schrijven naar de share.

Opslaginrichting in Azure Stack Edge Pro

Op het Azure Stack Edge Pro-apparaat worden statisch ingericht PersistentVolumes met behulp van de opslagmogelijkheden van het apparaat. Wanneer u een share inricht en de share gebruiken met Edge Compute is ingeschakeld, wordt met deze actie automatisch een HW-resource gemaakt in het Kubernetes-cluster.

Local share creation in Azure portal for static provisioning

Als u cloudlagen wilt gebruiken, kunt u een Edge-cloudshare maken met de optie De share gebruiken met Edge Compute ingeschakeld. Er wordt opnieuw automatisch een HW gemaakt voor deze share. Alle toepassingsgegevens die u naar de Edge-share schrijft, worden gelaagd in de cloud.

Cloud share creation in Azure portal for static provisioning

U kunt zowel SMB- als NFS-shares maken om statisch in te richten op een Azure Stack Edge Pro-apparaat. Zodra de PV is ingericht, dient u een PVC in om deze opslag te claimen. Hier volgt een voorbeeld van een PVC-implementatie yaml die de opslag claimt en de shares gebruikt die u hebt ingericht.

kind: PersistentVolumeClaim 
apiVersion: v1 
metadata: 
  name: pvc-smb-flexvol 
spec: 
  accessModes: 
  - ReadWriteMany 
  resources: 
    requests: 
      storage: 10Gi 
  volumeName: <nfs-or-smb-share-name-here> 
  storageClassName: ""

Als u de waarde van het volumeName veld wilt ophalen, selecteert u het lokale koppelpunt voor Edge-rekenmodules wanneer u de SMB- of NFS-share selecteert na het maken. Dit is hetzelfde als de naam van de share.

Zie Een stateful toepassing implementeren via statische inrichting op uw Azure Stack Edge Pro via kubectl voor meer informatie.

Voor toegang tot dezelfde statisch ingerichte opslag zijn de bijbehorende opties voor volumekoppelingen voor opslagbindingen voor IoT als volgt. Het /home/input is het pad waarop het volume toegankelijk is binnen de container.

{
"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 heeft ook een ingebouwde StorageClass naam ase-node-local die gebruikmaakt van een gegevensschijfopslag die is gekoppeld aan het Kubernetes-knooppunt. Dit StorageClass biedt ondersteuning voor dynamische inrichting. U kunt in de podtoepassingen een StorageClass verwijzing maken en er wordt automatisch een HW voor u gemaakt. Zie het Kubernetes-dashboard voor meer informatie om een query op uit te voeren ase-node-local StorageClass.

Built-in storage class in Kubernetes dashboard

Zie Een stateful toepassing implementeren via dynamische inrichting op uw Azure Stack Edge Pro via kuebctl voor meer informatie.

Opslagtype kiezen

Mogelijk moet u uw opslagtype kiezen, afhankelijk van de workload die u implementeert.

  • Als u de toegangsmodus wilt ReadWriteMany gebruiken voor de PersistentVolumes locatie waar de volumes worden gekoppeld als lezen/schrijven door veel knooppunten te implementeren, gebruikt u statische inrichting voor de SMB/NFS-shares.

  • Als de toepassingen die u implementeert, een POSIX-nalevingsvereiste hebben, bijvoorbeeld toepassingen zoals MongoDB, PostgreSQL, MySQL of Prometheus, gebruikt u de ingebouwde StorageClass. De toegangsmodi zijn ReadWriteOnce of het volume is gekoppeld als lezen/schrijven door één knooppunt.

Zie de toegangsmodus voor Kubernetes-volumes voor meer informatie over toegangsmodi.

Volgende stappen

Als u wilt weten hoe u een statisch PersistentVolumekunt inrichten, raadpleegt u:

Zie voor meer informatie over hoe u een StorageClassdynamisch kunt inrichten: