View a markdown version of this page

Stockage d'instances Amazon EC2 pour le stockage en volume Kubernetes - Amazon EKS

Aidez à améliorer cette page

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Pour contribuer à ce guide de l'utilisateur, cliquez sur le GitHub lien Modifier cette page sur qui se trouve dans le volet droit de chaque page.

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Stockage d'instances Amazon EC2 pour le stockage en volume Kubernetes

Le pilote CSI Amazon EC2 Instance Store est un plugin d'interface de stockage de conteneurs (CSI) qui permet à Kubernetes d'utiliser les volumes de stockage d'instance EC2. Les volumes de stockage d'instance fournissent un stockage éphémère au niveau des blocs connecté physiquement à l'ordinateur hôte. Le pilote gère le cycle de vie de ces volumes de stockage NVMe et les rend disponibles en tant que volumes persistants Kubernetes.

Le pilote CSI Amazon EC2 Instance Store interagit avec les périphériques NVMe principaux via des opérations Linux locales. Aucun appel AWS d'API n'est impliqué, aucun rôle IAM n'est donc requis.

Considérations

Important

Le pilote CSI Amazon EC2 Instance Store efface toutes les données des disques éphémères lors de l'installation. Si un autre pilote CSI ou un autre système de gestion de volumes (tel que LVM, systèmes de fichiers bruts, LUKS, etc.) gère des disques éphémères, sauvegardez vos données avant d'installer le pilote CSI Amazon EC2 Instance Store pour éviter toute perte de données.

  • Le pilote CSI Amazon EC2 Instance Store ne fonctionne pas avec le mode automatique EKS.

  • Vous ne pouvez pas monter de volumes de stockage d'instance Amazon EC2 sur des Fargate Pods.

  • Le pilote CSI Amazon EC2 Instance Store n'est pas disponible pour les types d'instances suivants : C1, C3, C4, C5d, C5ad, C6gd, D2, D3, D3en, DL1, E3, Edge1gd, F1, G2, G3, G4ad, G4dn, H1, HSM1, I2, I3, i3en, M1, M2, M3, M4, M5d, M5ad, M5dn, M6gd, P2, P3, P3dn, P4d, P4de, R3, R4 I3.metal, R5d, R5ad, R5dn, R6gd, T1, T2, X1e, X2gD et Z1d.

  • Support est fourni pour la dernière version du module complémentaire et une version précédente. Les correctifs de bogues ou de vulnérabilités découverts dans la dernière version seront rétroportés vers la version précédente en tant que nouvelle version mineure.

  • Le stockage des instances est éphémère. Les données sont perdues lorsque le nœud se termine. Mettez en œuvre une réplication ou des sauvegardes au niveau de l'application pour les données critiques.

  • L'extension de volume n'est pas prise en charge.

  • I/O la régulation est activée par défaut pour tous les volumes afin de garantir un partage équitable de la bande passante entre les charges de travail. Pour de plus amples informations, veuillez consulter I/O étranglement.

  • Les instances récemment lancées ont mis à jour les réponses aux commandes d'identification NVMe par rapport aux anciennes instances du même type. Si votre outillage dépend de valeurs d'identification NVMe spécifiques, vérifiez la compatibilité de votre logique. Pour de plus amples informations, veuillez consulter Modifications de l'espace de noms NVMe sur les instances récemment lancées.

Conditions préalables

Avant de commencer, assurez-vous de disposer des éléments suivants :

  • Un cluster Amazon EKS existant. Pour voir toutes les versions disponibles du module complémentaire, exécutez la commande AWS CLI suivante :

    aws eks describe-addon-versions --addon-name aws-ec2-local-instance-store-csi-driver

Installation du pilote CSI Amazon EC2 Instance Store

Le pilote CSI Amazon EC2 Instance Store est disponible en tant que module complémentaire Amazon EKS. L'installation du pilote permet à votre cluster d'utiliser des volumes de stockage d'instance pour le stockage des pods.

Pour installer le pilote, ajoutez le module complémentaire de pilote Amazon EC2 Instance Store CSI à votre cluster. Pour obtenir des instructions, consultez Création d'un module complémentaire Amazon EKS. Pour plus d'informations sur les modules complémentaires EKS, consultez les modules complémentaires Amazon EKS.

Déploiement d'un exemple d'application

Après avoir installé le pilote, vous pouvez déployer des exemples d'applications pour vérifier que les volumes de stockage d'instance fonctionnent correctement avec votre cluster. Vous pouvez déployer une variété d'applications types et les modifier selon vos besoins.

I/O étranglement

Le pilote CSI Amazon EC2 Instance Store inclut une régulation intégrée pour garantir un partage équitable I/O de la bande passante entre les charges de travail sur le même contrôleur NVMe. La régulation est activée par défaut pour tous les volumes, empêchant ainsi une charge de travail individuelle de consommer une I/O bande passante disproportionnée au détriment des autres charges de travail sur le même nœud.

Configuration de la régulation

Vous pouvez configurer la régulation à deux niveaux :

  • StorageClass paramètre — Définissez le throttling paramètre sur "true" (par défaut) ou "false" dans votre StorageClass définition.

  • Annotation PVC : définissez l'lis.csi.aws.com/throttlingannotation "false" sur "true" ou sur une note individuelle PersistentVolumeClaims. Cela remplace le StorageClass paramètre lorsqu'il est présent.

Le tableau suivant montre comment le StorageClass paramètre et l'annotation PVC interagissent :

Annotation sur PVC StorageClass Paramètre Résultat

Non défini

Non défini

Régulation activée (par défaut)

Non défini

"false"

Régulation désactivée

"false"

"true"ou non défini

Régulation désactivée

"true"

"false"

Régulation activée

Créer un Unthrottled StorageClass

Pour désactiver la régulation pour tous les volumes d'un : StorageClass

apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: ec2-instance-store-unthrottled provisioner: lis.csi.aws.com parameters: throttling: "false" volumeBindingMode: WaitForFirstConsumer

Désactivation de la régulation pour un seul PVC

Pour désactiver la régulation sur un PC individuel lors de l'utilisation d'un accélérateur : StorageClass

apiVersion: v1 kind: PersistentVolumeClaim metadata: name: high-perf-pvc annotations: lis.csi.aws.com/throttling: "false" spec: accessModes: - ReadWriteOnce storageClassName: ec2-instance-store-sc resources: requests: storage: 100Gi

Considérations relatives à l'étranglement

  • La régulation est activée par défaut pour fournir des performances prévisibles pour toutes les charges de travail partageant un contrôleur NVMe.

  • La désactivation de la régulation sur un volume lui permet de consommer davantage de I/O bande passante, ce qui peut avoir un impact sur les performances des autres volumes limités sur le même contrôleur.

  • Envisagez d'isoler les charges de travail illimitées sur des nœuds dédiés.

  • Pour les RAID-0 volumes qui s'étendent sur plusieurs contrôleurs, la régulation est appliquée à toutes les partitions membres.

  • L'état de l'accélérateur persiste après le redémarrage du nœud.

Modifications de l'espace de noms NVMe sur les instances récemment lancées

Les instances EC2 récemment lancées avec stockage d'instance local ont mis à jour les réponses aux commandes NVMe Identify Controller et Identify Namespace. Ces modifications prennent en charge la gestion de l'espace de noms NVMe sur le stockage d'instance local EC2. Les instances en cours d'exécution existantes ne sont pas affectées et les valeurs restent stables tout au long du cycle de vie de chaque instance.

Valeurs de champ mises à jour

Les champs suivants ont changé sur les instances récemment lancées par rapport aux anciennes instances du même type :

Identifier le contrôleur (nvme id-ctrl)
  • Bit 3 d'OACS : passé de 0 à 1

  • Bit 8 d'OAES : passé de 0 à 1

  • NN : passé de 1 à une valeur <= 256

  • TNVMCAP : passe de 0 à la taille réelle du stockage local

Identifier l'espace de noms () nvme id-ns
  • NVMCAP : passe de 0 à la taille réelle du stockage local

  • NGUID : passé de tous les zéros à un NGUID valide

Toutes les valeurs mises à jour sont conformes à la spécification NVMe.

Portée des modifications

Ces modifications s'appliquent exclusivement au stockage d'instance local EC2. Les volumes Amazon EBS ne sont pas affectés. Pour faire la distinction entre les volumes EBS et le stockage d'instance local, exécutez la commande suivante :

sudo nvme list

Dans la sortie :

  • Amazon Elastic Block Store= Volume EBS

  • Amazon EC2 NVMe Instance Storage= stockage d'instance local

Récupération des valeurs d'identification NVMe

Pour interroger ces valeurs à l'aide de nvme-cli :

# Identify Controller sudo nvme id-ctrl /dev/nvme1 # Identify Namespace sudo nvme id-ns /dev/nvme1n1

Action requise

Aucune action n’est requise. Ces modifications sont rétrocompatibles et respectent les spécifications NVMe. Toutefois, si votre application ou votre outillage valide ou dépend de valeurs spécifiques issues des commandes d'identification NVMe, revoyez votre logique pour garantir la compatibilité avec les valeurs mises à jour sur les instances récemment lancées.