AWS Solutions Architect · Les

Fargate-profielen voor serverloze pods

Voer Kubernetes-pods uit op Fargate zonder EC2-knooppunten te beheren, configureer Fargate-profielen en begrijp hun beperkingen voor namespaces.

Les 2 van 413 stappen

Fargate-profielen voor serverloze pods is een gratis AWS Solutions Architect-les op CoddyKit. Dit is les 2 van 4. Je kunt 3 lessen uit dit leerpad gratis volledig lezen — daarna ontgrendelt CoddyKit PRO alle lessen, plus praktische oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject AWS Solutions Architect. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus AWS Solutions Architect bevat in totaal 4 lessen.

Wat zijn Fargate-profielen?

Met AWS Fargate voor EKS kun je Kubernetes-pods uitvoeren zonder EC2-nodes te provisionen of beheren. In plaats van na te denken over instantietypen en nodegroepen, definieer je een Fargate-profiel dat aangeeft welke pods op Fargate moeten worden uitgevoerd op basis van hun namespace en optionele labelselectoren. AWS provisiont automatisch de juiste hoeveelheid rekenkracht voor elke pod en beëindigt deze wanneer de pod stopt.

Configuratie van Fargate-profielen

Een Fargate-profiel is gekoppeld aan een EKS-cluster en bevat een of meer selectoren — elke selector specificeert een namespace en optionele Kubernetes-labelsleutel-waardeparen. Een pod moet overeenkomen met ten minste één selector om op Fargate te worden gepland. Het profiel specificeert ook de uitvoeringsrol voor pods (een IAM-rol) en de private subnetten die Fargate moet gebruiken om pods te starten.

# 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"}}]'

Uitvoeringsrol voor pods

De uitvoeringsrol voor pods is een IAM-rol die EKS overneemt wanneer Fargate containerimages ophaalt en podlogboeken naar CloudWatch verstuurt. De rol moet het door AWS beheerde beleid AmazonEKSFargatePodExecutionRolePolicy bevatten. Zonder deze rol kunnen pods die op Fargate zijn gepland niet starten, omdat Fargate zich niet kan authenticeren bij ECR of naar CloudWatch Logs kan schrijven.

# 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/AmazonEKSFargatePodExecutionRolePolicy

Namespacebeperkingen voor Fargate

Fargate kent belangrijke namespacebeperkingen. De namespace kube-system is voor de meeste Fargate-profielen niet toegestaan, omdat systeem-pods zoals kube-proxy daar worden uitgevoerd. CoreDNS vormt een uitzondering: AWS biedt een begeleid proces om de CoreDNS-deployment aan te passen en de annotatie eks.amazonaws.com/compute-type: ec2 te verwijderen, zodat deze op Fargate kan worden uitgevoerd. Pods in uitgesloten namespaces blijven ongepland als er geen EC2-nodes beschikbaar zijn.

# 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-system

Resources voor Fargate-pods bepalen

Fargate wijst rekenresources toe op basis van de CPU- en geheugenaanvragen die in de pod-specificatie zijn gedefinieerd. De waarden worden naar boven afgerond op de dichtstbijzijnde door Fargate ondersteunde combinatie van vCPU en geheugen (bijvoorbeeld 0,25 vCPU / 0,5 GB tot 16 vCPU / 120 GB). Je betaalt alleen voor de toegewezen resources per seconde dat de pod actief is. Stel resourceaanvragen altijd nauwkeurig in — te lage aanvragen leiden tot beëindiging wegens onvoldoende geheugen; te hoge aanvragen verhogen de kosten.

# 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 versus EC2-nodegroepen: afwegingen

Fargate maakt nodebeheer overbodig, maar kent beperkingen: geen daemonsets (omdat er geen permanente nodes zijn waarop ze kunnen worden gepland), geen geprivilegieerde containers en beperkte ondersteuning voor bepaalde opslagtypen. EC2-nodegroepen ondersteunen GPU's, aangepaste kernels en stateful workloads met lokale NVMe-schijven. Een veelgebruikt patroon is om stateless services op Fargate uit te voeren en stateful of GPU-workloads op speciale EC2-nodegroepen binnen hetzelfde EKS-cluster.

Fargate-netwerken en beveiligingsgroepen

Elke Fargate-pod krijgt een eigen elastische netwerkinterface (ENI) en een privé-IP-adres uit het subnet dat je in het profiel hebt opgegeven. Daardoor kun je met de functie Security Groups for Pods een unieke beveiligingsgroep op elke pod toepassen. Fargate-pods ondersteunen alle standaardregels voor VPC-beveiligingsgroepen, waardoor je inkomend en uitgaand verkeer op het niveau van afzonderlijke pods nauwkeurig kunt beheren — een belangrijk beveiligingsvoordeel ten opzichte van gedeelde beveiligingsgroepen op nodeniveau.

