Kubernetes-opslagbeheer op uw Azure Stack Edge Pro GPU-apparaat
VAN TOEPASSING OP: Azure Stack Edge Pro - GPUAzure Stack Edge Pro 2Azure Stack Edge Pro RAzure 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 alsStorageClass
.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 aanPersistentVolumes
die verschillen op meer manieren kunnen bieden dan alleen de grootte- en toegangsmodi. Voor deze behoeften hebt u deStorageClass
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:
De volgende stappen worden uitgevoerd:
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.
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.
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:
De volgende stappen worden uitgevoerd:
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.
Claimopslag: U verzendt een toepassing die de opslag claimt. Zodra een PVC is gemaakt met deze verwijzing naar opslagklasse, wordt de inrichting aangeroepen.
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.
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.
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.
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
.
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 dePersistentVolumes
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 PersistentVolume
kunt inrichten, raadpleegt u:
- Implementeer een stateful toepassing via statische inrichting op uw Azure Stack Edge Pro via kubectl.
Zie voor meer informatie over hoe u een StorageClass
dynamisch kunt inrichten: