0Pricing
AWS Solutions Architect · Lektion

Fargate-Profile für serverlose Pods

Führen Sie Kubernetes-Pods auf Fargate aus, ohne EC2-Nodes zu verwalten, konfigurieren Sie Fargate-Profile und verstehen Sie deren Einschränkungen für Namespaces.

Fargate-Profile für serverlose Pods ist eine kostenlose AWS Solutions Architect-Lektion auf CoddyKit. Dies ist Lektion 2 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des AWS Solutions Architect-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der AWS Solutions Architect-Kurs umfasst insgesamt 4 Lektionen.

Was sind Fargate-Profile?

AWS Fargate für EKS ermöglicht es Ihnen, Kubernetes-Pods auszuführen, ohne EC2-Nodes bereitzustellen oder zu verwalten. Statt sich mit Instance-Typen und Node-Gruppen zu befassen, definieren Sie ein Fargate-Profil, das anhand des Namespace und optionaler Label-Selektoren festlegt, welche Pods auf Fargate ausgeführt werden sollen. AWS stellt automatisch die passende Menge an Rechenleistung für jeden Pod bereit und beendet sie, wenn der Pod beendet wird.

Konfiguration von Fargate-Profilen

Ein Fargate-Profil ist an einen EKS-Cluster angehängt und enthält einen oder mehrere Selektoren — jeder Selektor gibt einen Namespace sowie optionale Kubernetes-Label-Schlüssel-Wert-Paare an. Ein Pod muss mindestens einem Selektor entsprechen, damit er auf Fargate eingeplant werden kann. Das Profil gibt außerdem die Pod-Ausführungsrolle (eine IAM-Rolle) und die privaten Subnetze an, die Fargate zum Starten der Pods verwenden soll.

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

Pod-Ausführungsrolle

Die Pod-Ausführungsrolle ist eine IAM-Rolle, die EKS übernimmt, wenn Fargate Container-Images abruft und Pod-Logs an CloudWatch sendet. Sie muss die von AWS verwaltete Richtlinie AmazonEKSFargatePodExecutionRolePolicy enthalten. Ohne diese Rolle können auf Fargate eingeplante Pods nicht gestartet werden, da Fargate sich nicht bei ECR authentifizieren oder in CloudWatch Logs schreiben kann.

# 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

Namespace-Einschränkungen bei Fargate

Fargate unterliegt wichtigen Namespace-Einschränkungen. Der Namespace kube-system ist für die meisten Fargate-Profile nicht zulässig, da dort System-Pods wie kube-proxy ausgeführt werden. Eine Ausnahme ist CoreDNS: AWS stellt einen geführten Prozess bereit, mit dem Sie das CoreDNS-Deployment patchen und die Annotation eks.amazonaws.com/compute-type: ec2 entfernen können, damit es auf Fargate ausgeführt werden kann. Pods in ausgeschlossenen Namespaces bleiben ungeplant, wenn keine EC2-Nodes verfügbar sind.

# 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

Ressourcendimensionierung für Fargate-Pods

Fargate weist Rechenressourcen anhand der in der Pod-Spezifikation definierten CPU- und Speicheranforderungen zu. Die Werte werden auf die nächstgrößere von Fargate unterstützte vCPU-/Speicherkombination aufgerundet (beispielsweise von 0,25 vCPU / 0,5 GB bis zu 16 vCPU / 120 GB). Sie zahlen nur für die pro Sekunde zugewiesenen Ressourcen, während der Pod ausgeführt wird. Legen Sie immer genaue Ressourcenanforderungen fest — zu niedrige Anforderungen führen zu Beendigungen wegen Speichermangels, zu hohe Anforderungen erhöhen die 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 im Vergleich zu EC2-Node-Gruppen: Abwägungen

Fargate macht die Node-Verwaltung überflüssig, unterliegt jedoch Einschränkungen: keine DaemonSets (da keine persistenten Nodes vorhanden sind, auf denen sie eingeplant werden könnten), keine privilegierten Container und eingeschränkte Unterstützung für bestimmte Speichertypen. EC2-Node-Gruppen unterstützen GPUs, benutzerdefinierte Kernel und zustandsbehaftete Workloads mit lokalen NVMe-Laufwerken. Ein häufig verwendetes Muster besteht darin, zustandslose Services auf Fargate und zustandsbehaftete oder GPU-Workloads auf dedizierten EC2-Node-Gruppen innerhalb desselben EKS-Clusters auszuführen.

Fargate-Netzwerk und Security Groups

Jeder Fargate-Pod erhält eine eigene elastische Netzwerkschnittstelle (ENI) und eine private IP-Adresse aus dem im Profil angegebenen Subnetz. Dadurch können Sie jedem Pod mithilfe der Funktion „Security Groups for Pods“ eine eigene Security Group zuweisen. Fargate-Pods unterstützen alle standardmäßigen VPC-Security-Group-Regeln und ermöglichen so eine fein abgestimmte Steuerung des eingehenden und ausgehenden Datenverkehrs auf Ebene einzelner Pods — ein erheblicher Sicherheitsvorteil gegenüber gemeinsam genutzten Security Groups auf Node-Ebene.

