Contribuisci a migliorare questa pagina
Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Per contribuire a questa guida per l'utente, scegli il GitHub link Modifica questa pagina nel riquadro destro di ogni pagina.
Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Instance Store Amazon EC2 per lo storage di volumi Kubernetes
Il driver CSI di Amazon EC2 Instance Store è un plug-in CSI (Container Storage Interface) che consente a Kubernetes di utilizzare i volumi di instance store EC2. I volumi di Instance Store forniscono uno storage temporaneo a livello di blocco collegato fisicamente al computer host. Il driver gestisce il ciclo di vita di questi volumi di storage NVMe e li rende disponibili come volumi persistenti Kubernetes.
Il driver CSI di Amazon EC2 Instance Store interagisce con i dispositivi NVMe di backend tramite operazioni Linux locali. Non sono coinvolte chiamate AWS API, quindi non è richiesto alcun ruolo IAM.
Considerazioni
Importante
Il driver CSI di Amazon EC2 Instance Store cancellerà tutti i dati sui dischi temporanei durante l'installazione. Se un altro driver CSI o un altro sistema di gestione dei volumi (come LVM, file system raw, LUKS, ecc.) gestisce dischi temporanei, esegui il backup dei dati prima di installare il driver CSI di Amazon EC2 Instance Store per evitare la perdita di dati.
-
Il driver CSI di Amazon EC2 Instance Store non funziona con EKS Auto Mode.
-
Non puoi montare volumi di istanze Amazon EC2 su Fargate Pods.
-
Il driver CSI di Amazon EC2 Instance Store non è disponibile per i seguenti tipi di istanza: 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, R5d, R5ad, R5dn, R6gd, T1, T2, X1 I3.metal, X1e, X2gd e Z1d e Z1d e Z1d e Z1d e Z1d e Z1d D.
-
Il supporto è fornito per l'ultima versione del componente aggiuntivo e una versione precedente. Le correzioni di bug o vulnerabilità rilevate nell'ultima versione verranno riportate alla versione precedente come nuova versione secondaria.
-
L'archiviazione delle istanze è effimera. I dati vengono persi quando il nodo termina. Implementa la replica o il backup a livello di applicazione per i dati critici.
-
L'espansione del volume non è supportata.
-
I/O La limitazione è abilitata per impostazione predefinita per tutti i volumi per garantire un'equa condivisione della larghezza di banda tra i carichi di lavoro. Per ulteriori informazioni, consulta I/O strozzamento.
-
Le istanze appena lanciate hanno aggiornato le risposte ai comandi di identificazione di NVMe rispetto alle istanze precedenti dello stesso tipo. Se i tuoi strumenti dipendono da valori di identificazione NVMe specifici, esamina la tua logica per verificarne la compatibilità. Per ulteriori informazioni, consulta Modifiche allo spazio dei nomi NVMe sulle istanze appena lanciate.
Prerequisiti
Prima di iniziare, assicurati di disporre di:
-
Un cluster Amazon EKS esistente. Per visualizzare tutte le versioni disponibili del componente aggiuntivo, esegui il seguente comando AWS CLI:
aws eks describe-addon-versions --addon-name aws-ec2-local-instance-store-csi-driver
Installazione del driver CSI di Amazon EC2 Instance Store
Il driver CSI di Amazon EC2 Instance Store è disponibile come componente aggiuntivo Amazon EKS. L'installazione del driver consente al cluster di utilizzare i volumi di Instance Store per lo storage su pod.
Per installare il driver, aggiungi il driver aggiuntivo Amazon EC2 Instance Store CSI al cluster. Per istruzioni, consulta Creazione di un componente aggiuntivo Amazon EKS. Per ulteriori informazioni sui componenti aggiuntivi EKS, consulta i componenti aggiuntivi di Amazon EKS.
Implementazione di un'applicazione di esempio
Dopo aver installato il driver, puoi distribuire applicazioni di esempio per verificare che i volumi di Instance Store funzionino correttamente con il tuo cluster. Puoi implementare diverse app di esempio e modificarle in base alle tue esigenze.
I/O strozzamento
Il driver CSI di Amazon EC2 Instance Store include la I/O limitazione integrata per garantire una condivisione equa della larghezza di banda tra i carichi di lavoro sullo stesso controller NVMe. Il throttling è abilitato di default per tutti i volumi, evitando che un singolo carico di lavoro consumi una larghezza di banda sproporzionata I/O a scapito di altri carichi di lavoro sullo stesso nodo.
Configurazione della limitazione
È possibile configurare la limitazione a due livelli:
-
StorageClass parametro: imposta il
throttlingparametro su"true"(impostazione predefinita) o"false"nella StorageClass definizione. -
Annotazione PVC: imposta l'
lis.csi.aws.com/throttlingannotazione"false"su"true"o singolarmente. PersistentVolumeClaims Questa impostazione ha la precedenza sull'impostazione quando presente. StorageClass
La tabella seguente mostra come interagiscono il StorageClass parametro e l'annotazione PVC:
| Annotazione PVC | StorageClass Parametro | Risultato |
|---|---|---|
|
Non impostato |
Non impostato |
Limitazione attivata (impostazione predefinita) |
|
Non impostato |
|
Limitazione disattivata |
|
|
|
Throttling disabilitato |
|
|
|
Throttling abilitato |
Creazione di un sistema senza limitazioni StorageClass
Per disabilitare la limitazione per tutti i volumi in 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
Disattivazione della limitazione per un singolo PVC
Per disabilitare la limitazione su un singolo PC mentre si utilizza un limitatore: 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
Considerazioni sulla limitazione
-
Il throttling è abilitato di default per fornire prestazioni prevedibili per tutti i carichi di lavoro che condividono un controller NVMe.
-
La disabilitazione della limitazione su un volume consente di utilizzare una maggiore I/O larghezza di banda, il che può influire sulle prestazioni di altri volumi limitati sullo stesso controller.
-
Valuta la possibilità di isolare i carichi di lavoro senza limitazioni su nodi dedicati.
-
Per i RAID-0 volumi che si estendono su più controller, la limitazione viene applicata a tutte le partizioni membri.
-
Lo stato di limitazione persiste anche dopo i riavvii dei nodi.
Modifiche allo spazio dei nomi NVMe sulle istanze appena lanciate
Le istanze EC2 appena lanciate con archiviazione locale hanno aggiornato le risposte ai comandi NVMe Identify Controller e Identify Namespace. Queste modifiche supportano la gestione dello spazio dei nomi NVMe sullo storage delle istanze locali EC2. Le istanze in esecuzione esistenti non vengono influenzate e i valori rimangono stabili per tutto il ciclo di vita di qualsiasi istanza.
Valori dei campi aggiornati
I seguenti campi sono stati modificati sulle istanze appena lanciate rispetto alle istanze precedenti dello stesso tipo:
Identifica Controller () nvme id-ctrl
-
Bit 3 di OACS: cambiato da 0 a 1
-
Bit 8 di OAES: cambiato da 0 a 1
-
NN: cambiato da 1 a un valore <= 256
-
TNVMCAP: cambiato da 0 alla dimensione effettiva della memoria locale
Identifica lo spazio dei nomi () nvme id-ns
-
NVMCAP: cambiato da 0 alla dimensione effettiva dello storage locale
-
NGUID: cambiato da zero a un NGUID valido
Tutti i valori aggiornati sono conformi alla specifica NVMe.
Ambito delle modifiche
Queste modifiche si applicano esclusivamente allo storage delle istanze locali EC2. I volumi Amazon EBS non sono interessati. Per distinguere tra volumi EBS e storage a istanze locali, esegui il seguente comando:
sudo nvme list
Nell'output:
-
Amazon Elastic Block Store= volume EBS -
Amazon EC2 NVMe Instance Storage= archiviazione locale dell'istanza
Recupero dei valori identificativi NVMe
Per interrogare questi valori utilizzando: nvme-cli
# Identify Controller sudo nvme id-ctrl /dev/nvme1 # Identify Namespace sudo nvme id-ns /dev/nvme1n1
Operazione richiesta
Nessuna operazione richiesta. Queste modifiche sono compatibili con le versioni precedenti e seguono le specifiche NVMe. Tuttavia, se l'applicazione o lo strumento sono convalidati o dipendono da valori specifici dei comandi di identificazione NVMe, rivedi la logica per garantire la compatibilità con i valori aggiornati sulle istanze appena lanciate.