Comment migrer un volume EBS de gp2 vers gp3 dans Amazon EKS ?
Je souhaite migrer mon type de volume Amazon Elastic Block Store (Amazon EBS) d'un disque SSD à usage général (gp2) vers un disque SSD à usage général (gp3) dans Amazon Elastic Kubernetes Service (Amazon EKS).
Brève description
Vous pouvez utiliser le pilote Container Storage Interface (CSI) d’Amazon EBS pour modifier les volumes Amazon EBS avec des annotations dans PersistentVolumeClaims (PVC). Cette fonctionnalité est disponible dans la version aws-ebs-csi-driver v1.19.0-eksbuild.2 ou version ultérieure. Vous pouvez modifier les paramètres type, iops et débit dans PVC :
Pour migrer votre volume EBS de gp2 à gp3 dans votre cluster Amazon EKS, procédez comme suit :
- Installez le pilote CSI Amazon EBS dans votre cluster Amazon EKS.
- Activez la fonctionnalité de modification du volume dans le pilote Amazon CSI EBS.
- Modifiez le type de volume EBS.
Résolution
Remarque : Si des erreurs surviennent lorsque vous exécutez des commandes de l'interface de la ligne de commande AWS (AWS CLI), consultez la section Résoudre des erreurs liées à l’AWS CLI. Vérifiez également que vous utilisez bien la version la plus récente de l'AWS CLI.
Installer la fonctionnalité de modification du volume dans le pilote CSI Amazon EBS
La fonctionnalité de modification du volume est disponible dans la version 1.19.0 du pilote CSI Amazon EBS. Elle est utilisée par le chart de Helm 2.19.0 ou par le module complémentaire géré par Amazon EKS v1.19.0-eksbuild.2. Cette fonctionnalité est implémentée sous la forme d'un sidecar supplémentaire appelé volumemodifier. Vous devez l'activer manuellement dans le pilote CSI Amazon EBS. Pour plus d'informations, consultez la page Modification du volume sur le site Web de GitHub.
Pour activer la fonctionnalité de modification du volume dans Amazon EKS, configurez l'une des méthodes suivantes :
- Configuration de modules complémentaires autogérés avec Helm
- Configuration de modules complémentaires gérés par Amazon EKS
Configuration de modules complémentaires autogérés avec Helm
-
Installez le pilote Amazon EBS CSI autogéré via le chart de Helm, puis définissez controller.volumeModificationFeature.enabled sur vrai.
Exemple de modèle YAML :cat values.yaml controller: volumeModificationFeature: enabled: true -
Mettez à niveau la configuration. Exécutez la commande suivante :
helm upgrade aws-ebs-csi-driver --namespace kube-system \ aws-ebs-csi-driver/aws-ebs-csi-driver -f values.yaml
Configuration de modules complémentaires gérés par Amazon EKS
-
Créez un fichier de configuration. Exécutez la commande suivante :
cat eks-addon-ebs-csi-driver-config.json { "controller": { "volumeModificationFeature": { "enabled": true } } } -
Mettez à jour le module complémentaire du pilote CSI Amazon EBS avec le fichier de configuration. Exécutez la commande suivante :
aws eks update-addon --cluster-name eks-demo \ --addon-name aws-ebs-csi-driver \ --service-account-role-arn arn:aws:iam::{AWS_ACCOUNT_ID}:role/AmazonEKS-EBS-CSI-DriverRole \ --configuration-values 'file://eks-addon-ebs-csi-driver-config.json' { "update": { ... "status": "InProgress", "type": "AddonUpdate", "params": [ ... { "type": "ConfigurationValues", "value": "{\n \"controller\": {\n \"volumeModificationFeature\": {\n \"enabled\": true\n }\n }\n}" } ], ... } } -
Vérifiez que le sidecar volumemodifier supplémentaire est actif. Exécutez la commande suivante :
kubectl get pod -n kube-system -l=app=ebs-csi-controllerExemple de sortie :
NAME READY STATUS RESTARTS AGE ebs-csi-controller-5f985b94f4-lk7lv 7/7 Running 0 2m29s ebs-csi-controller-5f985b94f4-m5nn8 7/7 Running 0 2m29s -
Vérifiez les noms des conteneurs. Exécutez la commande suivante :
kubectl get pod -n kube-system ebs-csi-controller-5f985b94f4-lk7lv -o jsonpath='{.spec.containers[*].name}{"\n"}'Exemple de sortie :
ebs-plugin csi-provisioner csi-attacher csi-snapshotter volumemodifier csi-resizer liveness-probe
Modifier le type de volume EBS
-
Examinez l'état actuel du PVC et de PersistentVolume (PV). Exécutez les commandes suivantes :
kubectl get scExemple de sortie :
NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE gp2 kubernetes.io/aws-ebs Delete WaitForFirstConsumer false 6h23mkubectl get pvc ebs-demo-claimExemple de sortie :
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS VOLUMEATTRIBUTESCLASS AGE ebs-demo-claim Bound pvc-10d1d621-22f4-4fb6-a64a-51cdf03a9e30 4Gi RWO gp2 <unset> 18skubectl get pv pvc-10d1d621-22f4-4fb6-a64a-51cdf03a9e30Exemple de sortie :
NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS VOLUMEATTRIBUTESCLASS REASON AGE pvc-10d1d621-22f4-4fb6-a64a-51cdf03a9e30 4Gi RWO Delete Bound default/ebs-demo-claim gp2 <unset> 36s -
Consultez les détails de PV. Exécutez la commande suivante :
kubectl get pv pvc-10d1d621-22f4-4fb6-a64a-51cdf03a9e30 -o yamlExemple de sortie :
apiVersion: v1 kind: PersistentVolume metadata: annotations: pv.kubernetes.io/migrated-to: ebs.csi.aws.com pv.kubernetes.io/provisioned-by: kubernetes.io/aws-ebs ... ... spec: awsElasticBlockStore: fsType: ext4 volumeID: vol-0296e8e6fa4b27670 claimRef: apiVersion: v1 kind: PersistentVolumeClaim name: ebs-demo-claim namespace: default ... persistentVolumeReclaimPolicy: Delete storageClassName: gp2 volumeMode: Filesystem status: phase: Bound ... -
Consultez les détails d’Amazon EBS. Exécutez la commande suivante :
aws ec2 describe-volumes --volume-ids vol-0296e8e6fa4b27670Exemple de sortie :
{ "Volumes": [ { "AvailabilityZone": "us-east-1a", "Size": 4, "State": "in-use", "VolumeId": "vol-0296e8e6fa4b27670", "Iops": 100, "VolumeType": "gp2" ... } ] } -
Ajoutez l'annotation gp3-type. Exécutez la commande suivante :
kubectl annotate pvc ebs-demo-claim ebs.csi.aws.com/volumeType="gp3"Exemple de sortie :
persistentvolumeclaim/ebs-demo-claim annotated -
Vérifiez les annotations. Exécutez les commandes suivantes :
kubectl get pvc ebs-demo-claim -o yamlExemple de sortie :
apiVersion: v1 kind: PersistentVolumeClaim metadata: annotations: ebs.csi.aws.com/volumeType: gp3 ... ... name: ebs-demo-claim namespace: defaultkubectl get pv pvc-10d1d621-22f4-4fb6-a64a-51cdf03a9e30 -o yamlExemple de sortie :
apiVersion: v1 kind: PersistentVolume metadata: annotations: ebs.csi.aws.com/volumeType: gp3 ... spec: awsElasticBlockStore: fsType: ext4 volumeID: vol-0296e8e6fa4b27670 claimRef: apiVersion: v1 kind: PersistentVolumeClaim name: ebs-demo-claim namespace: default ... -
Surveillez la modification. Exécutez la commande suivante :
kubectl describe pvc ebs-demo-claimExemple de sortie :
Name: ebs-demo-claim ... Events: Type Reason Age From Message ---- ------ ---- ---- ------- ... Normal ProvisioningSucceeded 5m20s ebs.csi.aws.com_ebs-csi-controller-676f998966-bh79n_ec5572b3-c1ec-4b3a-838a-d4b21b8c668f Successfully provisioned volume pvc-10d1d621-22f4-4fb6-a64a-51cdf03a9e30 Normal VolumeModificationStarted 64s volume-modifier-for-k8s-ebs.csi.aws.com External modifier is modifying volume pvc-10d1d621-22f4-4fb6-a64a-51cdf03a9e30 Normal VolumeModificationSuccessful 57s volume-modifier-for-k8s-ebs.csi.aws.com -
Vérifiez que le type de volume est passé à gp3. Exécutez la commande suivante :
aws ec2 describe-volumes --volume-ids vol-0296e8e6fa4b27670Exemple de sortie :
{ "Volumes": [ { "AvailabilityZone": "us-east-1a", "Size": 4, "State": "in-use", "VolumeId": "vol-0296e8e6fa4b27670", "Iops": 3000, "VolumeType": "gp3", "Throughput": 125 ... } ] }
Utiliser des instantanés de volume pour migrer des volumes
Le pilote CSI Amazon EBS fournit une fonctionnalité d’instantanés de volume CSI. Vous pouvez utiliser des instantanés pour migrer des volumes persistants de la classe de stockage gp2 « in-tree » vers la classe de stockage CSI gp3 Amazon EBS. Pour plus d'informations, consultez la page Instantanés de volume sur le site Web de GitHub.
Pour utiliser des instantanés de volume, procédez comme suit :
- Installez le pilote CSI Amazon EBS.
- Installez les objets VolumeSnapshotClass, VolumeSnapshotContent et VolumeSnapshot. Pour plus d'informations, consultez les pages snapshotclass.yaml, volume-snapshot-content.yaml et snapshot.yaml sur le site Web de GitHub.
- Utilisez les objets pour créer un nouveau volume persistant gp3-type à partir de l'instantané. Pour plus d'informations, consultez la section Migration de clusters Amazon EKS de volumes EBS gp2 vers gp3.
Informations connexes
- Sujets
- StorageContainers
- Langue
- Français

Contenus pertinents
- demandé il y a 10 mois
- demandé il y a un an
- demandé il y a un an
- demandé il y a 10 mois
- demandé il y a 3 ans
AWS OFFICIELA mis à jour il y a un an