Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Questo articolo descrive come spostare in modo sicuro i volumi permanenti del disco di Azure da un cluster del servizio Azure Kubernetes a un altro nella stessa sottoscrizione o in una diversa. La sottoscrizione di destinazione deve trovarsi nella stessa area.
La sequenza di passaggi per completare questo spostamento è:
- Per evitare la perdita di dati, verificare che lo stato della risorsa disco di Azure nel cluster AKS di origine non sia in uno stato Assegnato.
- Spostare la risorsa disco di Azure nel gruppo di risorse di destinazione nella stessa sottoscrizione o in una diversa.
- Verificare che lo spostamento della risorsa disco di Azure sia riuscito.
- Creare il volume persistente (PV) e il reclamo di volume persistente (PVC) e quindi montare il disco trasferito come volume su un pod nel cluster di destinazione.
Operazioni preliminari
- Assicurarsi che sia installata e configurata l'interfaccia della riga di comando di Azure versione 2.0.59 o successiva. Per trovare la versione, eseguire
az --version. Se è necessario eseguire l'installazione o l'aggiornamento, vedere Installare l'interfaccia della riga di comando di Azure. - Esaminare i dettagli e i requisiti relativi allo spostamento di risorse tra aree diverse in Spostare le risorse in un nuovo gruppo di risorse o sottoscrizione. Assicurarsi di esaminare l'elenco di controllo prima di spostare le risorse riportato in tale articolo.
- Il cluster di origine deve avere uno o più volumi permanenti con un disco di Azure collegato.
- È necessario avere un cluster AKS nella sottoscrizione di destinazione.
Convalidare lo stato del volume del disco
È importante evitare il rischio di danneggiamento dei dati, incoerenze o perdite di dati durante l'utilizzo di volumi permanenti. Per attenuare questi rischi durante il processo di migrazione o spostamento, è prima necessario eseguire i passaggi seguenti per verificare che il volume del disco non sia scollegato.
Identificare il gruppo di risorse del nodo che ospita i dischi gestiti di Azure usando il
az aks showcomando e aggiungere il--query nodeResourceGroupparametro .az aks show --resource-group myResourceGroup --name myAKSCluster --query nodeResourceGroup -o tsvL'output del comando è simile all'esempio seguente:
MC_myResourceGroup_myAKSCluster_eastusElencare i dischi gestiti usando il comando
az disk list. Fare riferimento al gruppo di risorse restituito nel passaggio precedente.az disk list --resource-group MC_myResourceGroup_myAKSCluster_eastusEsaminare l'elenco e notare quali volumi di disco si prevede di spostare nell'altro cluster. Convalidare anche lo stato del disco cercando la proprietà
diskState. Il risultato del comando è un esempio sintetico.{ "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",Nota
Si noti il valore del campo
resourceGroupper ogni disco da spostare dall'output precedente. Questo gruppo di risorse è il gruppo di risorse del nodo, non il gruppo di risorse del cluster. Per spostare i dischi, è necessario il nome di questo gruppo di risorse.Se
diskStatemostraAttached, determinare prima se un carico di lavoro continua ad accedere al volume e arrestarlo. Dopo un periodo di tempo, lo stato del disco restituisce lo statoUnattachede può quindi essere spostato.
Spostare il volume permanente
Per spostare il volume o i volumi permanenti in un altro cluster del servizio Azure Kubernetes, seguire la procedura descritta in Spostare le risorse di Azure in un nuovo gruppo di risorse o in una nuova sottoscrizione. Per eseguire la migrazione, è possibile usare il portale di Azure, Azure PowerShell o l'interfaccia della riga di comando di Azure.
Durante questo processo, si fa riferimento a:
- Nome o ID risorsa del gruppo di risorse del nodo di origine che ospita i dischi gestiti di Azure. È possibile trovare il nome del gruppo di risorse del nodo passando al dashboard Dischi nel portale di Azure e notando il gruppo di risorse associato per il disco.
- Nome o ID risorsa del gruppo di risorse di destinazione in cui spostare i dischi gestiti.
- Nome o ID risorsa delle risorse dei dischi gestiti.
Nota
A causa delle dipendenze tra provider di risorse, il completamento di questa operazione può richiedere fino a quattro ore.
Verificare che il volume del disco sia stato spostato
Dopo aver spostato il volume del disco nel gruppo di risorse cluster di destinazione, convalidare la risorsa nell'elenco dei gruppi di risorse usando il comando az disk list. Fare riferimento al gruppo di risorse di destinazione in cui sono state spostate le risorse. In questo esempio, i dischi sono stati spostati in un gruppo di risorse denominato MC_myResourceGroup_myAKSCluster_eastus.
az disk list --resource-group MC_myResourceGroup_myAKSCluster_eastus
Montare il disco spostato come volume
Per montare il volume del disco spostato, creare un volume persistente statico utilizzando l'ID risorsa copiato nei passaggi precedenti, la richiesta di volume persistente e, in questo esempio, un semplice pod.
Creare un file pv-azuredisk.yaml con un volume permanente. Aggiornare il campo volumeHandle con l'ID risorsa disco del passaggio precedente.
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: ext4Creare un file pvc-azuredisk.yaml con PersistentVolumeClaim che usa PersistentVolume.
apiVersion: v1 kind: PersistentVolumeClaim metadata: name: pvc-azuredisk spec: accessModes: - ReadWriteOnce resources: requests: storage: 10Gi volumeName: pv-azuredisk storageClassName: managed-csiCreare PersistentVolume e PersistentVolumeClaim usando il comando
kubectl applye fare riferimento ai due file YAML creati.kubectl apply -f pv-azuredisk.yaml kubectl apply -f pvc-azuredisk.yamlVerificare che PersistentVolumeClaim sia stato creato e associato a PersistentVolume usando il comando
kubectl get.kubectl get pvc pvc-azurediskL'output del comando è simile all'esempio seguente:
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE pvc-azuredisk Bound pv-azuredisk 20Gi RWO 5sPer fare riferimento al PersistentVolumeClaim, creare un file azure-disk-pod.yaml. Nel manifesto di esempio, il nome del 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-azurediskApplicare la configurazione e montare il volume usando il comando kubectl apply.
kubectl apply -f azure-disk-pod.yamlControllare lo stato del pod e i dati migrati con il volume montato all'interno del file system del pod in
/mnt/azure. Prima di tutto, ottenere lo stato del pod usando il comandokubectl get.kubectl get podsL'output del comando è simile all'esempio seguente:
NAME READY STATUS RESTARTS AGE mypod 1/1 Running 0 4m1sVerificare i dati all'interno del volume
/mnt/azuremontato usando il comandokubectl exec.kubectl exec -it mypod -- ls -l /mnt/azure/L'output del comando è simile all'esempio seguente:
total 28 -rw-r--r-- 1 root root 0 Jan 11 10:09 file-created-in-source-aks
Passaggi successivi
- Per altre informazioni sulle soluzioni di archiviazione basate su disco, vedere Soluzioni basate su disco nel servizio Azure Kubernetes.
- Per ulteriori informazioni sulle procedure consigliate per l'archiviazione, vedi Procedure consigliate per l'archiviazione e i backup nel servizio Azure Kubernetes.