0Pricing
Cloud & IT Cert Prep · Ders

Sunucusuz Pod'lar için Fargate Profilleri

EC2 düğümlerini yönetmeden Kubernetes pod'larını Fargate üzerinde çalıştırın, Fargate profillerini yapılandırın ve ad alanı kısıtlamalarını anlayın.

Sunucusuz Pod'lar için Fargate Profilleri, CoddyKit'te ücretsiz bir Cloud & IT Cert Prep dersidir. Bu, 4 dersinin 2. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Cloud & IT Cert Prep öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Cloud & IT Cert Prep kursu toplamda 4 dersten oluşur.

Fargate Profilleri Nedir?

EKS için AWS Fargate, EC2 düğümlerini tedarik etmeden veya yönetmeden Kubernetes Pod'larını çalıştırmanızı sağlar. Örnek türleri ve düğüm gruplarını düşünmek yerine, ad alanlarına ve isteğe bağlı etiket seçicilerine göre hangi Pod'ların Fargate üzerinde çalışması gerektiğini EKS'e bildiren bir Fargate profili tanımlarsınız. AWS, her Pod için gereken doğru miktardaki işlem kaynağını otomatik olarak tedarik eder ve Pod durduğunda bu kaynağı sonlandırır.

Fargate Profili Yapılandırması

Bir Fargate profili bir EKS kümesine bağlanır ve bir veya daha fazla seçici içerir — her seçici bir ad alanı ile isteğe bağlı Kubernetes etiket anahtarı-değer çiftlerini belirtir. Bir Pod'un Fargate üzerinde zamanlanabilmesi için en az bir seçiciyle eşleşmesi gerekir. Profil ayrıca Pod çalıştırma rolünü (bir IAM rolü) ve Fargate'in Pod'ları başlatmak için kullanacağı özel alt ağları belirtir.

# 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 Çalıştırma Rolü

Pod çalıştırma rolü, Fargate'in kapsayıcı görüntülerini çekerken ve Pod günlüklerini CloudWatch'a gönderirken EKS'in üstlendiği bir IAM rolüdür. Bu rol, AmazonEKSFargatePodExecutionRolePolicy AWS tarafından yönetilen politikasını içermelidir. Bu rol olmadan Fargate, ECR'de kimlik doğrulaması yapamayacağı veya CloudWatch Logs'a yazamayacağı için Fargate üzerinde zamanlanan Pod'lar başlatılamaz.

# 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

Fargate'te Ad Alanı Kısıtlamaları

Fargate önemli ad alanı kısıtlamaları uygular. kube-system ad alanı, kube-proxy gibi sistem Pod'ları burada çalıştığı için çoğu Fargate profiline kapalıdır. Bunun bir istisnası CoreDNS'tir: AWS, Fargate üzerinde çalışabilmesi için CoreDNS dağıtımındaki eks.amazonaws.com/compute-type: ec2 ek açıklamasını kaldıran, yönlendirmeli bir düzeltme süreci sunar. Dışlanan ad alanlarındaki Pod'lar, kullanılabilir EC2 düğümü yoksa zamanlanmadan kalır.

# 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

Fargate Pod Kaynak Boyutlandırması

Fargate, işlem kaynaklarını Pod belirtiminde tanımlanan CPU ve bellek isteklerine göre ayırır. Kaynakları, Fargate tarafından desteklenen en yakın vCPU/bellek birleşimine yukarı yuvarlar (örneğin 0,25 vCPU / 0,5 GB ile 16 vCPU / 120 GB arası). Pod çalıştığı sırada ayrılan kaynaklar için yalnızca saniye başına ücretlendirilirsiniz. Kaynak isteklerini her zaman doğru belirleyin — gereğinden düşük istekler yetersiz bellek nedeniyle sonlandırmalara, gereğinden yüksek istekler ise maliyet artışına yol açar.

# 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 ve EC2 Düğüm Grupları: Ödünleşimler

Fargate, düğüm yönetimini ortadan kaldırır ancak bazı kısıtlamalara sahiptir: daemonset desteği yoktur (üzerinde zamanlanabilecek kalıcı düğümler bulunmadığı için), ayrıcalıklı kapsayıcılar desteklenmez ve belirli depolama türleri için destek sınırlıdır. EC2 düğüm grupları GPU'ları, özel çekirdekleri ve yerel NVMe sürücülerine sahip durum bilgili iş yüklerini destekler. Yaygın bir yaklaşım, durum bilgisi olmayan hizmetleri Fargate üzerinde, durum bilgili veya GPU kullanan iş yüklerini ise aynı EKS kümesi içindeki özel EC2 düğüm gruplarında çalıştırmaktır.

Fargate Ağı ve Güvenlik Grupları

Her Fargate Pod'u kendine ait bir esnek ağ arabirimi (ENI) ve profilde belirttiğiniz alt ağdan özel bir IP alır. Bu sayede Security Groups for Pods özelliğini kullanarak her Pod'a benzersiz bir güvenlik grubu uygulayabilirsiniz. Fargate Pod'ları, standart tüm VPC güvenlik grubu kurallarını destekler; böylece tek tek Pod düzeyinde ayrıntılı gelen ve giden trafik denetimi sağlayabilirsiniz. Bu, paylaşılan düğüm düzeyindeki güvenlik gruplarına göre önemli bir güvenlik avantajıdır.

