Azure Container Storage gebruiken met Azure Elastic SAN (preview)
Azure Container Storage is een cloudgebaseerde volumebeheer-, implementatie- en indelingsservice die systeemeigen is gebouwd voor containers. Azure Elastic SAN is een volledig geïntegreerde oplossing die het implementeren, schalen, beheren en configureren van een SAN vereenvoudigt, en ook ingebouwde cloudmogelijkheden biedt, zoals hoge beschikbaarheid.
Als preview-functie kunt u Azure Container Storage configureren voor het gebruik van Azure Elastic SAN. In dit artikel wordt beschreven hoe u deze configuratie kunt maken. Aan het einde van dit artikel hebt u een pod die elastic SAN als opslag gebruikt.
Vereisten
Als u geen Azure-abonnement hebt, maakt u een gratis account voordat u begint.
Voor dit artikel is de nieuwste versie (2.35.0 of hoger) van de Azure CLI vereist. Zie Hoe u de Azure CLI installeert. Als u de Bash-omgeving in Azure Cloud Shell gebruikt, is de nieuwste versie al geïnstalleerd. Als u van plan bent om de opdrachten lokaal uit te voeren in plaats van in Azure Cloud Shell, moet u deze uitvoeren met beheerdersbevoegdheden. Zie Aan de slag met Azure Cloud Shell voor meer informatie.
U hebt de Kubernetes-opdrachtregelclient nodig.
kubectl
Deze is al geïnstalleerd als u Azure Cloud Shell gebruikt of als u deze lokaal kunt installeren door de opdracht uit teaz aks install-cli
voeren.Als u Azure Container Storage nog niet hebt geïnstalleerd, volgt u de instructies in Azure Container Storage gebruiken met Azure Kubernetes Service.
Controleer of uw doelregio wordt ondersteund in Azure Container Storage-regio's.
Zorg ervoor dat u de rol Azure Container Storage-eigenaar of Azure Container Storage-inzender hebt voor uw abonnement. Een van deze rollen verleent machtigingen waarmee Azure Container Storage kan communiceren met de elastische SAN-resource. Als u deze wijziging wilt aanbrengen, gaat u naar uw abonnementspagina in Azure Portal. Selecteer Toegangsbeheer (IAM) Roltoewijzing > toevoegen en zoek naar 'Azure Container Storage-eigenaar' of 'Azure Container Storage-inzender' op het tabblad Taakfunctierollen. Selecteer Toewijzingen > toevoegen en > voeg uw account toe.
Als u Azure Container Storage wilt gebruiken met Azure Elastic SAN (preview), moet uw AKS-cluster een knooppuntgroep hebben van ten minste drie vm's voor algemeen gebruik, zoals standard_d4s_v5 voor de clusterknooppunten, elk met minimaal vier virtuele CPU's (vCPU's).
Beperkingen
De volgende functies worden momenteel niet ondersteund wanneer u Azure Container Storage gebruikt om een elastisch SAN te implementeren en te organiseren.
- Momentopnamen van volumes
- Uitbreiding van opslaggroep
Regionale beschikbaarheid
Azure Container Storage is alleen beschikbaar voor een subset van Azure-regio's:
- (Afrika) Zuid-Afrika - noord
- (Azië en Stille Oceaan) Australië - oost
- (Azië en Stille Oceaan) Oost-Azië
- (Azië en Stille Oceaan) Japan - oost
- (Azië en Stille Oceaan) Korea - centraal
- (Azië en Stille Oceaan) Zuidoost-Azië
- (Azië en Stille Oceaan) India - centraal
- (Europa) Frankrijk - centraal
- (Europa) Duitsland - west-centraal
- (Europa) Europa - noord
- (Europa) Europa - west
- (Europa) UK - zuid
- (Europa) Zweden - centraal
- (Europa) Zwitserland - noord
- (Midden-Oosten) UAE - noord
- (Noord-Amerika) VS - oost
- (Noord-Amerika) VS - oost 2
- (Noord-Amerika) VS - west
- (Noord-Amerika) VS - west 2
- (Noord-Amerika) VS - west 3
- (Noord-Amerika) VS - centraal
- (Noord-Amerika) VS - noord-centraal
- (Noord-Amerika) VS - zuid-centraal
- (Noord-Amerika) VS - west-centraal
- (Noord-Amerika) Canada - centraal
- (Noord-Amerika) Canada - oost
- (Zuid-Amerika) Brazilië - zuid
Permanente volumes maken en koppelen
Volg deze stappen om een permanent volume te maken en te koppelen.
1. Een opslaggroep maken
Maak eerst een opslaggroep, een logische groepering van opslag voor uw Kubernetes-cluster, door deze te definiëren in een YAML-manifestbestand.
Als u Azure Container Storage hebt ingeschakeld met behulp van az aks create
of az aks update
opdrachten, hebt u mogelijk al een opslaggroep. Gebruik kubectl get sp -n acstor
dit om de lijst met opslaggroepen op te halen. Als u al een opslaggroep hebt die u wilt gebruiken, kunt u deze sectie overslaan en doorgaan met het weergeven van de beschikbare opslagklassen.
Volg deze stappen om een opslaggroep te maken met Azure Elastic SAN (preview).
Gebruik uw favoriete teksteditor om een YAML-manifestbestand zoals
code acstor-storagepool.yaml
.Plak er de volgende code in. De naamwaarde van de opslaggroep kan de gewenste waarde zijn. Pas de opslag aan om de gewenste opslagcapaciteit in Gi of Ti weer te geven en sla het bestand op. Azure Elastic SAN biedt momenteel geen ondersteuning voor het wijzigen van het formaat van opslaggroepen.
apiVersion: containerstorage.azure.com/v1 kind: StoragePool metadata: name: managed namespace: acstor spec: poolType: elasticSan: {} resources: requests: {"storage": 1Ti}
Pas het YAML-manifestbestand toe om de opslaggroep te maken.
kubectl apply -f acstor-storagepool.yaml
Wanneer het maken van de opslaggroep is voltooid, ziet u een bericht zoals:
storagepool.containerstorage.azure.com/managed created
U kunt deze opdracht ook uitvoeren om de status van de opslaggroep te controleren. Vervang door
<storage-pool-name>
de naamwaarde van uw opslaggroep. In dit voorbeeld wordt de waarde beheerd.kubectl describe sp <storage-pool-name> -n acstor
Wanneer de opslaggroep wordt gemaakt, maakt Azure Container Storage namens u een opslagklasse met behulp van de naamconventie acstor-<storage-pool-name>
. Er wordt ook een elastische SAN-resource van Azure gemaakt.
2. De beschikbare opslagklassen weergeven
Wanneer de opslaggroep gereed is voor gebruik, moet u een opslagklasse selecteren om te definiëren hoe opslag dynamisch wordt gemaakt bij het maken van permanente volumeclaims en het implementeren van permanente volumes.
Voer uit kubectl get sc
om de beschikbare opslagklassen weer te geven. Als het goed is, ziet u een opslagklasse met de naam acstor-<storage-pool-name>
.
Belangrijk
Gebruik niet de opslagklasse die is gemarkeerd als intern. Het is een interne opslagklasse die nodig is om Azure Container Storage te laten werken.
3. Een permanente volumeclaim maken
Een permanente volumeclaim (PVC) wordt gebruikt om automatisch opslag in te richten op basis van een opslagklasse. Volg deze stappen om een PVC te maken met behulp van de nieuwe opslagklasse.
Gebruik uw favoriete teksteditor om een YAML-manifestbestand zoals
code acstor-pvc.yaml
.Plak de volgende code en sla het bestand op. De PVC-waarde
name
kan zijn wat u wilt.apiVersion: v1 kind: PersistentVolumeClaim metadata: name: managedpvc spec: accessModes: - ReadWriteOnce storageClassName: acstor-managed # replace with the name of your storage class if different resources: requests: storage: 100Gi
Pas het YAML-manifestbestand toe om het PVC te maken.
kubectl apply -f acstor-pvc.yaml
De uitvoer moet er ongeveer zo uitzien:
persistentvolumeclaim/managedpvc created
U kunt de status van het PVC controleren door de volgende opdracht uit te voeren:
kubectl describe pvc managedpvc
Zodra het PVC is gemaakt, is het klaar voor gebruik door een pod.
4. Implementeer een pod en koppel een permanent volume
Maak een pod met Fio (Flexibele I/O-tester) voor benchmarking en workloadsimulatie en geef een koppelpad op voor het permanente volume. Gebruik voor claimName de naamwaarde die u hebt gebruikt bij het maken van de permanente volumeclaim.
Gebruik uw favoriete teksteditor om een YAML-manifestbestand zoals
code acstor-pod.yaml
.Plak de volgende code en sla het bestand op.
kind: Pod apiVersion: v1 metadata: name: fiopod spec: nodeSelector: acstor.azure.com/io-engine: acstor volumes: - name: managedpv persistentVolumeClaim: claimName: managedpvc containers: - name: fio image: nixery.dev/shell/fio args: - sleep - "1000000" volumeMounts: - mountPath: "/volume" name: managedpv
Pas het YAML-manifestbestand toe om de pod te implementeren.
kubectl apply -f acstor-pod.yaml
De uitvoer ziet er als volgt uit:
pod/fiopod created
Controleer of de pod wordt uitgevoerd en of de permanente volumeclaim is gebonden aan de pod:
kubectl describe pod fiopod kubectl describe pvc managedpvc
Controleer fio-tests om de huidige status ervan te zien:
kubectl exec -it fiopod -- fio --name=benchtest --size=800m --filename=/volume/test --direct=1 --rw=randrw --ioengine=libaio --bs=4k --iodepth=16 --numjobs=8 --time_based --runtime=60
U hebt nu een pod geïmplementeerd die een elastisch SAN als opslag gebruikt en u kunt deze gebruiken voor uw Kubernetes-workloads.
Permanente volumes en opslaggroepen beheren
Nu u een permanent volume hebt gemaakt, kunt u het indien nodig loskoppelen en opnieuw aankoppelen. U kunt ook een opslaggroep verwijderen.
Een permanent volume loskoppelen en opnieuw aankoppelen
Als u een permanent volume wilt loskoppelen, verwijdert u de pod waaraan het permanente volume is gekoppeld. Vervang door <pod-name>
de naam van de pod, bijvoorbeeld fiopod.
kubectl delete pods <pod-name>
Als u een permanent volume opnieuw wilt koppelen, verwijst u gewoon naar de naam van de permanente volumeclaim in het YAML-manifestbestand, zoals beschreven in Een pod implementeren en een permanent volume koppelen.
Als u wilt controleren aan welk permanent volume een permanente volumeclaim is gebonden, voert u uit kubectl get pvc <persistent-volume-claim-name>
.
Een opslaggroep verwijderen
Als u een opslaggroep wilt verwijderen, voert u de volgende opdracht uit. Vervang door <storage-pool-name>
de naam van de opslaggroep.
kubectl delete sp -n acstor <storage-pool-name>