Profil Fargate untuk Pod Tanpa Server
Jalankan pod Kubernetes di Fargate tanpa mengelola node EC2, konfigurasikan profil Fargate, lalu pahami pembatasan ruang namanya.
Profil Fargate untuk Pod Tanpa Server adalah pelajaran Cloud & IT Cert Prep gratis di CoddyKit. Ini adalah pelajaran 2 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Cloud & IT Cert Prep, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Cloud & IT Cert Prep mencakup 4 pelajaran total.
Apa Itu Fargate Profiles?
AWS Fargate untuk EKS memungkinkan Anda menjalankan pod Kubernetes tanpa menyediakan atau mengelola node EC2. Alih-alih memikirkan jenis instance dan grup node, Anda menentukan sebuah Fargate profile yang memberi tahu EKS pod mana yang harus dijalankan di Fargate berdasarkan namespace dan pemilih label opsionalnya. AWS secara otomatis menyediakan jumlah komputasi yang sesuai untuk setiap pod dan menghentikannya ketika pod tersebut berhenti.
Konfigurasi Fargate Profile
Sebuah Fargate profile terhubung ke klaster EKS dan berisi satu atau beberapa pemilih—setiap pemilih menentukan sebuah namespace serta pasangan kunci-nilai label Kubernetes opsional. Sebuah pod harus cocok dengan setidaknya satu pemilih agar dapat dijadwalkan di Fargate. Profile tersebut juga menentukan peran eksekusi pod (peran IAM) dan subnet privat yang harus digunakan Fargate untuk meluncurkan 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"}}]'Peran Eksekusi Pod
Peran eksekusi pod adalah peran IAM yang diasumsikan EKS ketika Fargate mengambil image kontainer dan mengirim log pod ke CloudWatch. Peran ini harus menyertakan kebijakan terkelola AWS AmazonEKSFargatePodExecutionRolePolicy. Tanpa peran ini, pod yang dijadwalkan di Fargate akan gagal dimulai karena Fargate tidak dapat melakukan autentikasi ke ECR atau menulis ke 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/AmazonEKSFargatePodExecutionRolePolicyBatasan Namespace di Fargate
Fargate memberlakukan batasan namespace yang penting. Namespace kube-system tidak dapat digunakan oleh sebagian besar Fargate profile karena pod sistem seperti kube-proxy berjalan di sana. Pengecualiannya adalah CoreDNS: AWS menyediakan proses terpandu untuk menambal deployment CoreDNS guna menghapus anotasi eks.amazonaws.com/compute-type: ec2 agar dapat berjalan di Fargate. Pod dalam namespace yang dikecualikan akan tetap tidak terjadwal jika tidak ada node EC2 yang tersedia.
# 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-systemPenentuan Ukuran Sumber Daya Pod di Fargate
Fargate mengalokasikan sumber daya komputasi berdasarkan permintaan CPU dan memori yang ditentukan dalam spesifikasi pod. Fargate membulatkannya ke kombinasi vCPU/memori terdekat yang didukung (misalnya, 0,25 vCPU / 0,5 GB hingga 16 vCPU / 120 GB). Anda hanya ditagih untuk sumber daya yang dialokasikan per detik selama pod berjalan. Selalu tetapkan permintaan sumber daya yang akurat—permintaan yang terlalu kecil dapat menyebabkan proses dihentikan karena kehabisan memori, sedangkan permintaan yang terlalu besar meningkatkan biaya.
# 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 vs Grup Node EC2: Pertimbangan
Fargate menghilangkan kebutuhan untuk mengelola node, tetapi memiliki beberapa batasan: tidak mendukung DaemonSet (karena tidak ada node permanen untuk menjadwalkannya), tidak mendukung kontainer berhak istimewa, dan memiliki dukungan terbatas untuk jenis penyimpanan tertentu. Grup node EC2 mendukung GPU, kernel kustom, dan beban kerja stateful dengan drive NVMe lokal. Pola yang umum adalah menjalankan layanan stateless di Fargate dan beban kerja stateful atau GPU pada grup node EC2 khusus dalam klaster EKS yang sama.
Jaringan Fargate dan Security Groups
Setiap pod Fargate mendapatkan antarmuka jaringan elastis (ENI) sendiri dan IP privat dari subnet yang Anda tentukan dalam profile. Dengan demikian, Anda dapat menerapkan security group unik ke setiap pod menggunakan fitur Security Groups for Pods. Pod Fargate mendukung semua aturan security group VPC standar, sehingga Anda dapat mengendalikan lalu lintas masuk dan keluar secara terperinci pada tingkat pod individual—sebuah keunggulan keamanan yang signifikan dibandingkan security group bersama pada tingkat node.
# 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 ke CloudWatch
Pod Fargate mengirim log ke Amazon CloudWatch Logs menggunakan perute log Fluent Bit bawaan. Anda mengonfigurasi logging dengan membuat ConfigMap bernama aws-logging di namespace aws-observability. Peran eksekusi pod harus memiliki izin untuk membuat grup log dan menulis peristiwa log. Log diatur ke dalam grup log CloudWatch berdasarkan klaster dan namespace, sehingga agregasi log terpusat menjadi mudah tanpa menjalankan agen log terpisah.
# 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 di Fargate
Fargate mendukung Horizontal Pod Autoscaler (HPA) Kubernetes. Ketika HPA menambah jumlah replika, Fargate secara otomatis menyediakan mikro-VM baru tanpa mengharuskan Anda menyesuaikan ukuran grup node. Hal ini menciptakan pengalaman autoscaling tanpa server yang sesungguhnya: HPA mengendalikan jumlah pod dan Fargate menangani komputasinya secara elastis. Anda tetap memerlukan Metrics Server yang di-deploy di klaster agar HPA dapat membaca penggunaan CPU dan memori.
# 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=20Model Harga Fargate
Anda membayar Fargate berdasarkan vCPU-detik dan GB-detik yang digunakan, dengan minimum 1 menit per pod. Tidak ada biaya tingkat node, biaya kapasitas cadangan, atau biaya penambalan AMI/OS. Biasanya, Fargate lebih mahal per unit komputasi dibandingkan instance EC2 sesuai ukuran berdasarkan permintaan, tetapi total biaya kepemilikan sering kali lebih rendah setelah memperhitungkan waktu engineering yang dihemat untuk pengelolaan node, penambalan, dan pengambilan keputusan penskalaan.
Batasan Umum Fargate yang Perlu Diketahui
Batasan utama Fargate untuk ujian SAA-C03: tidak mendukung DaemonSet (pod tidak dapat ditempatkan di setiap node karena tidak ada node permanen), tidak mendukung kontainer berhak istimewa, tidak mendukung mode hostNetwork, dan penyimpanan sementara dibatasi hingga 20 GB per pod (dapat diperluas hingga 200 GB dengan konfigurasi). Penyimpanan blok persisten dengan EBS tidak didukung—gunakan EFS untuk penyimpanan file persisten bersama dengan 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: /dataPemeriksaan Cepat
Uji pemahaman Anda tentang konsep AWS Solutions Architect (SAA-C03) dari pelajaran ini.
Ringkasan Pelajaran
Dalam pelajaran ini, Anda telah mempelajari bahwa Fargate profiles menggunakan pemilih namespace dan label untuk menjadwalkan pod tanpa server, peran eksekusi pod memberikan izin kepada Fargate untuk mengambil image dan menulis log, serta Fargate tidak mendukung DaemonSet atau EBS—gunakan EFS untuk penyimpanan persisten. Selanjutnya, kita akan membahas jaringan EKS dengan plugin VPC CNI dan AWS Load Balancer Controller.
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Profil Fargate untuk Pod Tanpa Server” gratis?
Ya — teks lengkap “Profil Fargate untuk Pod Tanpa Server” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Cloud & IT Cert Prep, upgrade ke CoddyKit PRO. Kursus Cloud & IT Cert Prep mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Profil Fargate untuk Pod Tanpa Server”?
Jalankan pod Kubernetes di Fargate tanpa mengelola node EC2, konfigurasikan profil Fargate, lalu pahami pembatasan ruang namanya. Kamu berlatih Cloud & IT Cert Prep dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai Cloud & IT Cert Prep?
Tidak diperlukan pengalaman sebelumnya. Cloud & IT Cert Prep di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 2 dari 4.
Berapa lama pelajaran “Profil Fargate untuk Pod Tanpa Server” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran Cloud & IT Cert Prep ini?
Ya. Setiap pelajaran Cloud & IT Cert Prep menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Bidang Kontrol dan Node Pekerja EKS
- Profil Fargate untuk Pod Tanpa Server
- Jaringan EKS: VPC CNI dan Penyeimbangan Beban
- Peran IAM untuk Akun Layanan (IRSA)