Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Cet article explique comment déplacer en toute sécurité des volumes persistants de disque Azure d’un cluster Azure Kubernetes Service (AKS) vers un autre dans le même abonnement ou dans un autre. L’abonnement cible doit se trouver dans la même région.
La série d’étapes pour effectuer ce déplacement est la suivante :
- Pour éviter toute perte de données, vérifiez que l’état de la ressource de disque Azure sur le cluster AKS source n’est pas dans un état Attaché.
- Déplacez la ressource de disque Azure vers le groupe de ressources cible dans le même abonnement ou dans un autre.
- Vérifiez que le déplacement de la ressource de disque Azure Disk a réussi.
- Créez le volume persistant (PV) ainsi que la revendication de volume persistant (PVC), puis montez le disque déplacé comme volume sur un pod du cluster cible.
Avant de commencer
- Vérifiez qu’Azure CLI version 2.0.59 ou ultérieure est installé et configuré. Pour connaître la version, exécutez
az --version. Si vous devez installer ou mettre à niveau, voir Installer Azure CLI. - Consultez les détails et les conditions requises concernant le déplacement de ressources entre différentes régions dans Déplacer des ressources vers un nouveau groupe de ressources ou un nouvel abonnement. Veillez à passer en revue la liste de contrôle avant de déplacer des ressources dans cet article.
- Le cluster source doit avoir un ou plusieurs volumes persistants avec un disque Azure attaché.
- Vous devez disposer d’un cluster AKS dans l’abonnement cible.
Valider l’état du volume du disque
Il est important d’éviter les risques d’altération des données, d’incohérences ou de perte de données lors de l’utilisation de volumes persistants. Pour atténuer ces risques pendant le processus de migration ou de déplacement, vous devez d’abord vérifier que le volume du disque n’est pas attaché en effectuant les étapes suivantes.
Identifiez le groupe de ressources de nœud hébergeant les disques managés Azure à l’aide de la
az aks showcommande et ajoutez le--query nodeResourceGroupparamètre.az aks show --resource-group myResourceGroup --name myAKSCluster --query nodeResourceGroup -o tsvLa sortie de la commande ressemble à l’exemple suivant :
MC_myResourceGroup_myAKSCluster_eastusListez les disques managés à l’aide de la commande
az disk list. Faites référence au groupe de ressources retourné à l'étape précédente.az disk list --resource-group MC_myResourceGroup_myAKSCluster_eastusPassez en revue la liste et notez les volumes de disque que vous envisagez de déplacer vers l’autre cluster. Validez également l’état du disque en recherchant la propriété
diskState. La sortie de la commande est un exemple condensé.{ "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",Remarque
Notez la valeur du champ
resourceGrouppour chaque disque que vous désirez déplacer à partir de la sortie ci-dessus. Ce groupe de ressources est le groupe de ressources de nœud, et non le groupe de ressources de cluster. Vous aurez besoin du nom de ce groupe de ressources pour déplacer les disques.Si
diskStateafficheAttached, commencez par vérifier si des charges de travail utilisent encore le volume et interrompez-les le cas échéant. Après une période, l’état du disque retourne l’étatUnattachedet peut ensuite être déplacé.
Déplacer le volume persistant
Pour déplacer le ou les volumes persistants vers un autre cluster AKS, suivez les étapes décrites dans Déplacer des ressources Azure vers un nouveau groupe de ressources ou un nouvel abonnement. Vous pouvez utiliser le portail Azure, Azure PowerShell ou Azure CLI pour effectuer la migration.
Pendant ce processus, vous référencez :
- Nom ou ID de ressource du groupe de ressources de nœud source hébergeant les disques managés Azure. Vous trouverez le nom du groupe de ressources de nœud en accédant au tableau de bord Disques dans le portail Azure et en notant le groupe de ressources associé pour votre disque.
- Le nom ou l’ID de ressource du groupe de ressources de destination vers lequel déplacer les disques managés.
- Le nom ou l’ID de ressource des ressources des disques managés.
Remarque
En raison des dépendances entre les fournisseurs de ressources, cette opération peut prendre jusqu’à quatre heures.
Vérifier que le volume de disque a été déplacé
Après avoir déplacé le volume de disque vers le groupe de ressources de cluster cible, validez la ressource dans la liste des groupes de ressources à l’aide de la commande az disk list. Référencez le groupe de ressources de destination où les ressources ont été déplacées. Dans cet exemple, les disques ont été déplacés vers un groupe de ressources appelé MC_myResourceGroup_myAKSCluster_eastus.
az disk list --resource-group MC_myResourceGroup_myAKSCluster_eastus
Monter le disque déplacé en tant que volume
Pour monter le volume de disque déplacé, créez un volume persistant statique avec l’ID de ressource copié dans les étapes précédentes, la revendication de volume persistant et, dans cet exemple, un pod simple.
Créez un fichier pv-azuredisk.yaml avec un volume persistant. Mettez à jour le champ volumeHandle avec l’ID de ressource de disque de l’étape précédente.
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: ext4Créez un fichier pvc-azuredisk.yaml avec un objet PersistentVolumeClaim qui utilise PersistentVolume.
apiVersion: v1 kind: PersistentVolumeClaim metadata: name: pvc-azuredisk spec: accessModes: - ReadWriteOnce resources: requests: storage: 10Gi volumeName: pv-azuredisk storageClassName: managed-csiCréez PersistentVolume et PersistentVolumeClaim à l’aide de la commande
kubectl applyet référencez les deux fichiers YAML créés.kubectl apply -f pv-azuredisk.yaml kubectl apply -f pvc-azuredisk.yamlVérifiez que la revendication PersistentVolumeClaim est créée et liée à PersistentVolume à l’aide de la commande
kubectl get.kubectl get pvc pvc-azurediskLa sortie de la commande ressemble à l’exemple suivant :
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE pvc-azuredisk Bound pv-azuredisk 20Gi RWO 5sPour référencer votre PersistentVolumeClaim, créez un fichier azure-disk-pod.yaml. Dans l’exemple de manifeste, le nom du pod est 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-azurediskAppliquez la configuration et montez le volume à l’aide de la commande kubectl apply.
kubectl apply -f azure-disk-pod.yamlContrôlez l’état du pod ainsi que les données migrées avec le volume monté dans le système de fichiers du pod sur
/mnt/azure. Tout d’abord, obtenez l’état du pod à l’aide de la commandekubectl get.kubectl get podsLa sortie de la commande ressemble à l’exemple suivant :
NAME READY STATUS RESTARTS AGE mypod 1/1 Running 0 4m1sVérifiez les données dans le volume monté
/mnt/azureà l’aide de la commandekubectl exec.kubectl exec -it mypod -- ls -l /mnt/azure/La sortie de la commande ressemble à l’exemple suivant :
total 28 -rw-r--r-- 1 root root 0 Jan 11 10:09 file-created-in-source-aks
Étapes suivantes
- Pour plus d’informations sur les solutions de stockage sur disque, consultez Solutions sur disque dans AKS.
- Pour plus d’informations sur les meilleures pratiques relatives au stockage, consultez Meilleures pratiques relatives au stockage et aux sauvegardes dans Azure Kubernetes Service (AKS)