AWS Solutions Architect · leksjon

EKS-kontrollplan og arbeidsnoder

Forstå hva AWS administrerer i EKS-kontrollplanet, opprett administrerte nodegrupper, og koble kubectl til klyngen

Leksjon 1 av 413 trinn

EKS-kontrollplan og arbeidsnoder er en gratis leksjon i AWS Solutions Architect på CoddyKit. Dette er leksjon 1 av 4. Du kan lese valgfritt 3 leksjoner fra denne læringsstien gratis i sin helhet – deretter låser CoddyKit PRO opp alle leksjoner, samt praktisk øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i AWS Solutions Architect, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i AWS Solutions Architect inneholder totalt 4 leksjoner.

Hva er Amazon EKS?

Amazon Elastic Kubernetes Service (EKS) er en fullstendig administrert Kubernetes-tjeneste som fjerner behovet for å installere, drifte og vedlikeholde Kubernetes-kontrollplanet. AWS kjører, skalerer og oppgraderer kontrollplanet på tvers av flere tilgjengelighetssoner, og tilbyr et svært tilgjengelig klyngeendepunkt. De kan konsentrere Dem fullt og helt om å distribuere og administrere arbeidsbelastningene i applikasjonen.

EKS-kontrollplanet

EKS-kontrollplanet består av API-serveren, etcd, kontrollermodulen og planleggeren – alt administrert av AWS. Disse komponentene kjører i AWS-eide kontoer, noe som betyr at De aldri logger på dem via SSH. AWS garanterer en 99,95 % SLA for EKS-API-endepunktet og erstatter automatisk kontrollplan-noder som ikke er friske. De betaler en fast avgift per klynge per time for kontrollplanet.

Opprette en EKS-klynge

De kan opprette en EKS-klynge ved hjelp av AWS Console, eksctl eller CloudFormation. Klyngen krever en VPC med subnett på tvers av minst to AZ-er og en IAM-rolle som gir Kubernetes-kontrollplanet tillatelse til å kalle AWS-API-er. Når klyngen er opprettet, er klyngeendepunktet en HTTPS-URL som De konfigurerer i kubeconfig.

# Create a cluster with eksctl (recommended for getting started)
eksctl create cluster \
  --name my-cluster \
  --region us-east-1 \
  --version 1.29 \
  --nodegroup-name standard-nodes \
  --node-type m5.large \
  --nodes 3 \
  --nodes-min 1 \
  --nodes-max 5

Koble kubectl til EKS

Etter at klyngen er opprettet, oppdaterer De den lokale kubeconfig-filen slik at kubectl vet hvordan den skal nå EKS-API-serveren. AWS CLI genererer automatisk den nødvendige oppføringen. EKS-API-serveren bruker AWS IAM til autentisering – IAM-brukeren eller -rollen Deres tilordnes en Kubernetes RBAC-identitet via aws-auth ConfigMap.

# Update kubeconfig for your EKS cluster
aws eks update-kubeconfig \
  --region us-east-1 \
  --name my-cluster

# Verify connectivity
kubectl get nodes
kubectl get pods --all-namespaces

Administrerte nodegrupper

Administrerte nodegrupper lar AWS klargjøre, registrere og administrere livssyklusen til EC2-arbeidsnoder på Deres vegne. Når De ber om en oppdatering eller utskifting, tømmer EKS automatisk poddene, erstatter instansen og registrerer den på nytt – uten manuell inngripen. Administrerte nodegrupper bruker Auto Scaling Groups i bakgrunnen, noe som gir kontroll over minimums-, maksimums- og ønsket kapasitet samt integrasjon med Cluster Autoscaler.

# Add a managed node group to an existing cluster
eksctl create nodegroup \
  --cluster my-cluster \
  --region us-east-1 \
  --name high-mem-nodes \
  --node-type r6i.large \
  --nodes 2 \
  --nodes-min 1 \
  --nodes-max 10 \
  --managed

Selvadministrerte nodegrupper

Med selvadministrerte nodegrupper starter De EC2-instanser selv (via CloudFormation eller Terraform) og registrerer dem i EKS-klyngen ved å kjøre bootstrap-skriptet. Dette gir maksimal fleksibilitet – De kan bruke egendefinerte AMI-er, instanstyper med GPU eller svært tilpassede kjernekonfigurasjoner – men De har selv det fulle ansvaret for oppdatering, tømming og utskifting av noder.

# Bootstrap script baked into the launch template
/etc/eks/bootstrap.sh my-cluster \
  --apiserver-endpoint 'https://EXAMPLE.gr7.us-east-1.eks.amazonaws.com' \
  --b64-cluster-ca 'BASE64_ENCODED_CA' \
  --kubelet-extra-args '--node-labels=role=custom'

Node-IAM-rolle og instansprofil

Hver arbeidsnode må kjøre med en EC2-instansprofil som har tre AWS-administrerte policyer: AmazonEKSWorkerNodePolicy, AmazonEKS_CNI_Policy og AmazonEC2ContainerRegistryReadOnly. Disse gjør det mulig for noden å bli med i klyngen, administrere nettverk for podder med VPC CNI-pluginen og hente avbildninger fra ECR. Uten disse policyene vil noder ikke klare å registrere seg.

# Attach required policies to the node role
aws iam attach-role-policy \
  --role-name EKSNodeRole \
  --policy-arn arn:aws:iam::aws:policy/AmazonEKSWorkerNodePolicy

aws iam attach-role-policy \
  --role-name EKSNodeRole \
  --policy-arn arn:aws:iam::aws:policy/AmazonEKS_CNI_Policy

aws iam attach-role-policy \
  --role-name EKSNodeRole \
  --policy-arn arn:aws:iam::aws:policy/AmazonEC2ContainerRegistryReadOnly

aws-auth ConfigMap: tilordning fra IAM til RBAC

EKS bruker aws-auth ConfigMap i navnerommet kube-system til å tilordne IAM-brukere og -roller til Kubernetes-brukernavn og -grupper. Når De oppretter en klynge, får bare IAM-identiteten til oppretteren automatisk administratortilgang. Hvis andre brukere eller CI/CD-roller skal få tilgang til klyngen, må De legge til oppføringer i denne ConfigMap-en med de riktige nøklene mapRoles eller mapUsers.

# View and edit the aws-auth ConfigMap
kubectl describe configmap aws-auth -n kube-system

# Add a role mapping (example YAML fragment)
# mapRoles:
# - rolearn: arn:aws:iam::111122223333:role/EKSNodeRole
#   username: system:node:{{EC2PrivateDNSName}}
#   groups:
#     - system:bootstrappers
#     - system:nodes

EKS-tillegg og klyngeoppgraderinger

EKS-tillegg er utvalgte, AWS-validerte programvarekomponenter – for eksempel VPC CNI, CoreDNS og kube-proxy – som EKS kan installere og holde oppdatert på Deres vegne. Når De oppgraderer Kubernetes-versjonen i klyngen, oppdaterer De kontrollplanet først og deretter hver administrerte nodegruppe til den tilsvarende versjonen. EKS støtter et avvik på N–1 mindreversjon mellom kontrollplanet og nodene i utrullingsperioden.

# List available add-ons and their versions
aws eks describe-addon-versions \
  --kubernetes-version 1.29 \
  --query 'addons[].{Name:addonName,Versions:addonVersions[0].addonVersion}' \
  --output table

# Update the VPC CNI add-on
aws eks update-addon \
  --cluster-name my-cluster \
  --addon-name vpc-cni \
  --addon-version v1.16.0-eksbuild.1

EKS-sikkerhet: endepunkttilgang og kryptering

EKS-API-serverens endepunkt kan konfigureres som bare offentlig, bare privat eller begge deler. Offentlige endepunkter sikres med IAM-autentisering, mens endepunkter som bare er private, krever at kubeconfig når VPC-en via VPN eller Direct Connect. De kan også aktivere konvoluttkryptering av Kubernetes-hemmeligheter i hvile ved hjelp av en AWS KMS-nøkkel. Dette gir et ekstra beskyttelseslag for sensitive konfigurasjonsdata.

