Configurazione dei Pod Fargate - Amazon EKS

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à.

Configurazione dei Pod Fargate

Importante

AWS Fargatecon Amazon EKS non è disponibile negli AWS GovCloud Stati Uniti orientali e AWS GovCloud negli Stati Uniti occidentali.

In questa sezione sono descritti alcuni dettagli di configurazione dei Pod univoci per l'esecuzione dei pod Kubernetes Pods su AWS Fargate.

Pod CPU e memoria

Con Kubernetes, è possibile definire le richieste, una quantità minima di vCPU e le risorse di memoria allocate a ciascun container in unPod.Podssono programmati da Kubernetes per garantire che almeno le risorse richieste per ciascun Pod siano disponibili nella risorsa di calcolo. Per ulteriori informazioni, consulta Gestione delle risorse di calcolo per i container nella documentazione di Kubernetes.

Nota

Poiché Amazon EKS Fargate esegue solo un Pod per nodo, lo scenario di espulsione dei Pods in caso di meno risorse non si verifica. Tutti i Pods Fargate di Amazon EKS funzionano con priorità garantita, quindi la CPU e la memoria richieste devono essere uguali al limite per tutti i container. Per ulteriori informazioni, consulta Configure Quality of Service for PodsPods (Configurare la qualità di servizio per i pod) nella documentazione di Kubernetes.

Quando i Pods sono programmati su Fargate, le prenotazioni di vCPU e memoria all'interno della specifica del Pod determinano la quantità di CPU e memoria per effettuare il provisioning per il Pod.

  • La richiesta massima di qualsiasi container Init viene utilizzata per determinare i requisiti di memoria e vCPU della richiesta Init.

  • Le richieste per tutti i container con esecuzione prolungata vengono aggiunte per determinare i requisiti di memoria e vCPU della richiesta con esecuzione prolungata.

  • Il valore maggiore tra i due valori sopra indicati viene scelto per la richiesta di vCPU e memoria da utilizzare per il Pod.

  • Fargate aggiunge 256 MB alla prenotazione di memoria di ogni Pod per i componenti Kubernetes richiesti (kubelet, kube-proxy e containerd).

Fargate arrotonda alla configurazione di calcolo mostrata di seguito che corrisponde più strettamente alla somma delle richieste di vCPU e di memoria, al fine di garantire ai Pods sempre le risorse necessarie per la loro esecuzione.

Se non si specifica una combinazione di vCPU e memoria, viene utilizzata la combinazione più piccola disponibile (.25 vCPU e 0,5 GB di memoria).

La tabella seguente mostra le combinazioni di vCPU e memoria disponibili per i Pods in esecuzione su Fargate.

Valore vCPU

Valore memoria

.25 vCPU

0,5 GB, 1 GB, 2 GB

.5 vCPU

1 GB, 2 GB, 3 GB, 4 GB

1 vCPU

2 GB, 3 GB, 4 GB, 5 GB, 6 GB, 7 GB, 8 GB

2 vCPU

Tra 4 GB e 16 GB in incrementi di 1 GB

4 vCPU

Tra 8 GB e 30 GB in incrementi di 1 GB

8 vCPU

Tra 16 GB e 60 GB in incrementi di 4 GB

16 vCPU

Tra 32 GB e 120 GB in incrementi di 8 GB

La memoria aggiuntiva riservata ai componenti Kubernetes può causare un'attività Fargate con più vCPUs di quelle richieste per il provisioning. Ad esempio, una richiesta per 1 vCPU e 8 GB di memoria avrà 256 MB aggiunti alla richiesta di memoria e fornirà un'attività Fargate di 2 vCPU e 9 GB di memoria, in quanto non è disponibile alcuna attività con 1 vCPU e 9 GB di memoria.

Non vi è alcuna correlazione tra la dimensione del Pod in esecuzione su Fargate e la dimensione del nodo riportata da Kubernetes con kubectl get nodes. La dimensione del nodo riportata è spesso maggiore della capacità del Pod. È possibile verificare la capacità del Pod utilizzando il comando seguente. Sostituisci default con il nome del Pod e pod-name con il nome dello spazio dei nomi di Pod.

kubectl describe pod --namespace default pod-name

Di seguito viene riportato un output di esempio:

[...]
annotations:
    CapacityProvisioned: 0.25vCPU 0.5GB
[...]

L'annotazione CapacityProvisioned rappresenta la capacità del Pod applicata e determina il costo del Pod in esecuzione su Fargate. Per informazioni sui prezzi di queste configurazioni di calcolo, consulta Prezzi di AWS Fargate.

Archiviazione in Fargate

Un Pod  in esecuzione su Fargate monta automaticamente un file system Amazon EFS. Non è possibile utilizzare il provisioning dinamico dei volumi persistenti con nodi Fargate, ma è possibile utilizzare il provisioning statico. Per ulteriori informazioni, consulta Amazon EFS CSI Driver on GitHub.

Una volta fornito, ciascun Pod in esecuzione su Fargate riceve uno storage temporaneo predefinito di 20 GiB. Questo tipo di archiviazione viene eliminato dopo che un Pod si ferma. Per i nuovi Pods avviati su Fargate, la crittografia del volume di archiviazione temporanea è abilitata per impostazione predefinita. L'archiviazione temporanea dei Pod viene crittografata con un algoritmo di crittografia AES-256 utilizzando chiavi gestite da AWS Fargate.

Nota

Lo storage utilizzabile predefinito per Amazon EKSPods che funzionano su Fargate sono inferiori a 20 GiB. Questo perché parte dello spazio viene utilizzato dakubelet e altri moduli Kubernetes che vengono caricati all'interno di Pod.

Puoi aumentare la quantità totale di storage temporaneo fino a un massimo di 175 GiB. Per configurare la dimensione con Kubernetes, specificare le richieste della risorsa ephemeral-storage per ogni container in un Pod. Quando Kubernetes pianifica Pods, garantisce che la somma delle richieste di risorse per ciascun Pod sia inferiore alla capacità del task Fargate. Per ulteriori informazioni, consulta Gestione delle risorse per pod e containerPods nella  documentazione di Kubernetes.

Amazon EKS Fargate fornisce un maggiore spazio di archiviazione temporaneo di quello richiesto ai fini dell'utilizzo del sistema. Ad esempio, una richiesta di 100 GiB fornirà un'attività Fargate con 115 GiB di storage temporaneo.