Piano di controllo e nodi di lavoro EKS
Comprendere quali componenti AWS gestisce nel piano di controllo EKS, predisporre gruppi di nodi gestiti e connettere kubectl al cluster
Piano di controllo e nodi di lavoro EKS è una lezione Cloud & IT Cert Prep gratuita su CoddyKit. Questa è la lezione 1 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Cloud & IT Cert Prep, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Cloud & IT Cert Prep include 4 lezioni in totale.
Che cos'è Amazon EKS
Amazon Elastic Kubernetes Service (EKS) è un servizio Kubernetes completamente gestito che elimina l'onere di installare, gestire e mantenere il control plane di Kubernetes. AWS esegue, adatta e aggiorna il control plane in più Availability Zone, fornendo un endpoint del cluster altamente disponibile. Lei si concentra interamente sul deployment e sulla gestione dei carichi di lavoro dell'applicazione.
Il control plane di EKS
Il control plane di EKS è costituito dal server API, da etcd, dal controller manager e dallo scheduler, tutti gestiti da AWS. Questi componenti vengono eseguiti in account di proprietà di AWS, quindi non vi accede mai tramite SSH. AWS garantisce uno SLA del 99,95% per l'endpoint API di EKS e sostituisce automaticamente i nodi non integri del control plane. Per il control plane paga una tariffa fissa per cluster e per ora.
Creazione di un cluster EKS
Può creare un cluster EKS usando la Console AWS, eksctl o CloudFormation. Il cluster richiede una VPC con subnet distribuite in almeno due AZ e un ruolo IAM che conceda al control plane di Kubernetes l'autorizzazione a chiamare le API AWS. Una volta creato, l'endpoint del cluster è un URL HTTPS che configura nel suo 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 5Connessione di kubectl a EKS
Dopo aver creato il cluster, aggiorni il suo kubeconfig locale affinché kubectl sappia come raggiungere il server API di EKS. AWS CLI genera automaticamente la voce necessaria. Il server API di EKS utilizza AWS IAM per l'autenticazione: l'utente o il ruolo IAM viene associato a un'identità Kubernetes RBAC tramite il ConfigMap aws-auth.
# 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-namespacesManaged node group
I managed node group consentono ad AWS di effettuare il provisioning, registrare e gestire il ciclo di vita dei nodi worker EC2 per suo conto. Quando richiede un aggiornamento o una sostituzione, EKS esegue automaticamente il draining dei pod, sostituisce l'istanza e la registra nuovamente, senza intervento manuale. I managed node group utilizzano gli Auto Scaling Group in background, offrendo il controllo della capacità minima, massima e desiderata e l'integrazione con 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 \
--managedSelf-managed node group
Con i self-managed node group avvia personalmente le istanze EC2 (tramite CloudFormation o Terraform) e le registra nel cluster EKS eseguendo lo script di bootstrap. Questo offre la massima flessibilità: può utilizzare AMI personalizzate, tipi di istanza GPU o configurazioni del kernel altamente personalizzate; tuttavia, è interamente responsabile dell'applicazione delle patch, del draining e della sostituzione dei nodi.
# 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'Ruolo IAM e profilo dell'istanza del nodo
Ogni nodo worker deve essere eseguito con un profilo dell'istanza EC2 che disponga di tre policy gestite da AWS: AmazonEKSWorkerNodePolicy, AmazonEKS_CNI_Policy e AmazonEC2ContainerRegistryReadOnly. Queste consentono al nodo di unirsi al cluster, gestire il networking dei pod con il plugin VPC CNI e scaricare le immagini da ECR. Senza queste policy, i nodi non riusciranno a registrarsi.
# 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/AmazonEC2ContainerRegistryReadOnlyConfigMap aws-auth: associazione da IAM a RBAC
EKS utilizza il ConfigMap aws-auth nel namespace kube-system per associare utenti e ruoli IAM a nomi utente e gruppi Kubernetes. Quando crea un cluster, solo l'identità IAM del creatore riceve automaticamente l'accesso amministrativo. Per consentire ad altri utenti o ruoli CI/CD di accedere al cluster, deve aggiungere le voci appropriate a questo ConfigMap usando le chiavi mapRoles o 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:nodesAdd-on EKS e aggiornamenti del cluster
Gli add-on EKS sono componenti software selezionati e convalidati da AWS, come VPC CNI, CoreDNS e kube-proxy, che EKS può installare e mantenere aggiornati per suo conto. Quando aggiorna la versione Kubernetes del cluster, aggiorni prima il control plane e poi ciascun managed node group alla versione corrispondente. EKS supporta una differenza di versione minor N-1 tra control plane e nodi durante la finestra di rollout.
# 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.1Sicurezza di EKS: accesso all'endpoint e crittografia
L'endpoint del server API di EKS può essere configurato come solo pubblico, solo privato oppure in entrambe le modalità. Gli endpoint pubblici sono protetti dall'autenticazione IAM; gli endpoint solo privati richiedono che il suo kubeconfig raggiunga la VPC tramite VPN o Direct Connect. Può inoltre abilitare la crittografia envelope dei secret Kubernetes inattivi usando una chiave AWS KMS, fornendo un ulteriore livello di protezione per i dati di configurazione sensibili.
# 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 su EKS
Il Cluster Autoscaler è un pod Kubernetes che monitora i pod non schedulabili e adatta automaticamente le dimensioni degli Auto Scaling Group dei managed node group. Quando i pod non possono essere pianificati a causa di risorse insufficienti, Cluster Autoscaler esegue lo scale-up. Quando i nodi sono sottoutilizzati e i relativi pod possono essere ripianificati altrove, esegue lo scale-down. Sono necessarie autorizzazioni IAM per chiamare l'API EC2 Auto Scaling tramite 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/ClusterAutoscalerRoleVerifica rapida
Verifichi la sua comprensione dei concetti AWS Solutions Architect (SAA-C03) trattati in questa lezione.
Riepilogo della lezione
In questa lezione ha imparato che: AWS gestisce il piano di controllo EKS con uno SLA del 99,95%, i gruppi di nodi gestiti consentono ad AWS di gestire il ciclo di vita dei nodi, mentre i gruppi autogestiti offrono la massima personalizzazione, e la ConfigMap aws-auth associa le identità IAM a Kubernetes RBAC per il controllo degli accessi al cluster. Ora esamineremo i profili Fargate per l'esecuzione serverless dei pod.
Domande Frequenti
La lezione «Piano di controllo e nodi di lavoro EKS» è gratuita?
Sì — il testo completo di «Piano di controllo e nodi di lavoro EKS» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Cloud & IT Cert Prep, passa a CoddyKit PRO. Il corso Cloud & IT Cert Prep include 4 lezioni in totale.
Cosa imparerò in «Piano di controllo e nodi di lavoro EKS»?
Comprendere quali componenti AWS gestisce nel piano di controllo EKS, predisporre gruppi di nodi gestiti e connettere kubectl al cluster Eserciti Cloud & IT Cert Prep con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare Cloud & IT Cert Prep?
Non è richiesta alcuna esperienza precedente. Cloud & IT Cert Prep su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 1 di 4.
Quanto tempo richiede la lezione «Piano di controllo e nodi di lavoro EKS»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione Cloud & IT Cert Prep?
Sì. Ogni lezione Cloud & IT Cert Prep include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Piano di controllo e nodi di lavoro EKS
- Profili Fargate per pod serverless
- Networking EKS: VPC CNI e bilanciamento del carico
- Ruoli IAM per gli account di servizio (IRSA)