# 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

Fargate Günlüklerini CloudWatch'a Gönderme

Fargate Pod'ları, yerleşik Fluent Bit günlük yönlendiricisini kullanarak günlükleri Amazon CloudWatch Logs'a gönderir. Günlük kaydını yapılandırmak için aws-observability ad alanında aws-logging adlı bir ConfigMap oluşturursunuz. Pod çalıştırma rolü, günlük grupları oluşturma ve günlük olaylarını yazma iznine sahip olmalıdır. Günlükler her küme ve ad alanı için CloudWatch günlük gruplarında düzenlenir; böylece ayrı bir günlük aracısı çalıştırmadan merkezi günlük toplama kolaylaşır.

# 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

Fargate'te Yatay Pod Otomatik Ölçekleyicisi

Fargate, Kubernetes Yatay Pod Otomatik Ölçekleyicisi'ni (HPA) destekler. HPA çoğaltmaları artırdığında Fargate, herhangi bir düğüm grubu boyutunu ayarlamanıza gerek kalmadan yeni mikro sanal makineleri otomatik olarak tedarik eder. Böylece HPA'nın Pod sayısını denetlediği ve Fargate'in işlem kaynaklarını esnek biçimde yönettiği gerçek bir sunucusuz otomatik ölçeklendirme deneyimi elde edilir. HPA'nın CPU ve bellek kullanımını okuyabilmesi için kümede dağıtılmış bir Metrics Server bileşenine yine de ihtiyacınız vardır.

# 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

Fargate Fiyatlandırma Modeli

Tükettiğiniz vCPU-saniye ve GB-saniye başına, Pod başına en az 1 dakika olacak şekilde ödeme yaparsınız. Düğüm düzeyinde maliyet, ayrılmış kapasite ücreti veya AMI/OS yaması maliyeti yoktur. Fargate, birim işlem başına genellikle doğru boyutlandırılmış isteğe bağlı EC2 örneklerinden daha pahalıdır; ancak düğüm yönetimi, yama uygulama ve ölçeklendirme kararları için harcanan mühendislik zamanını hesaba kattığınızda toplam sahip olma maliyeti çoğu zaman daha düşüktür.

Bilinmesi Gereken Yaygın Fargate Kısıtlamaları

SAA-C03 sınavı için temel Fargate kısıtlamaları: DaemonSet desteği yoktur (kalıcı düğümler bulunmadığı için Pod'lar her düğüme yerleştirilemez), ayrıcalıklı kapsayıcılar desteklenmez, hostNetwork modu yoktur ve geçici depolama, yapılandırmayla 200 GB'a genişletilebilmek üzere Pod başına 20 GB ile sınırlıdır. EBS ile kalıcı blok depolama desteklenmez — Fargate Pod'larıyla paylaşılan kalıcı dosya depolaması için EFS kullanın.

# 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

Hızlı Kontrol

Bu derste ele alınan AWS Solutions Architect (SAA-C03) kavramlarını anlayıp anlamadığınızı test edin.

Ders Özeti

Bu derste şunları öğrendiniz: Fargate profilleri, Pod'ları sunucusuz biçimde zamanlamak için ad alanı ve etiket seçicilerini kullanır; Pod çalıştırma rolü, Fargate'e görüntüleri çekme ve günlükleri yazma izni verir; Fargate, DaemonSets veya EBS'yi desteklemez — kalıcı depolama için EFS kullanın. Sırada, VPC CNI eklentisi ve AWS Load Balancer Controller ile EKS ağını inceleyeceğiz.

Sıkça Sorulan Sorular

“Sunucusuz Pod'lar için Fargate Profilleri” dersi ücretsiz mi?

Evet — “Sunucusuz Pod'lar için Fargate Profilleri” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Cloud & IT Cert Prep kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Cloud & IT Cert Prep kursu toplamda 4 dersten oluşur.

“Sunucusuz Pod'lar için Fargate Profilleri” dersinde ne öğreneceğim?

EC2 düğümlerini yönetmeden Kubernetes pod'larını Fargate üzerinde çalıştırın, Fargate profillerini yapılandırın ve ad alanı kısıtlamalarını anlayın. Cloud & IT Cert Prep ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

Cloud & IT Cert Prep öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Cloud & IT Cert Prep, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 2. dersidir.

“Sunucusuz Pod'lar için Fargate Profilleri” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu Cloud & IT Cert Prep dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Cloud & IT Cert Prep dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. EKS Denetim Düzlemi ve Çalışan Düğümleri
  2. Sunucusuz Pod'lar için Fargate Profilleri
  3. EKS Ağ Yapısı: VPC CNI ve Yük Dengeleme
  4. Hizmet Hesapları için IAM Rolleri (IRSA)
← Cloud & IT Cert Prep Sayfasına Dön