Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
In dit artikel wordt beschreven hoe u permanente Azure Disk-volumes veilig kunt verplaatsen van een AKS-cluster (Azure Kubernetes Service) naar een ander cluster in hetzelfde abonnement of in een ander abonnement. Het doelabonnement moet zich in dezelfde regio bevinden.
De reeks stappen voor het voltooien van deze verplaatsing zijn:
- Als u gegevensverlies wilt voorkomen, controleert u of de status van de Azure Disk-resource op het bron-AKS-cluster niet de status Gekoppeld heeft .
- Verplaats de Azure Disk-resource naar de doelresourcegroep in hetzelfde abonnement of een ander abonnement.
- Controleer of de verplaatsing van de Azure Disk-resource is geslaagd.
- Maak het permanente volume (PV) en de permanente volumeclaim (PVC) en koppel de verplaatste schijf vervolgens als een volume op een pod op het doelcluster.
Voordat u begint
- Zorg ervoor dat Azure CLI versie 2.0.59 of hoger is geïnstalleerd en geconfigureerd. Voer
az --versionuit om de versie te zoeken. Als u Azure CLI 2.0 wilt installeren of upgraden, raadpleegt u Azure CLI 2.0 installeren. - Bekijk details en vereisten over het verplaatsen van resources tussen verschillende regio's in Resources verplaatsen naar een nieuwe resourcegroep of een nieuw abonnement. Zorg ervoor dat u de controlelijst bekijkt voordat u resources in dat artikel verplaatst.
- Het broncluster moet een of meer permanente volumes hebben waaraan een Azure-schijf is gekoppeld.
- U moet een AKS-cluster in het doelabonnement hebben.
Status van schijfvolume valideren
Het is belangrijk om het risico op beschadiging van gegevens, inconsistenties of gegevensverlies te voorkomen tijdens het werken met permanente volumes. Als u deze risico's tijdens de migratie of verplaatsing wilt beperken, moet u eerst controleren of het schijfvolume niet is gekoppeld door de volgende stappen uit te voeren.
Identificeer de knooppuntresourcegroep die als host fungeert voor de beheerde Azure-schijven met behulp van de
az aks showopdracht en voeg de--query nodeResourceGroupparameter toe.az aks show --resource-group myResourceGroup --name myAKSCluster --query nodeResourceGroup -o tsvDe uitvoer van de opdracht lijkt op het volgende voorbeeld:
MC_myResourceGroup_myAKSCluster_eastusGeef de beheerde schijven weer met behulp van de
az disk listopdracht. Verwijs naar de resourcegroep die in de vorige stap is geretourneerd.az disk list --resource-group MC_myResourceGroup_myAKSCluster_eastusBekijk de lijst en noteer welke schijfvolumes u naar het andere cluster wilt verplaatsen. Valideer ook de schijfstatus door naar de
diskStateeigenschap te zoeken. De uitvoer van de opdracht is een verkort voorbeeld.{ "LastOwnershipUpdateTime": "2023-04-25T15:09:19.5439836+00:00", "creationData": { "createOption": "Empty", "logicalSectorSize": 4096 }, "diskIOPSReadOnly": 3000, "diskIOPSReadWrite": 4000, "diskMBpsReadOnly": 125, "diskMBpsReadWrite": 1000, "diskSizeBytes": 1073741824000, "diskSizeGB": 1000, "diskState": "Unattached",Notitie
Noteer de waarde van het
resourceGroupveld voor elke schijf die u wilt verplaatsen uit de bovenstaande uitvoer. Deze resourcegroep is de knooppuntresourcegroep, niet de clusterresourcegroep. U hebt de naam van deze resourcegroep nodig om de schijven te verplaatsen.Als
diskStateAttachedtoont, bepaal dan eerst of workloads nog steeds toegang hebben tot het volume en stop ze. Na een bepaalde periode retourneert de schijfstatus de statusUnattacheden kan deze vervolgens worden verplaatst.
Het permanente volume verplaatsen
Als u het permanente volume of de permanente volumes naar een ander AKS-cluster wilt verplaatsen, volgt u de stappen die worden beschreven in Azure-resources verplaatsen naar een nieuwe resourcegroep of een nieuw abonnement. U kunt Azure Portal, Azure PowerShell of de Azure CLI gebruiken om de migratie uit te voeren.
Tijdens dit proces verwijst u naar:
- De naam of resource-id van de bronknooppuntresourcegroep die als host fungeert voor de beheerde Azure-schijven. U vindt de naam van de knooppuntresourcegroep door te navigeren naar het dashboard Schijven in Azure Portal en de bijbehorende resourcegroep voor uw schijf te noteren.
- De naam of resource-id van de doelresourcegroep waar de beheerde schijven naartoe moeten worden verplaatst.
- De naam of resource-id van de beheerde schijvenresources.
Notitie
Vanwege de afhankelijkheden tussen resourceproviders kan het tot vier uur duren voordat deze bewerking is voltooid.
Controleer of het schijfvolume is verplaatst
Nadat u het schijfvolume naar de doelclusterresourcegroep hebt verplaatst, valideert u de resource in de lijst met resourcegroepen met behulp van de az disk list opdracht. Verwijs naar de doelresourcegroep waar de resources zijn verplaatst. In dit voorbeeld zijn de schijven verplaatst naar een resourcegroep met de naam MC_myResourceGroup_myAKSCluster_eastus.
az disk list --resource-group MC_myResourceGroup_myAKSCluster_eastus
De verplaatste schijf als volume koppelen
Als u het verplaatste schijfvolume wilt koppelen, maakt u een statisch permanent volume met de resource-id die u in de vorige stappen hebt gekopieerd, de permanente volumeclaim en in dit voorbeeld een eenvoudige pod.
Maak een pv-azuredisk.yaml-bestand met een permanent volume. Werk het veld volumeHandle bij met de schijfresource-id uit de vorige stap.
apiVersion: v1 kind: PersistentVolume metadata: name: pv-azuredisk spec: capacity: storage: 10Gi accessModes: - ReadWriteOnce persistentVolumeReclaimPolicy: Retain storageClassName: managed-csi csi: driver: disk.csi.azure.com readOnly: false volumeHandle: /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/MC_rg_azure_aks-pvc-target_eastus/providers/Microsoft.Compute/disks/pvc-aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e volumeAttributes: fsType: ext4Maak een pvc-azuredisk.yaml-bestand met een PersistentVolumeClaim die gebruikmaakt van het PersistentVolume.
apiVersion: v1 kind: PersistentVolumeClaim metadata: name: pvc-azuredisk spec: accessModes: - ReadWriteOnce resources: requests: storage: 10Gi volumeName: pv-azuredisk storageClassName: managed-csiMaak het PersistentVolume en PersistentVolumeClaim met behulp van de
kubectl applyopdracht en verwijs naar de twee YAML-bestanden die u hebt gemaakt.kubectl apply -f pv-azuredisk.yaml kubectl apply -f pvc-azuredisk.yamlControleer of uw PersistentVolumeClaim is gemaakt en gebonden aan het PersistentVolume met behulp van de
kubectl getopdracht.kubectl get pvc pvc-azurediskDe uitvoer van de opdracht lijkt op het volgende voorbeeld:
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE pvc-azuredisk Bound pv-azuredisk 20Gi RWO 5sAls u wilt verwijzen naar uw PersistentVolumeClaim, maakt u een azure-disk-pod.yaml-bestand . In het voorbeeldmanifest is de naam van de pod mypod.
apiVersion: v1 kind: Pod metadata: name: mypod spec: nodeSelector: kubernetes.io/os: linux containers: - image: mcr.microsoft.com/oss/nginx/nginx:1.15.5-alpine name: mypod resources: requests: cpu: 100m memory: 128Mi limits: cpu: 250m memory: 256Mi volumeMounts: - name: azure mountPath: /mnt/azure volumes: - name: azure persistentVolumeClaim: claimName: pvc-azurediskGebruik de opdracht kubectl apply om de configuratie toe te passen en het volume te koppelen.
kubectl apply -f azure-disk-pod.yamlControleer de status van de pod en de gegevens die zijn gemigreerd met het volume dat in het pod-bestandssysteem is aangekoppeld op
/mnt/azure. Haal eerst de podstatus op met behulp van dekubectl getopdracht.kubectl get podsDe uitvoer van de opdracht lijkt op het volgende voorbeeld:
NAME READY STATUS RESTARTS AGE mypod 1/1 Running 0 4m1sControleer de gegevens in het gekoppelde volume
/mnt/azuremet behulp van dekubectl execopdracht.kubectl exec -it mypod -- ls -l /mnt/azure/De uitvoer van de opdracht lijkt op het volgende voorbeeld:
total 28 -rw-r--r-- 1 root root 0 Jan 11 10:09 file-created-in-source-aks
Volgende stappen
- Zie Schijfoplossingen in AKS voor meer informatie over opslagoplossingen op basis van schijven.
- Zie Best practices voor opslag en back-ups in Azure Kubernetes Service voor meer informatie over aanbevolen procedures voor opslag.