CSI-schijfstuurprogramma's (Container Storage Interface) gebruiken in AKS die zijn ingeschakeld door Azure Arc
> Van toepassing op: AKS op Azure Stack HCI 22H2, AKS op Windows Server, AKS op Azure Stack HCI 23H2
In dit artikel wordt beschreven hoe u ingebouwde CSI-opslagklassen (Container Storage Interface) gebruikt om dynamisch permanente schijfvolumes te maken en aangepaste opslagklassen te maken in AKS die worden ingeschakeld door Arc.
Overzicht van CSI in AKS ingeschakeld door Arc
De Container Storage Interface (CSI) is een standaard voor het beschikbaar maken van willekeurige blok- en bestandsopslagsystemen voor gecontaineriseerde workloads op Kubernetes. Met behulp van CSI kan AKS die wordt ingeschakeld door Arc invoegtoepassingen schrijven, implementeren en herhalen om nieuwe opslagsystemen beschikbaar te maken. Het gebruik van CSI kan ook bestaande versies in Kubernetes verbeteren zonder dat u de Kubernetes-kerncode hoeft aan te raken en vervolgens hoeft te wachten op de releasecycli.
De schijf- en bestands-CSI-stuurprogramma's die door AKS Arc worden gebruikt, zijn stuurprogramma's die voldoen aan de CSI-specificatie.
Met de ondersteuning voor CSI-opslagstuurprogramma's in AKS Arc kunt u het volgende gebruiken:
AKS Arc-schijven die u kunt gebruiken om een Kubernetes DataDisk-resource te maken. Deze zijn gekoppeld als ReadWriteOnce, zodat ze slechts voor één pod tegelijk beschikbaar zijn. Gebruik AKS Arc-bestanden voor opslagvolumes die door meerdere pods tegelijk kunnen worden geopend.
AKS Arc-bestanden die u kunt gebruiken om een SMB- of NFS-share te koppelen aan pods. Deze zijn gekoppeld als ReadWriteMany, zodat u gegevens kunt delen tussen meerdere knooppunten en pods. Ze kunnen ook worden gekoppeld als ReadWriteOnce op basis van de pvc-specificatie (persistent volume claim).
Dynamisch permanente schijfvolumes maken met behulp van de ingebouwde opslagklasse
Een opslagklasse wordt gebruikt om te definiëren hoe een opslageenheid dynamisch wordt gemaakt met een permanent volume. Zie Kubernetes-opslagklassen voor meer informatie over het gebruik van opslagklassen.
In AKS Arc wordt de standaardopslagklasse standaard gemaakt en wordt CSI gebruikt om volumes met VHDX-ondersteuning te maken. Het beleid voor vrijmaken zorgt ervoor dat de onderliggende VHDX wordt verwijderd wanneer het permanente volume dat het heeft gebruikt, wordt verwijderd. De opslagklasse configureert ook de permanente volumes om uitbreidbaar te zijn; u hoeft alleen de permanente volumeclaim te bewerken met de nieuwe grootte.
Als u deze opslagklasse wilt gebruiken, maakt u een PVC-bestand en een respectieve pod die ernaar verwijst en deze gebruikt. Een PVC wordt gebruikt om opslag automatisch in te richten op basis van een opslagklasse. Een PVC kan een van de vooraf gemaakte opslagklassen of een door de gebruiker gedefinieerde opslagklasse gebruiken om een VHDX van de gewenste grootte te maken. Wanneer u een poddefinitie maakt, wordt het PVC opgegeven om de gewenste opslag aan te vragen.
Aangepaste opslagklasse voor schijven maken
De standaardopslagklasse is geschikt voor de meest voorkomende scenario's. In sommige gevallen kunt u echter uw eigen opslagklasse maken waarin pc's worden opgeslagen op een bepaalde locatie die is toegewezen aan een specifieke prestatielaag.
Als u Linux-workloads (pods) hebt, moet u een aangepaste opslagklasse maken met de parameter fsType: ext4
. Deze vereiste is van toepassing op Kubernetes-versies 1.19 en 1.20 of hoger. In het volgende voorbeeld ziet u een definitie van een aangepaste opslagklasse met fsType
een gedefinieerde parameter:
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: aks-hci-disk-custom
parameters:
blocksize: "33554432"
container: SqlStorageContainer
dynamic: "true"
group: clustergroup-summertime
hostname: TESTPATCHING-91.sys-sqlsvr.local
logicalsectorsize: "4096"
physicalsectorsize: "4096"
port: "55000"
fsType: ext4
provisioner: disk.csi.akshci.com
reclaimPolicy: Delete
volumeBindingMode: Immediate
allowVolumeExpansion: true
Als u een aangepaste opslagklasse maakt, kunt u de locatie opgeven waar u pc's wilt opslaan. Als de onderliggende infrastructuur Azure Stack HCI is, kan deze nieuwe locatie een volume zijn dat wordt ondersteund door krachtige SSDs/NVMe of een kostengeoptimeerd volume dat wordt ondersteund door HDD's.
Het maken van een aangepaste opslagklasse bestaat uit twee stappen:
Maak een nieuw opslagpad met behulp van de
stack-hci-vm storagepath
cmdlets om de opslagpaden in uw Azure Stack HCI-cluster te maken, weer te geven en weer te geven. Zie Opslagpad voor meer informatie over het maken van opslagpaden.Voor
$path
maakt u een opslagpad met de naam$storagepathname
; bijvoorbeeld C:\ClusterStorage\test-storagepath:az stack-hci-vm storagepath create --resource-group $resource_group --custom-location $customLocationID --name $storagepathname --path $path
Haal de resource-id van het opslagpad op:
$storagepathID = az stack-hci-vm storagepath show --name $storagepathname --resource-group $resource_group --query "id" -o tsv
Maak een nieuwe aangepaste opslagklasse met behulp van het nieuwe opslagpad.
Maak een bestand met de naam sc-aks-hci-disk-custom.yaml en kopieer vervolgens het manifest uit het volgende YAML-bestand. De opslagklasse is hetzelfde als de standaardopslagklasse, behalve met de nieuwe
container
. Gebruik destorage path ID
die u in de vorige stap hebt gemaakt voorcontainer
. Voergroup
voor enhostname
een query uit op de standaardopslagklasse door uit te voerenkubectl get storageclass default -o yaml
en gebruik vervolgens de opgegeven waarden:kind: StorageClass apiVersion: storage.k8s.io/v1 metadata: name: aks-hci-disk-custom provisioner: disk.csi.akshci.com parameters: blocksize: "33554432" container: <storage path ID> dynamic: "true" group: <e.g clustergroup-akshci> # same as the default storageclass hostname: <e.g. ca-a858c18c.ntprod.contoso.com> # same as the default storageclass logicalsectorsize: "4096" physicalsectorsize: "4096" port: "55000" fsType: ext4 # refer to the note above to determine when to include this parameter allowVolumeExpansion: true reclaimPolicy: Delete volumeBindingMode: Immediate
Maak de opslagklasse met de opdracht kubectl apply en geef het bestand sc-aks-hci-disk-custom.yaml op :
$ kubectl apply -f sc-aks-hci-disk-custom.yaml storageclass.storage.k8s.io/aks-hci-disk-custom created
Volgende stappen
Feedback
https://aka.ms/ContentUserFeedback.
Binnenkort beschikbaar: In de loop van 2024 zullen we GitHub-problemen geleidelijk uitfaseren als het feedbackmechanisme voor inhoud en deze vervangen door een nieuw feedbacksysteem. Zie voor meer informatie:Feedback verzenden en weergeven voor