Profili Fargate per pod serverless
Eseguire pod Kubernetes su Fargate senza gestire nodi EC2, configurare i profili Fargate e comprenderne le limitazioni relative ai namespace
Profili Fargate per pod serverless è una lezione Cloud & IT Cert Prep gratuita su CoddyKit. Questa è la lezione 2 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Cloud & IT Cert Prep, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Cloud & IT Cert Prep include 4 lezioni in totale.
Cosa sono i profili Fargate
AWS Fargate per EKS consente di eseguire pod Kubernetes senza effettuare il provisioning o gestire nodi EC2. Invece di occuparsi dei tipi di istanza e dei gruppi di nodi, si definisce un profilo Fargate che indica a EKS quali pod devono essere eseguiti su Fargate, in base al relativo namespace e agli eventuali selettori di etichette. AWS effettua automaticamente il provisioning della quantità di risorse di calcolo appropriata per ogni pod e la rilascia quando il pod viene arrestato.
Configurazione del profilo Fargate
Un profilo Fargate è associato a un cluster EKS e contiene uno o più selettori; ogni selettore specifica un namespace e, facoltativamente, coppie chiave-valore di etichette Kubernetes. Per essere pianificato su Fargate, un pod deve corrispondere ad almeno un selettore. Il profilo specifica anche il ruolo di esecuzione del pod (un ruolo IAM) e le subnet private che Fargate deve utilizzare per avviare i pod.
# Create a Fargate profile for the 'production' namespace
aws eks create-fargate-profile \
--cluster-name my-cluster \
--fargate-profile-name production-profile \
--pod-execution-role-arn arn:aws:iam::111122223333:role/EKSFargatePodExecutionRole \
--subnets subnet-aaa subnet-bbb \
--selectors '[{"namespace":"production"},{"namespace":"staging","labels":{"fargate":"true"}}]'Ruolo di esecuzione del pod
Il ruolo di esecuzione del pod è un ruolo IAM che EKS assume quando Fargate recupera le immagini dei container e invia i log dei pod a CloudWatch. Deve includere la policy gestita da AWS AmazonEKSFargatePodExecutionRolePolicy. Senza questo ruolo, l'avvio dei pod pianificati su Fargate non riuscirà, perché Fargate non può autenticarsi a ECR né scrivere nei CloudWatch Logs.
# Create the pod execution role trust policy
cat fargate-trust-policy.json
# {
# "Version": "2012-10-17",
# "Statement": [{
# "Effect": "Allow",
# "Principal": {"Service": "eks-fargate-pods.amazonaws.com"},
# "Action": "sts:AssumeRole"
# }]
# }
aws iam attach-role-policy \
--role-name EKSFargatePodExecutionRole \
--policy-arn arn:aws:iam::aws:policy/AmazonEKSFargatePodExecutionRolePolicyRestrizioni sui namespace in Fargate
Fargate impone importanti restrizioni sui namespace. Il namespace kube-system non è disponibile per la maggior parte dei profili Fargate, perché vi vengono eseguiti pod di sistema come kube-proxy. Un'eccezione è CoreDNS: AWS offre una procedura guidata per applicare una patch al deployment CoreDNS e rimuovere l'annotazione eks.amazonaws.com/compute-type: ec2, in modo che possa essere eseguito su Fargate. I pod nei namespace esclusi rimarranno non pianificati se non sono disponibili nodi EC2.
# Patch CoreDNS to allow Fargate scheduling
kubectl patch deployment coredns \
-n kube-system \
--type json \
-p '[{"op":"remove","path":"/spec/template/metadata/annotations/eks.amazonaws.com~1compute-type"}]'
# Restart CoreDNS to apply the patch
kubectl rollout restart deployment coredns -n kube-systemDimensionamento delle risorse dei pod Fargate
Fargate assegna le risorse di calcolo in base alle richieste di CPU e memoria definite nella specifica del pod. Arrotonda i valori alla combinazione di vCPU e memoria Fargate supportata immediatamente superiore (ad esempio, da 0,25 vCPU / 0,5 GB fino a 16 vCPU / 120 GB). Il costo viene calcolato solo sulle risorse assegnate, al secondo, per il periodo di esecuzione del pod. Imposti sempre richieste di risorse accurate: richieste inferiori al necessario causano terminazioni per esaurimento della memoria, mentre richieste eccessive aumentano i costi.
# Pod spec with explicit resource requests and limits
apiVersion: v1
kind: Pod
metadata:
name: api-pod
namespace: production
spec:
containers:
- name: api
image: 111122223333.dkr.ecr.us-east-1.amazonaws.com/my-api:latest
resources:
requests:
cpu: '500m'
memory: '1Gi'
limits:
cpu: '1'
memory: '2Gi'Fargate e gruppi di nodi EC2: compromessi
Fargate elimina la gestione dei nodi, ma presenta alcune limitazioni: nessun DaemonSet (poiché non esistono nodi persistenti su cui pianificarli), nessun container privilegiato e supporto limitato per alcuni tipi di storage. I gruppi di nodi EC2 supportano GPU, kernel personalizzati e carichi di lavoro stateful con unità NVMe locali. Un modello comune consiste nell'eseguire i servizi stateless su Fargate e i carichi di lavoro stateful o basati su GPU su gruppi di nodi EC2 dedicati all'interno dello stesso cluster EKS.
Networking Fargate e gruppi di sicurezza
Ogni pod Fargate riceve una propria interfaccia di rete elastica (ENI) e un indirizzo IP privato dalla subnet specificata nel profilo. È quindi possibile applicare un gruppo di sicurezza univoco a ogni pod utilizzando la funzionalità Security Groups for Pods. I pod Fargate supportano tutte le regole standard dei gruppi di sicurezza VPC, offrendo un controllo dettagliato del traffico in entrata e in uscita a livello del singolo pod, un vantaggio significativo in termini di sicurezza rispetto ai gruppi di sicurezza condivisi a livello di nodo.
# Assign a security group to a pod via annotation
apiVersion: v1
kind: Pod
metadata:
name: secure-api
namespace: production
annotations:
vpc.amazonaws.com/pod-eni: 'true'
spec:
securityGroups:
groupIds:
- sg-0abc1234def56789a
containers:
- name: api
image: 111122223333.dkr.ecr.us-east-1.amazonaws.com/secure-api:v2Logging Fargate in CloudWatch
I pod Fargate inviano i log ad Amazon CloudWatch Logs utilizzando il router di log Fluent Bit integrato. Il logging si configura creando una ConfigMap denominata aws-logging nel namespace aws-observability. Il ruolo di esecuzione del pod deve disporre dell'autorizzazione per creare gruppi di log e scrivere eventi di log. I log vengono organizzati in gruppi di log CloudWatch per cluster e namespace, semplificando l'aggregazione centralizzata dei log senza dover eseguire un agente di log separato.
# ConfigMap to enable Fargate logging
apiVersion: v1
kind: ConfigMap
metadata:
name: aws-logging
namespace: aws-observability
data:
flb_log_cw: 'true'
output.conf: |
[OUTPUT]
Name cloudwatch_logs
Match *
region us-east-1
log_group_name /aws/eks/my-cluster/fargate
log_stream_prefix fargate-
auto_create_group trueHorizontal Pod Autoscaler su Fargate
Fargate supporta il Horizontal Pod Autoscaler (HPA) di Kubernetes. Quando HPA aumenta il numero di repliche, Fargate effettua automaticamente il provisioning di nuove micro-VM, senza che sia necessario modificare le dimensioni dei gruppi di nodi. Si ottiene così un'esperienza di autoscaling realmente serverless: HPA controlla il numero di pod e Fargate gestisce elasticamente le risorse di calcolo. È comunque necessario che nel cluster sia distribuito il Metrics Server, affinché HPA possa leggere l'utilizzo di CPU e memoria.
# Deploy Metrics Server (required for HPA)
kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml
# Create an HPA for a Fargate-scheduled deployment
kubectl autoscale deployment my-api \
--namespace production \
--cpu-percent=60 \
--min=2 \
--max=20Modello di tariffazione Fargate
Fargate viene addebitato in base ai secondi-vCPU e ai secondi-GB consumati, con un minimo di 1 minuto per pod. Non sono previsti costi a livello di nodo, addebiti per capacità riservata né costi per l'applicazione di patch ad AMI o sistemi operativi. In genere, Fargate è più costoso per unità di calcolo rispetto alle istanze EC2 on demand correttamente dimensionate, ma il costo totale di proprietà è spesso inferiore se si considera il tempo degli ingegneri risparmiato nella gestione dei nodi, nell'applicazione delle patch e nelle decisioni di dimensionamento.
Principali limitazioni di Fargate da conoscere
Limitazioni importanti di Fargate per l'esame SAA-C03: nessun supporto per DaemonSet (i pod non possono essere posizionati su ogni nodo perché non esistono nodi persistenti), nessun container privilegiato, modalità hostNetwork non supportata e storage effimero limitato a 20 GB per pod (espandibile a 200 GB tramite una configurazione). Lo storage a blocchi persistente con EBS non è supportato: utilizzi EFS per lo storage di file persistente condiviso con i pod Fargate.
# Mount EFS in a Fargate pod (EBS is NOT supported on Fargate)
apiVersion: v1
kind: Pod
metadata:
name: efs-pod
namespace: production
spec:
volumes:
- name: efs-storage
persistentVolumeClaim:
claimName: efs-pvc
containers:
- name: app
image: my-image:latest
volumeMounts:
- name: efs-storage
mountPath: /dataVerifica rapida
Verifichi la Sua comprensione dei concetti AWS Solutions Architect (SAA-C03) trattati in questa lezione.
Riepilogo della lezione
In questa lezione ha imparato che: i profili Fargate utilizzano selettori di namespace ed etichette per pianificare i pod in modalità serverless, il ruolo di esecuzione del pod concede a Fargate l'autorizzazione per recuperare le immagini e scrivere i log, e Fargate non supporta DaemonSet né EBS; utilizzi EFS per lo storage persistente. Ora esamineremo il networking EKS con il plugin VPC CNI e AWS Load Balancer Controller.
Impara Cloud & IT Cert Prep con un tutor IA — gratis
Scrivi ed esegui vero codice nel tuo browser, ricevi aiuto istantaneo da un tutor IA disponibile 24/7, e riprendi da dove hai lasciato sul web o nell'app.
- Corsi
- 150
- Lezioni
- 600
Domande Frequenti
La lezione «Profili Fargate per pod serverless» è gratuita?
Sì — il testo completo di «Profili Fargate per pod serverless» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Cloud & IT Cert Prep, passa a CoddyKit PRO. Il corso Cloud & IT Cert Prep include 4 lezioni in totale.
Cosa imparerò in «Profili Fargate per pod serverless»?
Eseguire pod Kubernetes su Fargate senza gestire nodi EC2, configurare i profili Fargate e comprenderne le limitazioni relative ai namespace Eserciti Cloud & IT Cert Prep con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare Cloud & IT Cert Prep?
Non è richiesta alcuna esperienza precedente. Cloud & IT Cert Prep su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 2 di 4.
Quanto tempo richiede la lezione «Profili Fargate per pod serverless»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione Cloud & IT Cert Prep?
Sì. Ogni lezione Cloud & IT Cert Prep include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Piano di controllo e nodi di lavoro EKS
- Profili Fargate per pod serverless
- Networking EKS: VPC CNI e bilanciamento del carico
- Ruoli IAM per gli account di servizio (IRSA)