# 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:v2

Logboeken van Fargate naar CloudWatch

Fargate-pods sturen logboeken naar Amazon CloudWatch Logs met de ingebouwde Fluent Bit-logrouter. Je configureert logging door een ConfigMap met de naam aws-logging te maken in de namespace aws-observability. De uitvoeringsrol voor pods moet toestemming hebben om loggroepen te maken en loggebeurtenissen te schrijven. Logboeken worden per cluster en namespace georganiseerd in CloudWatch-loggroepen, waardoor centrale verzameling van logboeken eenvoudig is zonder een afzonderlijke logagent uit te voeren.

# 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 true

Horizontal Pod Autoscaler op Fargate

Fargate ondersteunt de Kubernetes-Horizontal Pod Autoscaler (HPA). Wanneer HPA het aantal replica's verhoogt, provisiont Fargate automatisch nieuwe micro-VM's zonder dat je de grootte van een nodegroep hoeft aan te passen. Zo ontstaat een echt serverloos systeem voor automatisch schalen: HPA bepaalt het aantal pods en Fargate handelt de rekenkracht elastisch af. Je moet de Metrics Server nog wel in het cluster implementeren, zodat HPA het CPU- en geheugengebruik kan uitlezen.

# 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=20

Prijsmodel van Fargate

Je betaalt voor Fargate op basis van het verbruikte aantal vCPU-seconden en GB-seconden, met een minimum van 1 minuut per pod. Er zijn geen kosten op nodeniveau, kosten voor gereserveerde capaciteit of kosten voor het patchen van AMI's en besturingssystemen. Fargate is doorgaans duurder per rekeneenheid dan EC2-on-demand-instanties met de juiste grootte, maar de totale eigendomskosten zijn vaak lager wanneer je de bespaarde engineeringtijd voor nodebeheer, patchen en beslissingen over schalen meerekent.

Veelvoorkomende Fargate-beperkingen

Belangrijke Fargate-beperkingen voor het SAA-C03-examen: geen ondersteuning voor DaemonSet (pods kunnen niet op elke node worden geplaatst omdat er geen permanente nodes zijn), geen geprivilegieerde containers, geen hostNetwork-modus en tijdelijke opslag die is beperkt tot 20 GB per pod (uitbreidbaar tot 200 GB met een configuratie). Permanente blokopslag met EBS wordt niet ondersteund — gebruik EFS voor gedeelde permanente bestandsopslag met Fargate-pods.

# 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: /data

Korte controle

Toets je begrip van de AWS Solutions Architect-concepten (SAA-C03) uit deze les.

Samenvatting van de les

In deze les heb je geleerd: Fargate-profielen gebruiken namespace- en labelselectoren om pods serverloos te plannen, de uitvoeringsrol voor pods geeft Fargate toestemming om images op te halen en logboeken te schrijven, en Fargate ondersteunt DaemonSets of EBS niet — gebruik EFS voor permanente opslag. Hierna bekijken we EKS-netwerken met de VPC CNI-plugin en de AWS Load Balancer Controller.

Gratis beginnen

Leer AWS Solutions Architect met een AI-tutor — gratis

Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.

Cursussen
30
Lessen
120

Veelgestelde vragen

Is de les “Fargate-profielen voor serverloze pods” gratis?

Ja — je kunt hier op het web alle 3 lessen van het leerpad AWS Solutions Architect, waaronder “Fargate-profielen voor serverloze pods”, gratis volledig lezen. Daarna ontgrendelt CoddyKit PRO alle lessen, plus interactieve oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. De cursus AWS Solutions Architect bevat in totaal 4 lessen.

Wat leer ik in “Fargate-profielen voor serverloze pods”?

Voer Kubernetes-pods uit op Fargate zonder EC2-knooppunten te beheren, configureer Fargate-profielen en begrijp hun beperkingen voor namespaces. Je oefent met AWS Solutions Architect door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.

Heb ik ervaring nodig om met AWS Solutions Architect te beginnen?

Ervaring vooraf is niet nodig. AWS Solutions Architect op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 2 van 4.

Hoe lang duurt de les “Fargate-profielen voor serverloze pods”?

De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.

Kan ik code schrijven en uitvoeren in deze les over AWS Solutions Architect?

Ja. Elke les over AWS Solutions Architect bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.

Alle lessen in deze cursus

  1. EKS-control plane en workerknooppunten
  2. Fargate-profielen voor serverloze pods
  3. EKS-netwerken: VPC CNI en load balancing
  4. IAM-rollen voor serviceaccounts (IRSA)
← Terug naar AWS Solutions Architect