# 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

Protokollierung von Fargate in CloudWatch

Fargate-Pods senden Logs mithilfe des integrierten Fluent-Bit-Log-Routers an Amazon CloudWatch Logs. Sie konfigurieren die Protokollierung, indem Sie eine ConfigMap namens aws-logging im Namespace aws-observability erstellen. Die Pod-Ausführungsrolle muss berechtigt sein, Log-Gruppen zu erstellen und Log-Ereignisse zu schreiben. Die Logs werden in CloudWatch nach Cluster und Namespace in Log-Gruppen organisiert, wodurch eine zentrale Log-Aggregation ohne einen separaten Log-Agenten unkompliziert möglich ist.

# 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

Horizontaler Pod-Autoscaler auf Fargate

Fargate unterstützt den Kubernetes-Horizontal Pod Autoscaler (HPA). Wenn der HPA die Anzahl der Replikate erhöht, stellt Fargate automatisch neue Micro-VMs bereit, ohne dass Sie die Größe einer Node-Gruppe anpassen müssen. Dadurch entsteht eine echte serverlose Autoscaling-Erfahrung: Der HPA steuert die Anzahl der Pods, und Fargate übernimmt die elastische Bereitstellung der Rechenleistung. Im Cluster muss weiterhin der Metrics Server bereitgestellt sein, damit der HPA die CPU- und Speichernutzung auslesen kann.

# 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

Preismodell von Fargate

Sie zahlen bei Fargate für die verbrauchten vCPU-Sekunden und GB-Sekunden, mit einer Mindestabrechnung von 1 Minute pro Pod. Es gibt keine Kosten auf Node-Ebene, Gebühren für reservierte Kapazität oder Kosten für AMI-/Betriebssystem-Patches. Fargate ist pro Recheneinheit typischerweise teurer als passend dimensionierte EC2-On-Demand-Instances, aber die Gesamtbetriebskosten sind oft niedriger, wenn Sie die eingesparte Entwicklungszeit für Node-Verwaltung, Patching und Skalierungsentscheidungen berücksichtigen.

Wichtige Fargate-Einschränkungen

Wichtige Fargate-Einschränkungen für die SAA-C03-Prüfung: keine DaemonSet-Unterstützung (Pods können nicht auf jedem Node platziert werden, da keine persistenten Nodes vorhanden sind), keine privilegierten Container, kein hostNetwork-Modus und ein auf 20 GB pro Pod begrenzter ephemerer Speicher (mit einer Konfiguration auf 200 GB erweiterbar). Persistenter Blockspeicher mit EBS wird nicht unterstützt — verwenden Sie EFS für gemeinsam genutzten persistenten Dateispeicher mit 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

Schnelltest

Testen Sie Ihr Verständnis der AWS-Solutions-Architect-Konzepte (SAA-C03) aus dieser Lektion.

Lektionszusammenfassung

In dieser Lektion haben Sie gelernt: Fargate-Profile verwenden Namespace- und Label-Selektoren, um Pods serverlos einzuplanen, die Pod-Ausführungsrolle erteilt Fargate die Berechtigung, Images abzurufen und Logs zu schreiben, und Fargate unterstützt weder DaemonSets noch EBS — verwenden Sie EFS für persistenten Speicher. Als Nächstes sehen wir uns die EKS-Netzwerkfunktionen mit dem VPC-CNI-Plugin und dem AWS Load Balancer Controller an.

Häufig gestellte Fragen

Ist die Lektion „Fargate-Profile für serverlose Pods“ kostenlos?

Ja — der vollständige Text von „Fargate-Profile für serverlose Pods“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des AWS Solutions Architect-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der AWS Solutions Architect-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Fargate-Profile für serverlose Pods“?

Führen Sie Kubernetes-Pods auf Fargate aus, ohne EC2-Nodes zu verwalten, konfigurieren Sie Fargate-Profile und verstehen Sie deren Einschränkungen für Namespaces. Du übst AWS Solutions Architect mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um AWS Solutions Architect zu starten?

Keine Vorkenntnisse erforderlich. AWS Solutions Architect auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 2 von 4.

Wie lange dauert die Lektion „Fargate-Profile für serverlose Pods“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser AWS Solutions Architect-Lektion Code schreiben und ausführen?

Ja. Jede AWS Solutions Architect-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. EKS-Control-Plane und Worker-Nodes
  2. Fargate-Profile für serverlose Pods
  3. EKS-Netzwerk: VPC CNI und Load Balancing
  4. IAM-Rollen für Servicekonten (IRSA)
← Zurück zu AWS Solutions Architect