Fargate-profiilit palvelimettomille podeille
Suorita Kubernetes-podeja Fargatessa ilman EC2-solmujen hallintaa, määritä Fargate-profiileja ja ymmärrä niiden nimiavaruusrajoitukset.
Fargate-profiilit palvelimettomille podeille on ilmainen AWS Solutions Architect-oppitunti CoddyKitissä. Tämä on oppitunti 2/4. Voit lukea tästä oppimispolusta kokonaan mitkä tahansa 3 oppituntia ilmaiseksi — sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä käytännön harjoittelun sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Oppitunti kuuluu AWS Solutions Architect-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. AWS Solutions Architect-kurssilla on yhteensä 4 oppituntia.
Mitä Fargate-profiilit ovat?
AWS Fargate for EKS mahdollistaa Kubernetes-podien suorittamisen ilman EC2-solmujen varaamista tai hallintaa. Instanssityyppien ja solmuryhmien sijaan määritätte Fargate-profiilin, joka kertoo EKS:lle podit, joiden tulee suorittaa Fargatessa nimiavaruuden ja valinnaisten nimiövalitsinten perusteella. AWS varaa automaattisesti kullekin podille sopivan määrän laskentaresursseja ja vapauttaa ne, kun podi pysähtyy.
Fargate-profiilin määritys
Fargate-profiili liitetään EKS-klusteriin, ja se sisältää yhden tai useamman valitsimen — kukin valitsin määrittää nimiavaruuden sekä valinnaiset Kubernetesin nimiön avain–arvo-parit. Podin on vastattava vähintään yhtä valitsinta, jotta se voidaan ajoittaa Fargatessa suoritettavaksi. Profiilissa määritetään myös podin suoritusrooli (IAM-rooli) sekä yksityiset aliverkot, joita Fargate käyttää podien käynnistämiseen.
# 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"}}]'Podin suoritusrooli
Podin suoritusrooli on IAM-rooli, jota EKS käyttää, kun Fargate noutaa säilökuvia ja lähettää podien lokit CloudWatchiin. Rooliin on sisällytettävä AWS:n hallinnoima käytäntö AmazonEKSFargatePodExecutionRolePolicy. Ilman tätä roolia Fargatessa ajoitettujen podien käynnistys epäonnistuu, koska Fargate ei voi todentautua ECR:ään tai kirjoittaa CloudWatch Logsiin.
# 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/AmazonEKSFargatePodExecutionRolePolicyFargaten nimiavaruusrajoitukset
Fargate asettaa tärkeitä nimiavaruusrajoituksia. kube-system-nimiavaruus ei yleensä ole useimpien Fargate-profiilien käytettävissä, koska siellä suoritetaan järjestelmäpodeja, kuten kube-proxy. Poikkeuksena on CoreDNS: AWS tarjoaa ohjatun prosessin CoreDNS-käyttöönoton korjaamiseen siten, että eks.amazonaws.com/compute-type: ec2-annotaatio poistetaan ja CoreDNS voi suorittaa Fargatessa. Poissuljettujen nimiavaruuksien podit jäävät ajoittamatta, jos käytettävissä ei ole EC2-solmuja.
# 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-systemFargate-podin resurssien mitoitus
Fargate varaa laskentaresurssit pod-määrityksessä määritettyjen suoritin- ja muistipyyntöjen perusteella. Se pyöristää arvot ylöspäin lähimpään Fargaten tukemaan vCPU:n ja muistin yhdistelmään (esimerkiksi 0,25 vCPU / 0,5 Gt aina 16 vCPU:hun / 120 Gt:uun asti). Maksatte vain podin suorituksen aikana sekunnissa käytetyistä varatuista resursseista. Asettakaa resurssipyynnöt aina oikein — liian pienet pyynnöt johtavat muistin loppumisen aiheuttamaan prosessin lopettamiseen, kun taas liian suuret pyynnöt kasvattavat kustannuksia.
# 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 ja EC2-solmuryhmät: edut ja haitat
Fargate poistaa solmujen hallinnan tarpeen, mutta siihen liittyy rajoituksia: DaemonSetejä ei tueta (koska niiden ajoittamista varten ei ole pysyviä solmuja), etuoikeutettuja säilöjä ei tueta, ja tiettyjen tallennustyyppien tuki on rajallinen. EC2-solmuryhmät tukevat grafiikkasuorittimia, mukautettuja ytimiä ja tilallisia työkuormia paikallisilla NVMe-asemilla. Yleinen toimintamalli on suorittaa tilattomat palvelut Fargatessa ja tilalliset tai grafiikkasuorittimia käyttävät työkuormat erillisissä EC2-solmuryhmissä samassa EKS-klusterissa.
Fargaten verkkoyhteydet ja suojausryhmät
Jokainen Fargate-podi saa oman elastisen verkkoliitännän (ENI) ja yksityisen IP-osoitteen profiilissa määritetystä aliverkosta. Tämän ansiosta kuhunkin podiin voidaan liittää yksilöllinen suojausryhmä Security Groups for Pods -ominaisuuden avulla. Fargate-podit tukevat kaikkia VPC:n tavanomaisia suojausryhmäsääntöjä, joten saapuvaa ja lähtevää liikennettä voidaan hallita tarkasti yksittäisen podin tasolla — tämä on merkittävä tietoturvaetu verrattuna jaettuihin solmutason suojausryhmiin.
# 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:v2Fargaten lokitus CloudWatchiin
Fargate-podit lähettävät lokit Amazon CloudWatch Logsiin sisäänrakennetun Fluent Bit -lokireitittimen avulla. Lokitus määritetään luomalla ConfigMap-resurssi nimeltä aws-logging nimiavaruuteen aws-observability. Podin suoritusroolilla on oltava oikeus luoda lokiryhmiä ja kirjoittaa lokitapahtumia. Lokit järjestetään CloudWatchin lokiryhmiin klusterin ja nimiavaruuden mukaan, joten lokien keskitetty kokoaminen on helppoa ilman erillisen lokiagentin suorittamista.
# 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 trueHorisontaalinen podien automaattinen skaalaus Fargatessa
Fargate tukee Kubernetesin Horizontal Pod Autoscaler (HPA) -ominaisuutta. Kun HPA skaalaa replikamäärää ylöspäin, Fargate varaa automaattisesti uusia mikrovirtuaalikoneita ilman, että solmuryhmän kokoa tarvitsee muuttaa. Näin saavutetaan aidosti palvelimeton automaattinen skaalaus: HPA hallitsee podien määrää ja Fargate käsittelee laskentaresurssit joustavasti. Klusteriin on silti otettava käyttöön Metrics Server, jotta HPA voi lukea suorittimen ja muistin käytön.
# 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=20Fargaten hinnoittelumalli
Fargaten käytöstä maksetaan kulutuksen mukaan vCPU-sekunteina ja Gt-sekunteina, ja podikohtainen vähimmäisveloitus on yksi minuutti. Solmutason kustannuksia, varatun kapasiteetin maksuja tai AMI-käyttöjärjestelmän korjauskustannuksia ei ole. Fargate on yleensä laskentaresurssiyksikköä kohden kalliimpi kuin oikein mitoitettu EC2 On-Demand -instanssi, mutta kokonaiskustannukset ovat usein pienemmät, kun otetaan huomioon solmujen hallinnassa, korjaamisessa ja skaalauspäätöksissä säästetty työaika.
Fargaten tärkeät rajoitukset
SAA-C03-kokeessa tunnettavia Fargaten keskeisiä rajoituksia ovat: DaemonSet-tukea ei ole (podeja ei voida sijoittaa jokaiseen solmuun, koska pysyviä solmuja ei ole), etuoikeutettuja säilöjä ei tueta, hostNetwork-tilaa ei tueta, ja podikohtainen haihtuva tallennustila on rajoitettu 20 Gt:uun (määritysasetuksella rajoitusta voidaan kasvattaa 200 Gt:uun). EBS:n pysyvää lohkotallennustilaa ei tueta — käyttäkää EFS:ää jaettuun pysyvään tiedostotallennukseen Fargate-podien kanssa.
# 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: /dataPikatarkistus
Testatkaa, miten hyvin ymmärrätte tämän oppitunnin AWS Solutions Architect (SAA-C03) -käsitteet.
Oppitunnin yhteenveto
Tässä oppitunnissa opitte seuraavaa: Fargate-profiilit käyttävät nimiavaruus- ja nimiövalitsimia podien palvelimettomaan ajoittamiseen, podin suoritusrooli antaa Fargatelle oikeudet noutaa kuvia ja kirjoittaa lokeja, ja Fargate ei tue DaemonSetejä tai EBS:ää — käyttäkää pysyvään tallennukseen EFS:ää. Seuraavaksi tutustumme EKS-verkon toimintaan VPC CNI -laajennuksen ja AWS Load Balancer Controllerin avulla.
Opi AWS Solutions Architect tekoälytuutorin avulla — ilmaiseksi
Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.
- Kurssit
- 30
- Oppitunnit
- 120
Usein kysytyt kysymykset
Onko oppitunti ”Fargate-profiilit palvelimettomille podeille” ilmainen?
Kyllä — voit lukea täällä verkossa kokonaan ilmaiseksi mitkä tahansa AWS Solutions Architect-oppimispolun 3 oppituntia, myös oppitunnin “Fargate-profiilit palvelimettomille podeille”. Sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä interaktiiviset harjoitukset sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. AWS Solutions Architect-kurssilla on yhteensä 4 oppituntia.
Mitä opin oppitunnilla ”Fargate-profiilit palvelimettomille podeille”?
Suorita Kubernetes-podeja Fargatessa ilman EC2-solmujen hallintaa, määritä Fargate-profiileja ja ymmärrä niiden nimiavaruusrajoitukset. Harjoittelet AWS Solutions Architect-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.
Tarvitsenko kokemusta aloittaakseni AWS Solutions Architect-opiskelun?
Aiempi kokemus ei ole tarpeen. CoddyKitin AWS Solutions Architect-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 2/4.
Kuinka kauan ”Fargate-profiilit palvelimettomille podeille”-oppitunnin suorittaminen kestää?
Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.
Voinko kirjoittaa ja suorittaa koodia tällä AWS Solutions Architect-oppitunnilla?
Kyllä. Jokainen AWS Solutions Architect-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.
Kaikki tämän kurssin oppitunnit
- EKS-ohjaustaso ja työntekijäsolmut
- Fargate-profiilit palvelimettomille podeille
- EKS-verkotus: VPC CNI ja kuormantasaus
- Palvelutilien IAM-roolit (IRSA)