# Enable private endpoint and envelope encryption at cluster creation
aws eks create-cluster \
  --name secure-cluster \
  --kubernetes-version 1.29 \
  --role-arn arn:aws:iam::111122223333:role/EKSClusterRole \
  --resources-vpc-config subnetIds=subnet-xxx,securityGroupIds=sg-xxx,endpointPublicAccess=false,endpointPrivateAccess=true \
  --encryption-config '[{"provider":{"keyArn":"arn:aws:kms:us-east-1:111122223333:key/KEY_ID"},"resources":["secrets"]}]'

Cluster Autoscaler på EKS

Cluster Autoscaler er en Kubernetes-pod som overvåker podder som ikke kan planlegges, og automatisk justerer størrelsen på Auto Scaling Groups for administrerte nodegrupper. Når podder ikke kan planlegges på grunn av utilstrekkelige ressurser, skalerer Cluster Autoscaler opp. Når noder er lite utnyttet og poddene deres kan planlegges andre steder, skalerer den ned. Den krever IAM-tillatelser til å kalle EC2 Auto Scaling API via IRSA.

# Deploy Cluster Autoscaler (abbreviated)
kubectl apply -f https://raw.githubusercontent.com/kubernetes/autoscaler/master/cluster-autoscaler/cloudprovider/aws/examples/cluster-autoscaler-autodiscover.yaml

# Add required annotation so it discovers your cluster ASGs
kubectl annotate serviceaccount cluster-autoscaler \
  -n kube-system \
  eks.amazonaws.com/role-arn=arn:aws:iam::111122223333:role/ClusterAutoscalerRole

Kort kontroll

Test forståelsen Deres av AWS Solutions Architect-konsepter (SAA-C03) fra denne leksjonen.

Oppsummering av leksjonen

I denne leksjonen lærte De at: AWS administrerer kontrollplanet for EKS med en SLA på 99,95 %, administrerte nodegrupper lar AWS håndtere node-livssyklusen, mens selvadministrerte grupper gir maksimal tilpasning, og ConfigMap-en aws-auth tilordner IAM-identiteter til Kubernetes-RBAC for tilgangskontroll til klyngen. Neste tema er Fargate-profiler for serverløs kjøring av pods.

Gratis å komme i gang

Lær deg AWS Solutions Architect med en AI-veileder – gratis

Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.

Kurs
30
Leksjoner
120

Ofte stilte spørsmål

Er leksjonen «EKS-kontrollplan og arbeidsnoder» gratis?

Ja – du kan lese valgfritt 3 av leksjonene i læringsstien AWS Solutions Architect, inkludert «EKS-kontrollplan og arbeidsnoder», gratis i sin helhet her på nettet. Deretter låser CoddyKit PRO opp alle leksjoner, samt interaktiv øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Kurset i AWS Solutions Architect inneholder totalt 4 leksjoner.

Hva lærer jeg i «EKS-kontrollplan og arbeidsnoder»?

Forstå hva AWS administrerer i EKS-kontrollplanet, opprett administrerte nodegrupper, og koble kubectl til klyngen Du øver på AWS Solutions Architect med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.

Trenger jeg erfaring for å begynne med AWS Solutions Architect?

Ingen tidligere erfaring er nødvendig. AWS Solutions Architect på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 1 av 4.

Hvor lang tid tar leksjonen «EKS-kontrollplan og arbeidsnoder»?

De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.

Kan jeg skrive og kjøre kode i denne AWS Solutions Architect-leksjonen?

Ja. Alle AWS Solutions Architect-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.

Alle leksjonene i dette kurset

  1. EKS-kontrollplan og arbeidsnoder
  2. Fargate-profiler for serverløse pods
  3. EKS-nettverk: VPC CNI og lastbalansering
  4. IAM-roller for tjenestekontoer (IRSA)
← Tilbake til AWS Solutions Architect